コンパイラ構築
以下のサイトから翻訳して転載しました
http://en.wikipedia.org/wiki/Compiler_construction
##ライセンス
以下のライセンスに準じます
http://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License
###なぜこれを書こうと思ったか
個人的はセキュリティソリューションを作ろうとしているんですが、そこで、ソースコード解析が必要なんですね。コーセラとかで勉強してもいいんですが、「勉強しながら社会貢献」ができればいいかなと思って、WikiBookを翻訳することにしました。
翻訳下手なので、もっといい訳があれば指摘していただければと思います。
##コンパイラ構築
コンパイラ構築とはコンピュータプログラミング言語やその関連するコンパイラを開発する理論と実際にかんしてあつかうコンピュータサイエンスの一分野である。理論的な部分は、プログラミング言語の構文、文法、意味論、に主に関心を持つ。それにより、このコンピュータサイエンスの特にこの分野は、言語学と深く結びついているということが言える。コンパイラ構築の幾らかのコースでは、文法がプログラミング言語でどのように働いているかをアナロジーで生徒に説明するために、有効な文の形をとっている、話し言葉の単純化された文法を含めているところもある。実用部分は、言語においての、コンパイラの実際の実装をカバーしている。生徒は最終的にMicroのような単純化された教材用の言語のためのコンパイラのフロントエンドを書くことになる。
##字句解析
コンパイラの最初の段階は字句解析と言われている。このフェーズは文字を分類してソースプログラムを語彙素(lexemes)と呼ばれる意味のある並びに作り変える。語彙素は「整数」や「識別子」や「ホワイトスペース」などのトークンの分類に属する。<トークンの分類,属性値>などのトークンの形は、それぞれの語彙素ごとに生成される。字句解析は「スキャニング」とも言われる。
##構文解析
コンパイラ構築の次の段階は構文解析である。字句解析器の出力はトークンの文法的な構造を示す表現を作成するために使われる。構文解析はParsingとも言われる。
##意味解析
意味解析はコンパイラのフロントエンドの最後の段階である。この段階の間、コンパイラはParserによって構築された構文木に意味的なルールを適用する。このフェーズを実行しているタスクはコンパイラのデザインによって変わってくる、しかし、概して型チェック、スコープのチェック、オブジェクトの結合などを含む。シンボルテーブルはコード生成の準備として意味解析の際に構築される。ワンパスコンパイラのような幾らかのケースでは、意味解析は構文解析と同時に行われる。