実際にコンパイラを独自の言語で作成する方法はありますか?
君は 持っている中で、あなたの新しいコンパイラを書くために、いくつかの既存の言語を持っている。あなたが新しいを書いていた場合は、C ++コンパイラを言って、あなただけのC ++でそれを書いて、最初に既存のコンパイラでコンパイルします。一方、新しい言語用のコンパイラを作成する場合は、Yazzleofと呼びましょう。最初に新しいコンパイラを別の言語で作成する必要があります。通常、これは別のプログラミング言語ですが、そうである必要はありません。アセンブリ、または必要に応じてマシンコードを使用できます。
あなたがいる場合された Yazzleof用のコンパイラをブートストラップに行く、あなたは一般的に、最初は完全な言語のコンパイラを書きません。代わりに、Yazzleofの可能な限り最小のサブセットであるYazzle-lite用のコンパイラーを作成します(少なくともかなり小さいサブセットです)。次に、Yazzle-liteで、完全な言語用のコンパイラーを作成します。(明らかに、これは1回のジャンプの代わりに繰り返し発生する可能性があります。)Yazzle-liteはYazzleofの適切なサブセットであるため、それ自体をコンパイルできるコンパイラーがあります。
あり、本当に題し、(現代のマシン上で基本的にバイナリエディタである)可能な限り低いレベルからコンパイラをブートストラップについて良いWRITEUP 何から簡単なコンパイラのブートストラップが。それはで見つけることができhttps://web.archive.org/web/20061108010907/http://www.rano.org/bcompiler.html。