#コンパイラとは#
原始プログラム(任意の言語)から目的コードを生成するものを言います
メタプログラミングの究極ともいわれたり言われてなかったり
#注意#
手探りで作成していますので間違っている部分もあると思います
#何を使うのか#
今回はC#だけを使います
もちろんライブラリは.net freamwork標準のものだけです
それ以外は使いません
#どのような処理か#
処理の流れは以下のようになっています
字句解析
↓
構文解析
↓
意味解析
↓
最適化(最近はされないものも多い)
↓
コード生成
##字句解析##
その名の通り文字をトークン(token)で分けます
その時文字情報とともにトークンの情報を持っておきます
##構文解析##
構文解析は構文を木構造にして構文情報をまとめます
##意味解析##
型のチェックや構文解析では調べきれなかった部分を調べます
##最適化##
中間コードに変換後に実行速度を上げるための処理です
##コード生成##
コード生成はwindowsであればexeを生成するわけです
#現在の進捗#
現在私のコンパイラは構文解析ができたところです
コンパイラの作成においてある程度の機能をある程度少しづつ実装した場合がよいと思います
#最後に#
コンパイラが完成し次第作成方法などを詳しく書きたいと思います