回答:
はい、可能です。作成された言語のインタープリターを使用してプログラムをシミュレートできます。これで、プログラム(インタープリター)が修正され、自己変更プログラムであったものがインタープリターのデータになりました。
特に、シミュレートしているTMが独自の記述を変更できるユニバーサルチューリングマシンを完全に使用できます。(シミュレートされたマシンの説明、つまりUTMではありません。)
変更コード(または「コード」)を持たないチューリング完全計算モデルは、そのステートメントの証明として機能します。私は標準モデル(TM、RAM、...)のいずれかがあることを知らないん我々はあまりにも遠くに見てする必要はありませんので、コードを修正しました。
考えている言語でプログラムを取得するには、そのようなモデルからコンパイルします(コンパイラがコード変更を導入しないようにします)。
これは、当然のことながら、実存の引数である:そこにある同等のプログラムが。しかし、2つのチューリング完全言語の間に再帰的(つまり、計算可能な)コンパイラがあることもわかっているため、希望する形式(言語で読む)のプログラムを取得できます。
David Richerbyの答えに追加するには:
自己修正アルゴリズムが非自己修正アルゴリズムによってモデル化できないことが事実である場合、それらのアルゴリズムは自己修正するものでも実行される必要があります。それはずっとカメである必要があります。
私のコメントで述べたように、自己変更アルゴリズムは、マシン命令の実行方法を「伝える」静的アルゴリズムのルール(設計でエンコード)を順守するプロセッサで実行できます。
cat
です。(猫が生き物である場合でも、しゃれは意図されていません)