日 本 語 プログラミング 言 語 言 霊 の 開 発 全 ての 人 がプログラミングする 社 会 を 目 指 して 1. 背 景 現 在 日 本 では プログラミングの 概 念 が 社 会 で 共 有 されていないため 次 のような 問 題 が 存 在 する 欲 しいソフトウェアを 自 分 で 作 れないため 市 販 ソフトウェアを 購 入 するか 開 発 者 に 発 注 せざるをえず コストが 高 い 発 注 するにしても プログラミングの 概 念 がない(あるいは 不 十 分 )ため 欲 しいソフトウ ェアが 何 かを 正 確 に 伝 えられない このため 求 めているものとは 全 く 異 なるソフトウェ アが 開 発 されてしまう プログラミングの 概 念 がない(あるいは 不 十 分 )ため 開 発 してもらったソフトウェアを 適 切 に 評 価 することができない 2. 目 的 そこで 本 提 案 では プログラミングの 概 念 を 共 有 することで 以 下 のような 社 会 を 実 現 す ることを 目 的 とする 情 報 化 社 会 を 支 える 技 術 の 根 幹 を 社 会 全 体 で 共 有 する 今 や 社 会 の 至 るところで 情 報 技 術 が 利 用 されており その 根 幹 を 成 すプログラミングの 概 念 は 情 報 リテラシーの 中 核 として 社 会 全 体 で 共 有 すべき 存 在 となった 自 分 が 作 りたいソフトウェアを 自 分 で 作 ることができる パソコン 等 に 必 要 な 機 能 は 人 それぞれ 異 なる 他 人 が 作 った 市 販 ソフトウェアが 常 に 自 分 の 要 求 を 満 たしてくれるとは 限 らない 自 分 にとって 必 要 なソフトウェアを 自 分 の 手 で 作 ることが 高 い 知 的 生 産 性 に 繋 がる 自 分 が 欲 しいソフトウェアが 何 かを 正 確 に 伝 えて ソフトウェア 開 発 者 に 作 ってもらうこ とができる 全 ての 人 が 優 れたプログラミング 能 力 を 持 つわけではないし 自 分 でソフトウェアを 作 る 時 間 が 無 い 人 もいるだろう だがプログラミングの 概 念 を 理 解 していれば 自 分 が 欲 しいソフトウェアがどのようなものかを 正 確 かつ 論 理 的 な 言 葉 でソフトウェア 開 発 者 に 伝 え 開 発 を 依 頼 することができる このような 社 会 を 目 指 すにあたり C や Java 等 現 在 主 流 のプログラミング 言 語 は 印 欧 語 に 基 づいて 作 られているという 問 題 がある 我 々は 以 下 の 理 由 から 日 本 人 が 日 常 的 に 使 っている 日 本 語 をプログラミング 言 語 として 利 用 するべきだと 考 える 日 本 語 の 語 順 何 を どうする は 印 欧 語 の 語 順 どうする 何 を より コンピュータに
対 する 命 令 に 適 している CUI から GUI に 変 わった 時 英 語 の 語 順 (コマンド 選 択 ファイル 選 択 )から 日 本 語 の 語 順 (ファイル 選 択 コマンド 選 択 )に 変 わった Windows を 初 めとする GUI は この 語 順 に 基 づく 操 作 を 採 用 している また C や Java などのプログラミング 言 語 は 印 欧 語 の 語 順 どうする 何 を で 記 述 されているが 内 部 では 日 本 語 の 語 順 何 を どうする に 変 換 して 実 行 している 日 本 語 の 語 順 で 命 令 することは 初 めからコンピュータが 求 める 語 順 で 記 述 することになるため 効 率 が 良 い 日 本 人 は 日 本 語 で 思 考 している 我 々は 自 分 が 欲 しいソフトウェアを 日 本 語 で 考 え 設 計 し アルゴリズムを 作 る プログ ラミングが 難 しいのは 日 本 語 で 考 えたアルゴリズムを 印 欧 語 に 基 づくプログラミング 言 語 に 翻 訳 することにある 日 本 語 によるプログラミングによってこのような 翻 訳 作 業 の 必 要 がなくなり アルゴリズムを 構 築 する 過 程 で 必 要 となる 日 本 語 表 現 をそのままプ ログラムとして 使 用 できるようになる この 結 果 プログラミングを 行 う 際 頭 脳 に 負 担 を かけることがない 日 本 語 プログラミング 教 育 によって 日 本 人 の 論 理 思 考 能 力 を 向 上 させることが 出 来 る 自 分 が 欲 しいソフトウェアを 作 成 するためには 問 題 の 定 義 分 析 及 び 問 題 解 決 に 必 要 な 手 段 の 詳 細 化 という 過 程 を 通 してアルゴリズムを 構 築 するという 論 理 的 思 考 作 業 が 必 要 である このような 過 程 で 記 述 した 日 本 語 表 現 をプログラムとして 直 接 実 行 でき る 環 境 を 用 意 することで 自 分 が 日 本 語 で 考 え 構 築 したアルゴリズムが 問 題 解 決 に 有 効 であるかを 即 座 に 確 認 できる このことは 論 理 的 思 考 能 力 を 向 上 させる 教 育 に 有 効 である このような 考 えに 基 づき 本 提 案 では 初 級 者 のみならず 中 級 以 上 のプログラミング 教 育 にも 使 える 日 本 語 プログラミング 言 語 環 境 言 霊 を 開 発 した 言 霊 を 開 発 することで 日 本 語 書 読 話 者 にとってより 広 くプログラミングの 概 念 が 共 有 される 社 会 を 目 指 す 3. 開 発 の 内 容 (ア) 日 本 語 プログラミング 言 語 言 霊 の 言 語 仕 様 開 発 する 言 語 に 存 在 する 字 句 要 素 構 文 要 素 日 本 語 プログラミングの 概 念 等 を 定 義 する (イ) ソースコードエディタ プログラムを 記 述 するために 必 要 な 機 能 (ファイル 管 理 ソース 編 集 標 準 入 出 力 コ ンパイラ デバッガ 実 行 等 )を 提 供 する MacOS Windows 上 にて 動 作 する
ソースコードエディタ (ウ) 言 霊 標 準 教 材 言 霊 を 用 いて 制 御 構 造 ( 順 次 条 件 分 岐 繰 り 返 し) 変 数 関 数 を 学 習 するための オンライン 教 材 4. 従 来 の 技 術 (または 機 能 )との 相 違 尐 数 の 命 令 で 複 雑 高 度 なプログラムを 作 ることができる 有 名 な 日 本 語 プログラミング 言 語 に なでしこ (2004 年 度 未 踏 ソフトウェア 創 造 事 業 ( 未 踏 ユース)にて 日 本 語 プログラミング 言 語 の 開 発 (PM: 筧 捷 彦 開 発 者 : 山 本 峰 章 )として 開 発 された)がある なでしこ はおよそ 1100 もの 多 種 多 様 な 命 令 を 用 意 して ユーザはその 中 から 必 要 な 命 令 を 選 ぶことでプログラ ムを 作 成 する 一 方 で 言 霊 は 単 純 で 尐 数 の 命 令 を 組 み 合 わせることで 小 規 模 から 大 規 模 なソフトウェアを 開 発 することが 可 能 である 5. 期 待 される 効 果 普 及 の 見 通 し 本 提 案 では 中 高 大 学 生 を 対 象 とした 日 本 語 プログラミング 教 育 を 視 野 に 入 れ 言 霊 の 開 発 を 行 った 本 プロジェクト 終 了 後 の 展 望 は プログラミング 経 験 のない(あるいは 十 分 で ない) 様 々な 分 野 のエキスパートを 対 象 としたエキスパート エンド ユーザを 育 成 すること である 各 分 野 のエキスパートに 言 霊 を 利 用 してもらうことによって エキスパートが 自 分 の 専 門 分 野 で 欲 しいソフトウェアを 自 分 で 作 成 する あるいは プログラマと 言 霊 を 学 ん
だエキスパートが 要 求 分 析 設 計 から 実 装 までをシームレスに 議 論 し 自 分 が 欲 しいソフト ウェアをプログラマに 発 注 できることが 今 後 期 待 される 本 プロジェクトの 実 施 を 通 して 幾 つかの 企 業 から 言 霊 を 導 入 したいとの 提 案 がなされ た 具 体 的 な 展 望 として 以 下 の 2 点 を 挙 げる (ア) 日 本 語 プログラミング 言 語 を 用 いた 帳 票 作 成 ユニバーサル シェル プログラミング 研 究 所 1 のユニケージ 開 発 手 法 (IPA のソフトウェ ア プロダクト オブ ザ イヤー(R)2008 を 受 賞 )と 組 み 合 わせることで 業 務 用 の 帳 票 シス テムを 顧 客 側 で 開 発 することが 出 来 るようになる 具 体 的 には 中 小 企 業 や 個 人 商 店 主 でも 自 分 で 帳 票 システムを 開 発 することが 出 来 る 販 売 データの 個 別 集 計 販 売 情 報 ファイルの 商 品 ID 日 付 個 数 を 抽 出 して 商 品 IDで 商 品 部 門 情 報 ファイルを 挿 入 連 結 して 部 門 IDで 部 門 名 情 報 ファイルを 挿 入 連 結 して 日 付 を 日 付 表 記 変 更 して 商 品 ID 日 付 曜 日 を 削 除 して 部 門 ID 部 門 名 週 でソートして 部 門 ID 部 門 名 週 で 個 数 を 集 計 して 部 門 ID 部 門 名 が 縦 キー 週 が 横 キーとして マトリクス 展 開 して 販 売 実 績 集 計 ファイル($dir/ure2)に 出 力 する 日 本 語 シェルスクリプトのコード 例 (イ) 日 本 語 プログラミング 言 語 を 用 いた 組 み 込 み 系 システムの 開 発 組 み 込 み 系 システムを 扱 う 企 業 では 製 品 の 動 作 に 関 する 正 当 性 をいかに 保 障 するか が 今 後 重 大 な 課 題 である しかし 現 状 では 部 品 製 作 や 設 計 を 行 う 機 械 担 当 者 と その 動 作 を 制 御 するソフトウェア 製 作 者 の 間 で 意 思 疎 通 が 適 切 になされていないという 問 題 が 生 じている 例 えば 自 動 車 産 業 において 製 品 の 設 計 や 評 価 を 行 うのは プログラムは 書 けないが 機 械 について 熟 知 している 者 であることが 多 い 彼 らはプログラミングの 概 念 に 対 する 習 熟 が 十 分 でない 場 合 が 多 く 自 らの 設 計 通 りに 実 装 が 行 われているかを 適 切 に 評 価 することが できない また 設 計 に 基 づいて 実 装 を 行 うプログラマも 必 ずしも 車 について 熟 知 しておら ず 両 者 間 の 議 論 は 必 ずしも 適 切 に 行 われていない この 問 題 を 解 決 するために 組 み 込 み 系 システムを 扱 う 企 業 が 導 入 している HCP チャート のような 設 計 手 法 を 拡 張 し ソフトウェア 開 発 における 上 流 から 下 流 までの 全 過 程 を 日 本 語 で 行 うべきとの 提 案 を 受 けた( 誰 から?) 組 み 込 み 系 システムにおける 実 装 は 主 に C 言 語 によって 行 われているが 最 下 流 の 実 行 1 105-0003 東 京 都 港 区 西 新 橋 3-4-8 MTビル2F http://www.usp-lab.com/
系 表 現 以 外 はその 抽 象 化 である このため 上 流 から 下 流 までの 全 てを 日 本 語 に 基 づくこ とによって 機 械 担 当 者 とプログラマは 設 計 と 実 装 の 溝 を 認 識 するための 議 論 を 行 いやす くなることが 期 待 される ただし 言 霊 が 提 供 する 日 本 語 表 現 は その 分 野 で 使 われる 言 い 回 しや 慣 用 表 現 を 含 み その 分 野 に 特 化 された 方 言 である 必 要 がある 今 後 企 業 と 協 働 し 組 み 込 み 系 システム 開 発 に 特 化 した 言 霊 の 開 発 を 目 指 した 活 動 を 行 っていく 予 定 である 6. クリエータ 名 ( 所 属 ) クリエータ: 岡 田 健 ( 慶 應 義 塾 大 学 環 境 情 報 学 部 大 岩 研 究 室 ) コクリエータ: 秋 山 優 ( 慶 應 義 塾 大 学 環 境 情 報 学 部 大 岩 研 究 室 )