文法プログラミング
スポンサーリンク
概要
- 論文の詳細を見る
属性文法に基づく文法プログラミングについて提案する. 文法プログラミングとは,入力データを文として認識できる文法を定義し,その文法構造を反映したプログラムを書くことである.文法としてLL(1)文法を仮定し,LL(1)文法によって解析され抽出された情報に対する操作を属性文法に基づいて記述する. プログラムの実行という動的な挙動がプログラムテキストから読みとれる[可読性(readability)]だけでなく,プログラマが意図している問題解決戦略をプログラム構造が反映していること[表現性(expressiveness)]は,プログラムの論理構造を理解する上で重要である. 文法プログラミングでは,可読性と表現性それぞれを,入力データの構成(解析)構造とプログラム構造を一致させること,および,プログラムの実行過程を入力データの構成過程に沿わせることで与える.さらに文法プログラミングでは,文法規則と属性それぞれをプログラムの実行過程と情報操作に対応させることにより,制御の流れと実際の計算を分離する.このことも,可読性の向-ヒに大きな役割を果たす. 文法プログラミングを実現するために,プログラミング言語Leagを設計した.Leagプログラムは関数型言語Gofer[14]のプログラムに変換され,Gofer上で動作する. Leagは属性の遅延評価,属性同士のパターンマッチング,属性主導制御(ガード機構),属性値の型推論を実現する.特に,遅延評価によって,属性の依存関係にループが存在する属性クラスに対しても,解が不動点を持つ場合には属性評価が可能("no truely circular" [11])なクラスに対しプログラム可能となる. また,文法プログラミングがプログラム合成に関し,従来のfold/unfoldとヒューリスティックスを用いたアプローチとは異なった方法で,より機械的に対処できることも示す.
- 一般社団法人日本ソフトウェア科学会の論文
- 1993-11-15
著者
関連論文
- OE3-1 身近なグリッド・コンピューティング(身近なグリッド計算講習会,学術系企画)
- CT3-1 スーパーコンピュータ・コンテスト2002(スーパーコンピュータ・コンテスト2002,学術系企画)
- SuperCon : スーパーコンピュータを使った高校生向けプログラミングコンテンスト
- 並列オブジェクト指向言語ABCLによる在庫管理システムの記述 (新しいプログラミング・パラダイムによる共通問題の設計)
- 84-13 表示的意味のプログラム表現
- 制約と状態遷移によるアルゴリズムアニメーション構築
- スーパーコンピュータを巧みに使う(匠(たくみ)と美)
- SuperCon′97--パソコンプログラミングからス-パ-プログラミングへ
- 遅延属性文法
- 属性文法の新しい応用( 属性文法とその応用-III)
- SCHEME : 抽象化能力をもつ goto-less 手続き型言語 ( プログラミング言語最新情報1)
- 特集「プログラミング言語最新情報」の編集にあたって
- 文法プログラミング
- 並列システムに対する文法プログラミングからのアプローチ
- 並列動作記述に対する文法プログラミングからのアプローチ
- 最近の Lisp 言語
- 89-19 プロトタイプ型オブジェクトによる共有知識の実現
- ゼノン W.ピリシン 著, 佐伯 胖 監訳・信原幸弘 訳, "認知科学の計算理論", 産業図書, B5判, 383p., \3,500