Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Abstract syntax treeとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Abstract syntax treeの意味・解説 

抽象構文木

(Abstract syntax tree から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/21 14:00 UTC 版)

抽象構文木(ちゅうしょうこうぶんぎ、: abstract syntax treeAST)は、通常の構文木(具象構文木あるいは解析木とも言う)から、言語意味に関係ない情報を取り除き、意味に関係ある情報のみを取り出した(抽象した)木構造の木である。

理論的には、有限なラベル付き有向木である。また、演算子と変数や定数といったオペランドから成る数式などのようなものに対する抽象構文木を例にすると、分枝点は演算子、葉はオペランド(つまり、変数や定数)である。

抽象構文木は、構文解析によって直接得られる具象構文木と、最終的な意味表現などのデータ構造との、中間にあるものと位置付けることができる。コンパイラインタプリタといったプログラミング言語処理系の場合は、中間表現のひとつであり、一部の最適化は抽象構文木の上の操作などによっておこなわれる。具象に対する構文がたとえばBNFによって規定されるように、抽象構文木についてもそれを規定する抽象構文というものが考えられる(が、あまり意識されることはない)。抽象構文木から例えば、バイトコードインタプリタに渡す場合にはバイトコードに、現代的なコンパイラの場合には静的単一代入形式などの、目的コードに近くより扱いやすい形式に変換(一種のコード生成)がおこなわれる。

抽象構文木は具象構文木とは異なり、プログラムの意味に関係ない部分を省略する。そのような省略の例としては括弧の省略があげられる。抽象構文木では、その自然な木構造によって結合は自明であるから、グループ化のための括弧などは意味的に不要である。変数名などの名前なども、識別できればよいので何らかのIDのようなもので構わない。ただし現実的にはエラーへの対応などが必要なので、シンボルテーブルの逆引きなどによって対応することもある。逆に理論的には、ド・ブラウン・インデックスのようにインデックス値にしてしまえることもある。

抽象構文木は、具象構文木から「抽象して」作られることもあれば、構文解析フェーズで直接いきなり作ってしまうこともある。

理論的な観点からは、たとえばソースコード上の位置(何行目の何カラム目など)といった具象の情報は言語処理系には不要であり、抽象構文木には無くてもよいのだが、実践的には、エラーを見つけた時にプログラマに親切なエラーメッセージを出力するためなど、重要な情報であり、時には処理系のフロントエンドではなくバックエンドでも必要なこともある。

関連項目

参考文献

この記事は2008年11月1日以前にFree On-line Dictionary of Computingから取得した項目の資料を元に、GFDL バージョン1.3以降の「RELICENSING」(再ライセンス) 条件に基づいて組み込まれている。

外部リンク


「Abstract syntax tree」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Abstract syntax tree」の関連用語

Abstract syntax treeのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Abstract syntax treeのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの抽象構文木 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2024 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2024 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2024 GRAS Group, Inc.RSS