2017-08-05 9 views
-1

Assemblyを直接生成するC++があることは知っています。しかし、言語のような多くのjavaもそうですか?どのオブジェクト指向言語がアセンブリを直接生成しますか(中間表現はありません)?

+0

あなたはどのような言語を「もっとJavaのように」していますか? Javaをマシンコードに直接コンパイルするコンパイラであるgcjについて聞いたことがありますか? – fuz

+1

ちょうど約***すべての***コンパイラは何らかの(内部の)中間表現を生成します。また、多くの大規模なC++コンパイラは、中間ステップを経ることなく直接中間コードを生成するために中間表現を使用します。 –

答えて

4

言語はアセンブリを生成しません。コンパイラはアセンブリを生成します。 Cは伝統的にアセンブリにコンパイルされた言語の例ですが、それにはいくつかのインタプリタもあります(GDBは最も有名ですが不完全です)。

Clangは、CやC++などの多くの入力言語を受け付けるコンパイラの例であり、アセンブリコードを生成する一方、intermediate representationも使用します。

多分あなたがここで求めているのは、仮想マシンやバイトコードインタープリタに依存しない言語です。そのリストには、従来のコンパイラのフロントエンドが書かれているすべての言語が含まれているため、膨大なものです。たとえば、PythonにはCythonがあります.Cythonのようにいくつかの制限があり、Pythonコードをコンパイルできます。これらのうち、https://en.wikipedia.org/wiki/Compiled_language#Languages

、パスカル、移動、およびエイダ可能性「のような、よりJavaの」であるとして、あなたの質問に関連する可能性があるいくつか:

ウィキペディアはここに長いリストでのコンパイル言語についてのページを持っています。構文に関してJavaのようには見えませんが、C++よりも「ベアメタル」ではありません。

関連する問題