抽象構文木

Multi tool use
抽象構文木(英: abstract syntax tree、AST)とは、通常の構文木(具象構文木あるいは解析木とも言う)から、言語の意味に関係ない情報を取り除き、意味に関係ある情報のみを取り出した(抽象した)木構造のデータ構造である。
理論的には、有限なラベル付き有向木であり、分岐点[1]に演算子、葉[2]にそのオペランドを対応させたものである。つまり、葉は変数や定数に対応する。
抽象構文木は構文解析で構文木とデータ構造の中間的なものとして使用される。さらにコンパイラやインタプリタなど(プログラミング言語処理系)でのプログラムの中間表現として使われ、コンパイラ最適化やコード生成はその上で行われる。抽象構文木のとりうる構造は抽象構文で記述されている。
抽象構文木は(具象)構文木とは異なり、プログラムの意味に関係ない部分を省略する。そのような省略の例としては括弧の省略があげられる。抽象構文木では、オペランドのグループ化が自明な木構造とするのが普通であり、グループ化のための括弧などは意味的に不要である。
大多数のプログラミング言語のような文脈自由言語の構文解析で抽象構文木を作るのは簡単である。構文規則ごとに新たな節点を作成し、葉はその規則における記号に対応する。グループ化規則のような抽象構文木に関わらない規則は無視される。そのようにいきなり抽象構文木を生成することもあるし、完全な具象構文木を作り、その後そこから冗長な部分(プログラムの意味に関係しない部分)を除いて抽象構文木に変換することもある。
理論的な観点からは、たとえばソースコード上の位置(何行目の何カラム目など)といった具象の情報は言語処理系には不要であり、抽象構文木には無くてもよいのだが、実践的には、エラーを見つけた時にプログラマに親切なエラーメッセージを出力するためなど、重要な情報であり、時には処理系のフロントエンドではなくバックエンドでも必要なこともある。
目次
1 脚注
2 関連項目
3 参考文献
4 外部リンク
脚注
^ 英: internal node
^ 英: leaf node
関連項目
Document Object Model (DOM)
- 操車場アルゴリズム
- シンボルテーブル
- TreeDL
- 形式文法
- 句構造規則
参考文献
この記事は2008年11月1日までGFDLバージョン1.3以降の再ライセンス規約に基づいていたFree On-line Dictionary of Computingにある項目の資料が元になっている。
外部リンク
- Citations from CiteSeer
AST View Eclipse用Javaプラグイン
- Good information about the Eclipse AST and Java Code Manipulation
- 1-5 構文解析2
 |
この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。 |
DA 7D,h9,FuoqNKjoWje,QKLpsbLLQIGIsGu Lu0Mc0qY ROgzSAOidaxW NPUGMEvl,0dTTL3Sj,Of5
Popular posts from this blog
陸軍士官学校卒業生一覧 (日本) (りくぐんしかんがっこうそつぎょうせいいちらん(にほん))は、陸軍士官学校 (日本)の卒業生・修了生の一覧である。なお、原則としてWikipediaに記事が存在する人物を掲載する。陸軍航空士官学校関係者については同項目を参照。 目次 1 卒業生等 1.1 陸軍兵学寮 1.2 士官生徒 1.2.1 旧1期 1.2.2 旧2期 1.2.3 旧3期 1.2.4 旧4期 1.2.5 旧5期 1.2.6 旧6期 1.2.7 旧7期 1.2.8 旧8期 1.2.9 旧9期 1.2.10 旧10期 1.2.11 旧11期 1.3 士官候補生以降 1.3.1 1期 1.3.2 2期 1.3.3 3期 1.3.4 4期 1.3.5 5期 1.3.6 6期 1.3.7 7期 1.3.8 8期 1.3.9 9期 1.3.10 10期 1.3.11 11期 1.3.12 12期 1.3.13 13期 1.3.14 14期 1.3.15 15期 1.3.16 16期 1.3.17 17期 1.3.18 18期 1.3.19 19期 1.3.20 20期 1.3.21 21期 1.3.22 22期 1.3.23 23期 1.3.24 24期 1.3.25 25期 1.3.26 26期 1.3.27 27期 1.3.28 28期 1.3.29 29期 1.3.30 30期 1.3.31 31期 1.3.32 32期 1.3.33 33期 1.3.34 34期 1.3.35 35期 1.3.36 36期 1.4 陸軍士官学校本科以降 1.4.1 37期 1.4.2 38期 1.4.3 39期 1.4.4 40期 1.4.5 41期 1.4.6 42期 1.4.7 43期 ...
濃尾地震 『岐阜市街大地震之図』 歌川国利画 本震 発生日 1891年(明治24年)10月28日 発生時刻 6時38分50秒(JST) 震央 日本 岐阜県本巣郡西根尾村(現・本巣市) 北緯35度35分 東経136度20分( 地図 ) 規模 マグニチュード(M)8.0 最大震度 震度7: 注1 福井県今立郡鯖江町、愛知県葉栗郡大田島村、東春日井郡勝川村 地震の種類 直下型地震 被害 死傷者数 死者7,273人、負傷者17,175人 注1:当時の震度階級では「激烈」 プロジェクト:地球科学 プロジェクト:災害 テンプレートを表示 濃尾地震 (のうびじしん)は、1891年(明治24年)10月28日に濃尾地方で発生した、日本史上最大の内陸地殻内地震。「 美濃・尾張地震 (みの・おわりじしん)」とも呼ばれている。辛卯の年に発生したことから 辛卯震災 と呼んでいる報告書もある。 目次 1 概要 1.1 震源断層 2 被害 3 各地の震度 4 前兆現象 5 報道 6 学術的な意義 7 地震防災 8 脚注 9 関連項目 10 外部リンク 概要 濃尾地震発生当時の根尾谷断層 濃尾地震を引き起こした根尾谷断層 写真中央を斜めに走る段差が根尾谷断層 濃尾地震は、1891年10月28日6時38分50秒に発生した。震源は、岐阜県本巣郡西根尾村(現・本巣市)、北緯35度35分、東経136度20分付近。河角廣 (1951) は岐阜市付近(北緯35.6度、東経136.6度)に震央を仮定し規模 M K = 7.0 を与え [1] 、マグニチュードは M = 8.4 に換算されているが、明治・大正期の地震については0.5程度大きく見積もられているとされる [2] 。また、震央距離と震度との関係など当時のデータから後にM8.0 [3] とも推定される。アメリカ地質調査所 (USGS) でも8.0としている [4] 。「根尾谷断層帯」が活動した典型的な内陸地殻内地震(いわゆる直下型地震)であり、これは記録が残っている日本の内陸...
土坑 (どこう)とは、発掘調査などの際に確認される遺構のうち、人間が土を掘りくぼめてできたと考えられる穴で性格が見極めにくいものを指す。つまり遺構として検出されたとき、竪穴住居跡ないしその他の性格が明確な遺構と考えられるもの以外のものを「土坑」と呼び、調査の結果、性格の見きわめにくい遺構と判断された場合も「土坑」として取り扱われる。 目次 1 土坑の種類 1.1 平面形状による分類 1.2 断面形状による分類 1.3 規模や深さによる分類 1.4 覆土(堆積土)による分類 1.5 用途による分類 2 土坑の用途 3 関連項目 土坑の種類 平面形状による分類 土坑を真上からみた場合の形状は円形、楕円形、方形、長方形、隅丸方形、隅丸長方形、不整形などがある。 断面形状による分類 土坑を半分に断ち割って覆土(ふくど)の半分を取り除いていくと断面の形状が明らかになる。断面全体の形状には筒状、フラスコ状、漏斗状などがある。また、底面も平坦なもの、窪み・凹凸をもつものなど様々である。 規模や深さによる分類 とくに規模の大きい土坑を大形土坑とよぶ場合があるが、明確な基準があるわけではない。柱を建てるために掘られたとみられる小規模な土坑は、柱穴様土坑または柱穴様ピットと呼ぶことが多い。なお、遺跡の時代や性格から考慮して、柱材を伴わなくても柱穴であることが確実視される場合(たとえば規則的にならぶ、柱の腐った痕跡があるなど)は、単に柱穴と呼び、土坑と区別することがある。 覆土(堆積土)による分類 半分に断ち割った際に、覆土を観察するが、それによって人為堆積か自然堆積かが判別できることが多い。土坑墓の場合は一括埋め戻しの人為堆積が一般的であるのに対し、貯蔵穴の場合は自然堆積であることが多い(もっとも、使わなくなって埋め戻す場合も多いので人為堆積の例も少なくない)。自然堆積の場合は、周囲の土砂が雨水のはたらきによって流れ込むことにより土層がレンズ状に堆積の様子がしばしば確認される。 用途による分類 出土物(遺物や人骨)を伴わない場合、土坑の用途を決めることは実はたいへん難しい。 たとえば、縄文時代の遺跡で、周囲に墓ないし墓域があり、径もしく...