ist es möglich, ein Programm zu schreiben, das seinen eigenen Quellcode unter Verwendung einer "Sequenzerzeugungsfunktion" druckt

9

ist es möglich, ein Programm zu schreiben, das seinen eigenen Quellcode mit Hilfe einer "sequenzerzeugenden Funktion" ausgibt?

Was ich eine Sequenzerzeugungsfunktion nenne, ist einfach eine Funktion, die einen Wert außerhalb eines bestimmten Intervalls (d. h. druckbare ASCII-Zeichen (32-126)) zurückgibt. Der Punkt ist nun, dass diese erzeugte Sequenz der programmeigene Quellcode sein sollte. Wie Sie sehen, ist das Implementieren einer Funktion, die eine beliebige Sequenz zurückgibt, wirklich trivial, aber da die zurückgegebene Sequenz die Implementierung der Funktion selbst enthalten muss, ist dies eine sehr nicht-triviale Aufgabe.

So könnte ein solches Programm ( und seine entsprechende Ausgabe) aussehen

%Vor%

Ich persönlich denke, dass es nicht möglich ist, aber da ich nicht viel über die zugrunde liegende Sache weiß, habe ich meine Gedanken hier gepostet. Ich freue mich wirklich darauf, einige Meinungen zu hören!

    
guest 17.05.2010, 14:11
quelle

3 Antworten

2

Wenn Sie wissen, wie man ein Array als Funktion codiert (Sie scheinen zu sagen, dass Sie bereits wissen, wie man das macht), dann ist Kleene Recursion Theorem garantiert, dass es möglich ist.

Aber um Thomas zu zweifeln, hier ist ein C-Beispiel. Es hat eine Programmgenerierungsfunktion, die nur +, -, *, / oder andere Funktionen verwendet, die sie verwenden.

Quines sind immer möglich, wenn Sie Turing Vollständigkeit und Freiheit haben, zu drucken, was Sie mögen.

    
sigfpe 18.05.2010 16:56
quelle
1

Was Sie meinen, ist eine QUINE. Der Artikel von Wiki ist ziemlich gut, mit einigen nützlichen Links. Ссылка

    
corsiKa 17.05.2010 14:24
quelle
0

Um an einer Tangente wegzufliegen, versuchen Sie Tuppers selbstbezügliche Formel .

    
High Performance Mark 18.05.2010 17:04
quelle

Tags und Links