研究課題/領域番号 |
18K11247
|
研究機関 | 法政大学 |
研究代表者 |
佐々木 晃 法政大学, 情報科学部, 教授 (90396870)
|
研究分担者 |
廣津 登志夫 法政大学, 情報科学部, 教授 (10378268)
伊藤 克亘 法政大学, 情報科学部, 教授 (30356472)
|
研究期間 (年度) |
2018-04-01 – 2021-03-31
|
キーワード | プログラミング言語 / コンパイラ / プログラミング言語生成系 / 言語推定 / エディタ |
研究実績の概要 |
本研究の目標は、「行きつ戻りつ」を繰り返す探索的なスタイルによって、効果的に言語開発を行うための手法を提案することである。本応募課題では、探索的な言語開発を実現する1つの解として、プログラムの例示に基づいて言語の設計を探索的に行いながら、効率的にその言語処理系の実装を得る手法の確立を目標としている。本研究の主要なアイディアは、言語設計者が複数のプログラム例を提示することで、そのプログラムを解釈、実行可能な言語処理系を効率的に導くものである。本年度の主な成果は以下である。(1) 昨年度に引き続き、厳密に構文仕様に従わない不正確なプログラムから、適切な文を推定して正しい構文のプログラムに変換するアルゴリズムについての理論的研究を進めた。この結果、正しい構文仕様から、「不正確なプログラム」の構文仕様を自動生成することが可能となった。これを今後、探索的に言語の設計を行うライブ「構文」プログラミングの効率化に応用する。(2)昨年度、複数のプログラム例から、そのプログラムがもつ構文を半自動的に推定する言語設計のための支援ツールの研究を行ったが、この研究を応用したツールの開発を行った。この研究を行うとともに、プロトタイプシステムを作成した。また、構文および意味推定の基礎的な研究として、LSTMを応用した、繰り返し構造を持つ音楽自動生成の研究を行った。今後、このアプローチを学習に基づく言語推定手法に応用することを検討する。(3)本研究では、ドメイン特化言語の開発へ応用する。昨年度に引き続きエージェントシミュレーション向け言語システムの実装を行うとともに、アプリケーションとなるシミュレーションの調査、試作を行った。また、コンピュータ基盤技術分野での記述言語への応用として、エッジコンピューティングにおけるワークフロー言語の研究を行った。今後、例示による言語開発アプローチを、上記2分野の言語開発へ適用する。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
3: やや遅れている
理由
本課題では、言語の設計を探索的に行うための対話的設計ツールの研究を行うとともに、応用として様々なプログラミング言語の設計を行う。これらを実現する手法は、ライブ「言語」プログラミングエディタによるインタラクティブな言語設計、および、プログラム例を利用した言語推定アルゴリズムである。研究実績の概要で述べた(1)の研究では、昨年度の研究結果を受け、ライブプログラミングをより効果的に可能とする手法の詳細を明らかにした。(2)の研究では、昨年度検討したプログラムから構文の推定を半自動で行うアルゴリズムに基づいて、構文推定を支援する対話的なエディタシステムの一部を実装した。応用に関しては、(3)の項目に書いた通り2つの専門分野での研究を進めた。当初計画であった、統計的機械翻訳を応用した言語推定の研究を進める予定であったが、言語推定に関しては、手動に一部頼る半自動の(2)の方法についての研究を中心に行ったため、予定通りには進まなかった。言語開発への応用に関しては(3)の項目に書いた通り2つの専門分野での研究を進めたが、汎用言語の自動生成への取り組みを行う必要がある。以上から(3)やや遅れていると判断した。
|
今後の研究の推進方策 |
プログラミング言語は、構文と意味から構成されるととらえられるが、ここまで主に構文の設計に関わる部分の研究を進めた。次年度は、これまでの成果として得られた研究結果に基づいて、ライブ「言語」プログラミングツールとして実現する。これは、ライブ「言語」プログラミングエディタに加え、言語推定のアルゴリズムを統合したものとする。さらに、言語の意味の設計に関わる研究を本格化する。前述のツールを利用し、探索的にインタプリタを作成していく手法を通じて、言語の意味の設計を支援する。また、複数のプログラム例題から意味を推定していくアプローチをツールに統合する手法について、研究を進める。応用として、ドメイン特化言語の実装を本アプローチから得る手法の研究を行う。
|
次年度使用額が生じた理由 |
新型コロナウィルス流行に伴い、国内外への旅行の中止や自粛を行ったことによる。2020年度は必要な旅費等で使用する予定であるが、ソフトウェア開発補助費等への活用を検討している。
|