私は現在、独自の単純なおもちゃのプログラミング言語を実装しています。早く実装して欲しいのですが、今の段階からどこに行けばいいのかよくわかりません。 通訳者を作る方が簡単に思えるので、自分の言語を通訳者にしようと思っています。またはより速いですか?コンパイラを作るより。
とにかく、私はかなり困っています。パーサー/レクサーを Bison/Flex で作成しましたが、AST を作成していません。この理由は、AST を解釈することを計画していたためですが、ポリモーフィズム (実装言語として C++ を使用しています) の恩恵を受ける AST をどのように設計するかがよくわからないため、スイッチを使用する必要はありません。 /if-else ステートメント。私がこれにどのように取り組むべきかについて誰かが考えを持っていますか? または、AST を解釈せずに、IR にコンパイルして IR を解釈する必要があります。
その場合が後者の場合、私自身の IR を発明する代わりに、(IR を解釈するための) どのような IR と VM が私のソース コードに制限なく自由に使用できるでしょうか? LLVM については知っていますが、他に考慮すべきものはありますか?
編集:
私が作成しているプログラミング言語は単純な C に似た言語であり、いくつかの視覚的な基本特性が組み込まれています。数値 (浮動小数点) またはテキスト文字列の 2 つの使用可能なプリミティブを使用して、静的に型付けされます。
これは次のようになります。
begin // start of the program
num x = 3; // make a number
str text = "Hello World"; // make a string
print text + x; // prints out "Hello World3"
end // end of the program