私は疑問に思っていましたが、APIを定義してTM
チューリングマシンへの入力として提供することは可能ですか?出力はコードc
または他の自然/プログラミング言語になりますか?
そうではないと思いますが、縮小などで正式に表示するにはどうすればよいですか?
私は疑問に思っていましたが、APIを定義してTM
チューリングマシンへの入力として提供することは可能ですか?出力はコードc
または他の自然/プログラミング言語になりますか?
そうではないと思いますが、縮小などで正式に表示するにはどうすればよいですか?
あなたの質問は、プログラム仕様(あなたが「API」と呼んでいるもの)を取り込んで、あるプログラミング言語でプログラムを出力するプログラム(言い換えれば、チューリングマシン)を書くことが可能かどうかを尋ねているようです。これに対する答えは「もちろん」です。いくつかの例を見てみましょう。
入力仕様をCプログラムとして記述し、プログラムをCで出力したいとします。このチューリングマシンプログラムを「コピー」と呼び、任意の言語で簡単に実装できます(またはcp
コマンドラインでコマンドを使用できます)。
入力仕様をCプログラムとして記述し、プログラムをアセンブリコードで出力したいとします。私はこのチューリングマシンプログラムを「コンパイラ」と呼んでおり、任意の言語で実装できます(または、既存のCコンパイラをダウンロードできます)。
入力仕様を英語で記述し、プログラムをCで出力したいとします。このTuring Machineプログラムを「ソフトウェアエンジニア」と呼び、人間を学校に送ることで人間の脳に実装します(または雇うこともできます)。既存のソフトウェアエンジニア)。
ここでの教訓は、チューリングマシンは人間ができることは何でもできるということです(そして人間はチューリングマシンができることは何でもできます)。しかし、人間のように汎用的なコンピュータプログラムを書くのは本当に、本当に、本当に難しいです。