問題タブ [quine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
language-design - すべてのチューリング完全言語でクワインを作成することは可能ですか?
私の言語がチューリング完全である場合、それ自体を出力するプログラムを作成することが100%可能かどうかを知りたかっただけです(もちろん、ファイル読み取り機能は使用しません)
したがって、出力、変数、条件、および goto (はい、goto) など、完全なチューリングを行うために本当に必要なものが言語にある場合 (Brainf*ck コードをそれに変換することで証明します)、試してみることができますか?その中にクワインを書いていますか?
チューリングマシンがあらゆる計算タスクを実行できるというチューリングの法則にクワインが直接適合するかどうかわからないため、これも尋ねています。私は知りたいだけなので、それが不可能かもしれないことを知らずに何年もやろうとはしません.
java - 自己複製するプログラム
ソースコードを新しいファイルに出力してコンパイルし、コンパイルされたプログラムを実行する Java プログラムを作成することは可能ですか?
turing-complete - 私のプログラミング言語のクワインはどのように見えるでしょうか?
チューリング完全なプログラミング言語(すでに証明済み)を作成したので、そのためのクワインを書くことができるはずですよね?
chr
しかし、私が知っているすべてのクワインは、ソースコードを文字列に格納してから、とのようなものを使用してその中の特殊文字を置き換えord
ます。
私の言語には次のものしかありません
- 基本的な算術
- Int型とstring型
- 変数
- ==演算子
- 条件付きgoto
実際の文字列操作が利用できないため、どのようにクインを書くことができるのかわかりません。定数文字列しか出力できません。それでも、100%チューリング完全です。
c - 「シーケンス生成関数」を利用して独自のソースコードを出力するプログラムを書くことは可能ですか?
「シーケンス生成関数」を利用して独自のソースコードを出力するプログラムを書くことは可能ですか?
私がシーケンス生成関数と呼んでいるものは、特定の間隔 (つまり、印刷可能な ascii-charecters (32-126)) から値を返す関数です。ポイントは、この生成されたシーケンスがプログラム独自のソースコードであるべきだということです。ご覧のように、任意のシーケンスを返す関数を実装するのは本当に簡単ですが、返されるシーケンスには関数自体の実装が含まれている必要があるため、非常に簡単な作業ではありません。
これは、そのようなプログラム(およびそれに対応する出力)がどのように見えるかです
個人的にはありえないと思いますが、根本的な問題についてあまり知らないので、ここに私の考えを投稿しました。色々な意見が聞けるのをとても楽しみにしています!
java - ステートメント自体を出力する Java printf ステートメントを作成することは可能ですか?
printf
出力がステートメント自体である Java ステートメントを使用することは可能ですか?
説明するためのいくつかのスニペット:
これは印刷されsomething
ます。
printf
したがって、試行 #1 の出力は、試行 #1 のステートメントとまったく同じではありません。次のようなことを試すことができます。
そして今、出力はSystem.out.printf("something");
したがって、試行 #2 の出力は出力 #1 のステートメントと一致しますが、試行 #2 のステートメントと一致するには試行 #2 の出力が必要であるため、以前の問題に戻ります。
printf
では、自分自身を出力する 1 行のステートメントを書くことは可能でしょうか?
python - これは有効なクワインですか?
python quine.py foo
programming-languages - クワイン(自己印刷プログラム)を書くのに役立つ言語機能?
OK、この用語に出会ったことがない人にとって、クワインは「自己複製」コンピュータプログラムです。具体的には、実行時に、唯一の出力として独自のソースコードのコピーを生成するものです。
もちろん、クインは多くのプログラミング言語で開発できます(すべてではありません)。しかし、一部の言語は明らかに他の言語よりもクワインの生産に適しています(やや主観的な響きの「より適した」を明確に理解するには、WikiページのHaskellの例とCの例を見てください-そして私は以下に私のより客観的な定義を提供します) 。
私が持っている質問は、プログラミング言語の観点から、どの言語機能(理論設計のものまたは構文糖衣構文のいずれか)が言語をクワインを書くのにより適した/役立つものにするかどうかです。
私の「より適切な」の定義は、「クワインは書きやすい」と「より短い/より読みやすい/難読化されていない」です。ただし、少なくともある程度客観的な基準を追加することは大歓迎です。
この質問は、「print_a_quine」プリミティブを含むように設計された言語のように、縮退したケースを明示的に除外していることに注意してください。
python - 標準でpythonに渡されたpythonスクリプトのソースコードにアクセスすることは可能ですか?
これは、特定の必要性というよりも好奇心から出たちょっとしたランダムな質問です。
Pythonコードをファイルに保存せずに、ソースコード自体を含むいくつかのものを出力するPythonコードを書くことは可能ですか? たとえば、Bash プロンプトで次のように実行します。
次のような出力を取得します。
これはおそらく実行できないと思いますが、python のイントロスペクション機能を考えると、このレベルまで拡張されているかどうか知りたいと思っていました。
compression - それ自体しか含まれていない zip ファイルですか?
好奇心から、それ自体しか含まない有効な zip ファイル (フォーマット仕様による) は存在しますか?
別の言い方をすれば、によって実装された関数にunzip
は修正点がありますか?
このような修正点をインテリジェントな (網羅的ではない) 方法で検索するプログラムを作成できますか?
私は反対のことも考えました。つまりzip
、修正点がある場合ですが、おそらくファイルはさまざまな方法 (さまざまなアルゴリズム、さまざまなレベルの圧縮など) で圧縮できるためf = zip(f)
、一部のファイルが保持されているかどうかf
はおそらく実装に依存します。ただし、zip圧縮はロスレスであるため、unzip
おそらく「正式な」回答が必要です。
誰かがこれを調査しましたか?関連する URL へのポインタは大歓迎です。
javascript - Javascript:実行とQuineを同時に行う
私はここで奇妙な必要性を持っています、そしてそれが実現可能かどうかはわかりません。スレッドを使用してそれをどのように行うかを考えることしかできません(Quineして同時に実行したいスクリプトを実行しているスレッドと一緒にQuine関数を実行する別のスレッドを作成するには(手動でアラートを追加することなく!!!)、 javascriptにはその機能がありませんよね?
独自の最小限のJavaScriptデバッグ機能を備えたアプリケーションによって解釈されるJavaScriptがいくつかあります。私のスクリプトは失敗していて、このアプリケーションでしか理解できないステートメントも使用しているため、FirefoxまたはInternet Explorerでこれらのカスタムステートメントを処理できないため、これをデバッグできません。私が達成できることを望んでいるのは、別のプログラムを模倣できるだけでなく、それ自体の機能を実行できるプログラムです。
議論のために、「HelloWorld!」を出力するhello.jsというスクリプトがあるとしましょう。100回、アプリケーションに提供されると、これを解釈しますが、ある時点で失敗しますが、デバッグ機能が制限されているため、理由、場所、時期がわかりません。
次に、アプリケーションに渡すことができるスクリプトが必要です。このスクリプトは、上記のスクリプトのふりをしますが、各ステートメントが実行される前にアラートを出します。私はこれを行うことができます:
ただし、長いプログラムの場合、これが困難な作業になることは理解できると思います。代わりに、次のように実行できるプログラムを作成したいと思います。