コンパイラとは?
ソースコードを実行可能な形式に変換してくれるプログラム
です。この変換作業を「コンパイル」
と呼び、コンパイルできるプログラミング言語のことを「コンパイラ言語」
といいます。
ソースコード全体を一度に変換し、その結果を実行ファイルとして出力
するというのがコンパイラの基本的な動作です。
出典
* プログラム言語で記述された原始プログラムを翻訳
して目的プログラムを生成
するためのソフトウェアである。コンパイラの処理過程において、構文解析は字句解析が字句を読み込みながら構文木を生成
し、その字句の列が文法で許されているかどうかを解析
する。
出典
原始プログラムとは?
ソースコード」のこと。用語の中身としては人間語で書いたプログラムの元ネタのこと
出典
字句解析
原始プログラムの文字列から、字句(変数名、演算子、予約語、定数など)を切り出す
構文解析
切り出した軸の構成が、構文規則に従っているかどうかを検査する。構文上の誤りを見つけると報告する。構文解析の結果は構文木で表す。
構文木
構文木(こうぶんぎ)とは、構文解析の経過や結果(またはそれら両方)を木構造で表した
もの。
出典
目的プログラムとは?
ソースコードをコンパイルしたものだよ
出典
後置表記法(逆ポーランド表記法)
演算子(+,-,×,÷など)を被演算子(数値や変数,また計算の結果)の後ろ
に書くことで数式を表現する方法です。
-
一般的に 12 + 34 と記載すると、数学的には演算子の優先順位を考慮して、(12)+(34) のように乗算を先に行う。このような優先順位を表現する時に、()を使わない方法として、逆ポーランド記法がある。
演算子の書き方には、前置記法、中置記法、後置記法があり、後置記法は、「2と3を掛ける、それに1を加える」と捉える
と、日本語の処理と似ている。- 中置記法 1+2*3
- 前置記法 +,1,*,2,3
後置記法 1,2,3,*,+ # 1と「2と3をかけた値」をたす。
-
後置記法は、一般的に逆ポーランド記法(Reverse Polish Notation)とも呼ばれ、式を機械語の命令に置き換える際に役立つ。
演算子の右結合・左結合
例えば、”1/23″という式が与えられたとする。この結果は、1/6だろうか?3/2だろうか?
一般的な数学では、優先順位が同じ演算子が並んだ場合、左側から計算を行う
。つまり”1/23″は、”(1/2)*3″を意味する。こういった左側の優先順位が高い演算子は左結合の演算子という。
ただしC言語では、”a = b = c = 0″ と書くと、”a = (b = (c = 0))” として扱われる。こういった代入演算子は、 右結合の演算子である。
出典
2分木を深さ優先で探索するとは?
p144 根から始めて、左の方からかつ、葉のほうから巡回する方法。
出典
BNF/バッカス・ナウア記法
感想
BNF/バッカス・ナウア記法を理解するのに苦労したが理解できてよかった。
字句解析して構文解析してそれを逆ポーランド記法で表現していた。
出典