- 著者
-
佐々木 晃
須賀 康行
- 雑誌
- 情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
- 巻号頁・発行日
- vol.1, no.2, pp.124-124, 2008-09-26
本発表では,プログラミングを支援する言語指向エディタの自動生成手法を提案する.本研究で対象とする言語は,汎用プログラミング言語ではなく,特定の分野で使われることに目的を特化した言語,ドメイン特化型言語である.このような言語の利用者は必ずしもプログラミングの知識を持つわけではない.そこで,プログラミング支援をする専用の言語指向エディタが不可欠となる.たとえばGUIによるウィザード形式でテンプレートに埋めながらプログラムを完成させるようなエディタが考えられるが,そのような単純なものでも,開発では,言語仕様を満たすための緻密性が要求される.したがって,自動生成による開発コスト削減,保守性の向上が望まれる.汎用言語に対する言語指向エディタの自動生成は,インクリメンタル構文解析,属性評価など関連する研究が古くからなされている.一方で,今回想定しているエディタでは,プログラマが編集するものはプログラムのテキストではない.そこで本研究では,テキストの構文などを抽象化した抽象構文木を編集させるという視点を持ち,木の文法(tree grammar)に基づいた仕様記述に基づいてエディタを生成する方法をとる.この方式では汎用言語における構文エラーは発生しない.一方で,言語要素の型や静的意味チェックが必要となるが,これは属性文法に基づく手法を用いる.本発表では,以上で述べた仕様記述やエディタ生成のアルゴリズムの詳細,本研究の評価について実例を交えて示す.We propose a method for generating language-oriented editors. Target languages in this study are domain specific languages that are specialized to supporting tasks in specific domains. Primary users of such languages do not have programming skills. This means we should also offer a programming development tool with the language processor. These tools are expected to be generated from specifications, since the development and maintenance cost of such tools tends to be high. There are several studies on syntax-oriented editors for general purpose programming languages, such as incremental parsing and attribute evaluation techniques. On the other hand, in this study, it is not a program text that a programmer is to edit. Therefore, our approach to generating such tools is based on abstract syntax trees (ASTs) in which text structure is abstracted out. The method for checking of static semantics is based on the attribute grammar formulation. In this presentation, we will show the details of specification, generating algorithms, and evaluation with experiments.