抽象構文

抽象構文(abstract syntax)は、情報通信におけるメッセージやコンパイラにおけるプログラムなど、さまざまなデータの表現形式を指します。この表現形式は、特定のコンピュータシステムに依存する構造やデータエンコーディング方式から独立しており、データの物理的な表現形式にも左右されないという特徴を持ちます。

プログラミング言語処理系において、抽象構文は内部表現として頻繁に利用されます。特に抽象[[構文木]](abstract syntax tree)は、ソースコードを解析し、その構造を木構造で表現したものです。この木構造は、文、式、識別子といった分類用語を用いて定義され、ソースコードの具体的な構文(具象構文)とは独立した存在となります。ただし、抽象構文と具象構文は密接に関連していることが多く、抽象[[構文木]]は具象構文木(parse tree)から派生することが一般的です。

具象構文木は、ソースコードのテキストをそのまま反映した構造を持つ木であり、括弧などの構文要素も含まれます。一方で、抽象[[構文木]]は、プログラムの本質的な構造のみを表現することを目指しており、括弧などの構文解析には必要なものの、プログラムの意味には直接関係しない要素は排除されます。この抽象化によって、プログラムの分析や変換がより容易になります。例えば、コンパイラ抽象[[構文木]]を元に最適化やコード生成を行います。

抽象構文は、高階抽象構文やASN.1など、他の様々な情報表現技術とも関連しています。高階抽象構文は、より抽象度の高いレベルでプログラム構造を表現し、ASN.1はネットワークプロトコルにおけるデータ構造を定義するための標準規格です。

この文章は、2008年11月1日以前にFree On-line Dictionary of Computingから取得した項目を元に、GFDL(GNU Free Documentation License)バージョン1.3以降の再ライセンス条件に基づいて作成されました。これにより、情報の自由な共有と再利用が促進されます。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。