それは、すべてのチューリング完全言語でQUINEを作成することは可能ですか?

StackOverflow https://stackoverflow.com/questions/2568020

質問

私はちょうどそれが100%可能であれば私の言語はチューリング完全されている場合(もちろん機能を読み込むファイルを使用しない)自体を出力し、その中にプログラムを書くために、知りたいと思った。

だから、言語は単に出力、変数、条件、GOTOS(はい地獄、GOTOS)のような、それは完全なチューリングにするために本当に必要なものを(私はそれにBrainf * ckのコードを変換することであることを証明する)、持っている場合、私はそれでQUINEを書いてみてくださいすることができますか?

私はQUINEが直接チューリングマシンは任意の計算タスクが可能であることをチューリングの法則に収まることはよく分からないので、

また、私はこのことを聞いていますのよ。 私はちょうど私がそれが不可能であってもよいことを知らずに年間にわたって試みてはいけないので、知りたい。

役に立ちましたか?

解決

  

は、任意のプログラミング言語   チューリング完全であり、そのことはすることができます   計算によって任意の文字列(出力   プログラムとして文字列の機能 -   これは技術的な条件であります   すべてのプログラミングに満足   現存する言語)QUINEを持っています   プログラム(と、実際には、無限に多くの   クワインプログラム、および多くの類似   で、次のように好奇心)   固定小数点定理。

こちらを参照してください

他のヒント

私は数ヶ月前にこの問題に遭遇しました。

必ずしも言語はチューリング完全であることを証明しないQUINEを書いている間、

は、それが強く示唆され;)限りチューリング完全性が経つにつれて、あなたが言ったように、あなたが()別の言語から有効な翻訳を提供できる場合チューリング完全言語、そしてあなたの言語はチューリング完全されます。

ということでは、出力することができる文字列はQUINEを生成することができるはずというチューリング完全された任意の言語を言いました。また、ウィキペディアから:

  

A QUINEは、実行環境を関数として見た場合、実行環境の固定点です。 Quinesはクリーネのの直接の結果として、出力の任意の文字列計算する能力を持っている任意のプログラミング言語で可能であり、再帰定理に。アミューズメントでは、プログラマは、時々、任意のプログラミング言語で可能な限り最短QUINEを開発しようとします。

その表現のすべてのシンボルを印刷することができないプログラミング言語を持つことが可能です。例えば、I / Oは、アラビア語の言語のキーワードと7ビットASCII文字に制限することができます。それは私が考えることができる唯一の例外です。

まあ、技術的には、常にではありません。ウィキペディアの上証拠によると、プログラミング言語は許容ナンバリングにする必要があります。実用的で正気チューリングcomplateプログラミング言語はすべて許容ナンバリングされています。そして、チューリングcomplateプログラミング言語は、それが、別の許容ナンバリングの間で変換することができますならば許容ナンバリングされます。

許容ナンバリングではない例チューリング完全なプログラミング言語:

は、ソースコードは常に1つのまたは2 doublequotedエスケープ文字列が含まれています。 1がある場合は二つの文字列、またはループは永遠に存在する場合、入力が空の場合は、出力の最初の文字列。それ以外の場合は、入力として、元の入力を使用して、Pythonで最後の文字列を評価します。

Pythonプログラムを考えると、私たちは、この言語に翻訳するために、入力が空のときにその動作を知っている必要があります、ので、

これは許容ナンバリングではありません。それは無限ループであれば、我々は停止問題を解決することはできませんとしてではなく、私たちは、決して知らないことがあります。私たちはいますが、翻訳が常に存在することがわかっている。

これは、この言語で書き込みquinesに不可能です。

scroll top