私が学んでいるフレックス/ Bison今はコンパイラを使うことができると思っていますが、私はもっと多くの質問をしています。シンタックスアナライザだけであり、新しいファイルを実行可能なユニバーサルウィンドウ私たちのプログラミング言語から。 Bisonによって生成されたファイルが実行されると、C言語のコード言語のみが解釈されます。どのようにFlex/Bisonで実際のコンパイラを作成するのですか?
コンパイラを持たないウィンドウから実行可能ファイルを生成するコンパイラは作成できますか?
私が学んでいるフレックス/ Bison今はコンパイラを使うことができると思っていますが、私はもっと多くの質問をしています。シンタックスアナライザだけであり、新しいファイルを実行可能なユニバーサルウィンドウ私たちのプログラミング言語から。 Bisonによって生成されたファイルが実行されると、C言語のコード言語のみが解釈されます。どのようにFlex/Bisonで実際のコンパイラを作成するのですか?
コンパイラを持たないウィンドウから実行可能ファイルを生成するコンパイラは作成できますか?
はい、flex + bisonを使用してコンパイラを記述することは可能ですが(そして完全に共通ですが)、これらのツールはレキシカルと構文解析を行うのに役立ちます。残りは自分でやるか、LLVMのような追加のツールを使用する必要があります。
たとえば、シンプルなシングルパスコンパイラを作成するには、単にバイソンアクション内のファイルにアセンブリ命令を書き込むことができます。その後、アセンブラとリンカを介してそのファイルを実行し、実行可能ファイルを取得することができます。
さらに複雑なコンパイラでは、バイソンアクション内に抽象構文ツリーを作成し、そのツリーを後のフェーズで歩いて、最終的にアセンブリを生成するまで変換と解析を実行できます。
いずれにしても、バイソンは解析に役立つだけで、他の手順を自分で実行する必要があります。
コンパイラを書くことは、実際には非常に複雑な作業です。テーマを勉強して、自分のプロジェクトに適した選択肢を作っていきます。どうもありがとうございました – Chr