強力でコンポーザブルな構文拡張機能をもつプログラミング言語
スポンサーリンク
概要
- 論文の詳細を見る
本発表では,新しいユーザ定義演算子とそれをサポートするプログラミング言語を提案する.我々の演算子はユーザ定義可能だが,構文の制限がほとんどない.演算子の構文はオペランドとオペレータの名前部分からなり,中置・前置・後置・外置以外の演算子も定義できる.我々の演算子は解析表現文法(PEG)と同等の表現力を持ち,実用的な言語で利用されている様々な構文を実現できる.我々の演算子のもう1つの長所はコンポーザビリティである.プログラマは演算子をモジュール化したライブラリを作成でき,またそれらのライブラリを複数組み合わせて利用することができる.たとえ複数のライブラリが同じ構文の演算子をもっていたとしても,それらは静的な型により区別される.このような演算子を実用的な時間で解析するために,我々は期待される型を利用した構文解析手法を開発した.構文解析器は次の式の期待される型の情報を利用して解析に利用する演算子を期待される型を返すもののみに制限する.型エラーになるような演算子は解析に利用されないため,効率的な解析が可能となっている.これと左再帰を許すpackrat parsingを組み合わせることで,現実的な文法に対して線形時間で構文解析することができる.我々はこのユーザ定義演算子をサポートするJava 1.4拡張言語を開発した.本言語は演算子を実装,利用するための簡単なモジュールシステムをもつ.また,我々の言語は演算子優先順位や結合性,サブタイプ関係を型情報の書き換えと演算子の追加により実現している.
- 2014-01-22
著者
関連論文
- カスタマイズ機能を持つ分散デバッガーにおけるデバッグ支援機能の設計と実現
- 緩い一貫性に基づいたグループウェアのための共有オブジェクト空間の実装
- 二次サーバを活用した広域分散ファイルシステムAria
- 異なるネットワーク間を移動する計算機のための分散ファイルシステム
- 幹細胞移植の臨床効果
- OODB上のデータを扱う永続化可能なGUIのためのツールキット
- 実行速度を考慮した実装法による細粒度でのコード再利用のためのメソッド内メソッド
- 強力でコンポーザブルな構文拡張機能をもつプログラミング言語
- 破壊的クラス拡張で生じるメソッド衝突を回避可能なモジュール機構Method Shellsとその実装方法