4

私は2つのことを探しています。最初は用語です。

ある言語を別の言語にコンパイルするコンパイラを何と呼びますか?

第二に、一般的な言語 Xを移植可能な C コードにコンパイルするコンパイラはありますか?

私はただアイデアを投げかけただけですが、私が考えていたのは、私たちが選択した独自の言語用に独自のフロントエンドを作成した場合、コンパイラーが移植可能な C コードを出力した場合です。このようにして、新しい言語機能を追加しながら、既存の C コードとの互換性を維持できます。

このアプローチには大きな欠陥があるかもしれませんが (ビルドする必要があることを除いて)、人々はこれを行いますか?

4

1 に答える 1

6

人々は絶対にこれを行います。実際、C++ の元の実装は、C++ を C コードに変換し、C コンパイラでコンパイルするCfrontと呼ばれるプログラムでした。

現在、JVM、CLR、LLVM などの中間「バイトコード」言語が普及しているため、言語を C ソース コードに変換することはあまり一般的ではありません。テキストのソース コードを生成するよりも、バイトコードを直接生成する方がはるかに強力で煩わしくありません。これらのバイトコード (または LLVM の場合は「ビットコード」) 言語は、テキスト プログラミング言語よりも低レベルですが、特定の CPU または CPU ファミリに関連付けられている生のマシン コードよりも高レベルです。

私はこの種のプログラムを「翻訳者」と呼んでいますが、それは私だけです。「コンパイラ」も問題なく動作します。

于 2012-06-14T08:16:53.427 に答える