0

特定のプログラミング言語で書かれたプログラムを、他の言語で同等の機能を持つプログラムにコンパイルすることは常に可能ですか?

4

2 に答える 2

2

生のロジックに関しては、はい。両方の言語がチューリング完全である限り。

ただし、ターゲット言語で使用できない API (ネットワーク、ファイル システム、3D アクセラレーション、スレッドなど) をコードで使用している場合は、いいえ。(完全な仮想マシンをターゲット言語で作成し、その上に構築しない限り)

たとえば、共有メモリのマルチスレッド コードを Javascript に移植する適切な方法はありません。

于 2015-02-15T22:20:36.153 に答える
1

あなたはチューリング完全性を探しています。

すべてのチューリング完全言語は技術的に同等の力を持っていますが、ある言語でアイデアを表現するには、別の言語よりも桁違いに多くの作業が必要になる場合があります。

また、API などの形式で、基盤となるプラットフォームへのさまざまな量のアクセスを提供する場合もあります。

これはきちんとturing-tarpitにつながります。つまり、一方の言語で何かを行うにはあまりにも多くの作業が必要になる可能性があり、最初にもう一方の言語のインタープリターを作成することが勝利になるということです。

于 2015-02-15T22:21:33.153 に答える