今回は、普段の話題とは違って、大学や高専の卒業研究で、日本語プログラミングを研究テーマにしたいと思った方のための入り口を紹介できればと思います。
なお筆者は研究者ではないので、最近の研究分野の事情についてはよく知りません。あくまでも参考程度に読んで頂ければと思います。
日本語プログラミング言語は沢山ある
今この記事を読んでいる方は、きっとプロデルや他の日本語プログラミング言語に興味を持って調べている方かと思います。実は、日本語プログラミング言語は、意外にたくさん存在します。それらの名前はWikipadiaで代表的な物は調べられるかと思います。
代表的な物は、言語仕様だけで無く実際に動作する言語の処理系も存在し、今でも入手可能です。これらだけでなく、処理系が公表されていない物や、構想で終わってしまった物も実は沢山あります。学会発表資料や雑誌の記事などで、その断片を見つけることはできます。所属する大学にあるオンライン論文検索サービスを活用すると良いかと思います。
何のための日本語プログラミングか
関連研究を探したり、学会発表するにあたって、自分の研究分野がどの学会、研究会にピッタリなのか、決めておくと資料が探しやすくなるかと思います。日本語プログラミングで関連しそうなのは、次の研究分野かと思います。
- プログラミング教育
- ソフトウェア工学
- プログラミング言語処理系
研究の分野では「何を解決するために日本語プログラミングを使うのか」がとても大切です。興味のある分野で、困っている問題を見つけることが大切です。
プログラミング教育
プログラムを教える時にアルゴリズムやプログラム手順を考えるときの言葉の障壁を取り除けるという点で、日本語の単語を用いたプログラミング言語を使うことをテーマできると思います。例えば、ドリトルやことだま on Squeak,PEN,DNCLなど、日本語プログラミング的なプログラミング言語があります。プログラミング教育は、関連研究も豊富です。これらの研究をもとに、プログラミング教育の観点から研究テーマを探していくのも良いかと思います。
ソフトウェア工学
日本語で書かれた仕様書を、実際に動作するプログラムへ変換するという試みもいくつかあります。日本語プログラミングに直接結びつく関連研究は少ないですが、よく探してみると、日本語プログラミングの表記そのものじゃん、と思えるような研究はたくさん見つかります。仕様書からプログラムへの自動変換の手段として日本語プログラミングを活用できるかもしれません。
プログラミング言語処理系
もしプログラミング言語の処理系に興味があるなら、その言語処理系をテーマにすることもよいかと思います。日本語プログラミング言語そのものも構文解析器からコンパイラ、開発環境まで、全般的に未開拓ですので、作る物・取り組むべき物はたくさんあります。ただ、研究として見た場合に、論文誌に載るしっかりとした論文は殆ど無く、またプログラミング言語そのものの必要性を主張するのが難しいため、研究テーマにしづらい面があります。この分野は関数型言語や並列演算、某スクリプト言語が中心ですので、もしプログラミング言語処理系全般に興味があるなら、日本語プログラミングに限らずテーマを見つけるのがよいかもしれません。
母国語プログラミング
少し話題がずれますが、世界中の人は考えることが同じで、自分の母国語でプログラムを書く(Non-English-based programming languages)という試みは、たくさんあるようです。ただ難しいのはその国の言葉が分からないとプログラムはもちろんドキュメントすらも読めないことです。自然言語処理とキーワードが似ているため、資料が見つけづらいのも難点です。
自然言語処理分野
自然な日本語を考えた場合、一番に自然言語分野も思い浮かべるかと思います。ただ、しっかりと文法や書き方が決まったプログラミング言語に対して、学習によって言葉を処理する自然言語処理は、相反しているので、実は相性が悪い分野だと思います。
「日本語で話した言葉で機械を動かす。」と言ったようなことを研究テーマに考えている方は、それは日本語プログラミングでは実現できません。自然言語処理や機械学習の分野はたくさん研究論文がありそうですので、そちらを探してみて下さい。
既存の日本語プログラミング言語を用いた研究
特にプログラミング教育やソフトウェア工学の分野で研究する時に、既存の日本語プログラミング言語を活用すると、より本質的な問題の解決に取り組めると思います。実際にすでにある日本語プログラミング言語をプログラミング教育で活用した事例もあります。プロデルもそれに役立てるかもしれません。ぜひ活用して下さい。
まとめ
大学の卒業研究では、テーマ探しに悩むことも多々あるかと思います。そんな中で「日本語プログラミング」をテーマに選んで頂けたら、嬉しく思います。
「プログラムを日本語で書く」というシンプルなこと故に、日本語プログラミングと言う言葉のイメージが人それぞれ違っていたり、否定的な意見を持つ人もいたりします。そのことで迷走してしまうテーマでもあります。その時は「なぜ日本語プログラミング言語を使うのか」という点をしっかり見つけていくことが必要です。その道しるべになればと思い、まとめてみました。
もし「日本語プログラミング」で卒業論文を書き上げた暁には、ぜひ学会で発表して下さい。たくさんの人が日本語プログラミングの分野に取り組むことで、少しでも正しい方向に研究を掘り下げられることを望んでいます。