シンタックス定義形式 - 百科事典
シンタックス定義形式(SDF)は、文法的文法を定義するためのメタシンタックスです:つまり、形式言語を記述する形式的方法です。それは、文法的文法の全範囲を表現できます。現在のバージョンはSDF3です。SDF指定用のパーサとパーサ生成器は、無料のASF+SDFメタ環境の一部として提供されています。これらはSGLR(Scannerless GLRパーサ)を使用して動作します。SDFパーサは、パースツリーを出力し、曖昧性がある場合にはパースフォレストを出力します。
概要
SDFの特徴:
文法的文法の全範囲をサポート
モジュール的なシンタックス定義(文法がサブ文法をインポートできる)をサポートし、再利用を可能に
アノテーションをサポート
例
以下の例では、SDF2でシンプルなブール表現のシンタックスを定義しています:
module basic/Booleans
exports
sorts Boolean
context-free start-symbols Boolean
context-free syntax
"true" -> Boolean
"false" -> Boolean
lhs:Boolean "|" rhs:Boolean -> Boolean {left}
lhs:Boolean "&" rhs:Boolean -> Boolean {left}
"not" "(" Boolean ")" -> Boolean
"(" Boolean ")" -> Boolean
context-free priorities
Boolean "&" Boolean -> Boolean >
Boolean "|" Boolean -> Boolean
SDFを使用するプログラム解析および変換システム
ASF+SDFメタ環境はSDFを提供
RascalMPL
Spoofax/IMP [1]
Stratego/XT
Strafunski
参考事項
GNU bison
ANTLR
参考文献
[省略]
詳しくは
SDFへの簡単な導入、Visser, J. & Scheerder, J. (2000) CWI
シンタックス定義形式SDF、Mark van den Brand, Paul Klint, Jurgen Vinju (2007) CWI
外部リンク
Grammar Deployment Kit
SdfMetzはSDF文法のメトリクスを計算
ASF+SDFメタ環境のホームページからSDFをダウンロード