Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: Mathematik und Physik ::  Turing-Vollständigkeit nachweisen     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
klein-thüring
Unregistrierter




Beitrag klein-thüring Unregistrierter 23:11:23 20.01.2012   Titel:   Turing-Vollständigkeit nachweisen            Zitieren

Hallo, ich würde gerne die Turing-Vollständigkeit meiner kleinen Programmiersprache nachweisen. Vom Prinzip her ist sie so ähnlich wie die constexpr-Funktionen von C++ (jede Funktion ist ein Einzeiler, d.h. es gibt keine Kontrollstrukturen, dafür aber Rekursion).

Weiss jemand, wie man da am besten vorgeht bzw. wo das Vorgehen erklärt wird? Im Internet konnte ich dazu nichts Verständliches finden.

Vielen Dank!
knivil
Mitglied

Benutzerprofil
Anmeldungsdatum: 11.02.2009
Beiträge: 4495
Beitrag knivil Mitglied 23:19:59 20.01.2012   Titel:              Zitieren

Zitat:
es gibt keine Kontrollstrukturen, dafür aber Rekursion
Dann ist sie wahrscheinlich nicht turingvollstaendig.
Zitat:
würde gerne die Turing-Vollständigkeit meiner kleinen Programmiersprache nachweisen
Implementiere eine allgemein Turingmaschine.

_________________
If it were not for laughter, there would be no Tao.
Sie können einen Beitrag nicht so schnell nach Ihrem letzten absenden, bitte warten Sie einen Augenblick.
nachtfeuer
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.04.2010
Beiträge: 1167
Beitrag nachtfeuer Mitglied 23:35:11 20.01.2012   Titel:              Zitieren

Ich meine, hier ist auch ein wenig geschichtliches Zusammenhangsverständis hilfreich.

Wikipedia bietet eine ganze Reihe Hinweise zum Thema
u.a.

http://de.wikipedia.org/wiki/Hilbertprogramm
http://de.wikipedia.org/wiki/Turingmaschine
http://de.wikipedia.org/wiki/Turing-Vollständigkeit
http://de.wikipedia.org/wiki/Entscheidbar
http://de.wikipedia.org/wiki/Gödelscher_Vollständigkeitssatz
usw.
Und vielleicht auch mal lesen, was Turing selber im Zusammenhang geschrieben hatte.

_________________
HhxV9rU5D8o236dZF7bMQ4Dys1_TuUmI4mZM.d2qD15ERi_0dgcHP0UViL3e-4WUi0nXXNwDYqA10sLEgjBVtdhE
tpehI7qHRZESiO_7LhPZFMQWNoiVrJDsEGD26n.H0lV8wOwYAe8UsbUJe5m65NyPaghnSoMzROo2gJ6nTeVSkxLk
a6hvNe11r9U7xddV9mq6NEi_V0C9k4augEKVSW3PV8LgCYum7KaXc9Ijq_ZT7zhspI.=-
klein-thüring
Unregistrierter




Beitrag klein-thüring Unregistrierter 00:48:13 21.01.2012   Titel:              Zitieren

knivil schrieb:
Zitat:
es gibt keine Kontrollstrukturen, dafür aber Rekursion
Dann ist sie wahrscheinlich nicht turingvollstaendig.
Sie hat auch sowas wie SFINAE in C++ oder Patterns in Haskell. Also quasi ein if. Und beliebig grosse Felder hat sie auch.

Zitat:
Implementiere eine allgemein Turingmaschine.
Wie ich nur übersehen konnte, dass eine allgemeine Turingmaschine ein Turingmaschineninterpreter ist ... danke, das hilft schon mal. Die paar, die ich mir schon angesehen habe, waren unglaublich kompliziert, jetzt habe ich aber eine einfachere in Haskell gefunden. Werde es damit mal versuchen.

Ich dachte halt, es wäre leichter zu zeigen, äquivalent zu irgendeiner anderen Sprache (oder einem Subset davon) zu sein anstatt sich direkt mit Turing herumzuschlagen. Zuerst wollte ich einen Brainfuck-Interpreter schreiben, das ist mir aber zu umständlich vorgekommen.

nachtfeuer schrieb:
Ich meine, hier ist auch ein wenig geschichtliches Zusammenhangsverständis hilfreich.
Geschichtlich ist das sehr interessant und da habe ich auch einen groben Überblick. Als Noch-nicht-Student fehlt es mir allerdings noch etwas an Mathematik um die grundlegenden Beweise zu verstehen.
µ
Mitglied

Benutzerprofil
Anmeldungsdatum: 14.06.2001
Beiträge: 1551
Beitrag µ Mitglied 13:09:23 21.01.2012   Titel:              Zitieren

klein-thüring schrieb:

Ich dachte halt, es wäre leichter zu zeigen, äquivalent zu irgendeiner anderen Sprache (oder einem Subset davon) zu sein anstatt sich direkt mit Turing herumzuschlagen.


Du musst dich nicht mit Turing-Maschinen rumschlagen. Du kannst auch zeigen, dass Du die Konstrukte von While- oder Goto-Programmen nachbilden kannst.

http://de.wikipedia.org/wiki/WHILE-Programm
http://de.wikipedia.org/wiki/GOTO-Programm

Labels, Variablen, Inkrementieren, Dekrementieren, bedingte Sprünge. Mehr braucht's nicht :eek:
GyroGearloose
Mitglied

Benutzerprofil
Anmeldungsdatum: 04.05.2001
Beiträge: 123
Beitrag GyroGearloose Mitglied 14:26:19 21.01.2012   Titel:              Zitieren

klein-thüring schrieb:
Zuerst wollte ich einen Brainfuck-Interpreter schreiben, das ist mir aber zu umständlich vorgekommen.


Das ist gar nicht so umständlich bzw. schwer, wie man vielleicht denkt. Siehe dazu hier: http://www.c-plusplus.de/forum/292057
klein-thüring
Unregistrierter




Beitrag klein-thüring Unregistrierter 14:45:12 21.01.2012   Titel:              Zitieren

µ schrieb:
http://de.wikipedia.org/wiki/WHILE-Programm
Super, so etwas hatte ich gesucht. Damit ist es ganz leicht.
Vielleicht sollte ich doch etwas häufiger die deutsche Wikipedia anschauen.

Jedenfalls: Problem gelöst.

@GyroGearloose: lol, vielleicht versuch ich es jetzt doch.
µ
Mitglied

Benutzerprofil
Anmeldungsdatum: 14.06.2001
Beiträge: 1551
Beitrag µ Mitglied 15:01:30 21.01.2012   Titel:              Zitieren

@klein-thüring
Prima :)


Möchtest Du Deine kleine Sprache hier vielleicht mal ein wenig näher Beschreiben und auch das eine oder andere Beispiel vorstellen? Vielleicht auch wie Du den Parser und Interpreter/Compiler umgesetzt hast.
Prof84
Mitglied

Benutzerprofil
Anmeldungsdatum: 13.12.2001
Beiträge: 2960
Beitrag Prof84 Mitglied 15:04:13 21.01.2012   Titel:              Zitieren

nachtfeuer schrieb:
Ich meine, hier ist auch ein wenig geschichtliches Zusammenhangsverständis hilfreich.

Wikipedia bietet eine ganze Reihe Hinweise zum Thema
u.a.

http://de.wikipedia.org/wiki/Hilbertprogramm
http://de.wikipedia.org/wiki/Turingmaschine
http://de.wikipedia.org/wiki/Turing-Vollständigkeit
http://de.wikipedia.org/wiki/Entscheidbar
http://de.wikipedia.org/wiki/Gödelscher_Vollständigkeitssatz
usw.
Und vielleicht auch mal lesen, was Turing selber im Zusammenhang geschrieben hatte.


+
http://de.wikipedia.org/wiki/Chomsky-Hierarchie
@OTE:
Eigentlich genügt es die Gültigkeit der Axiome des Typ-0 zu beweisen, was allerdings nicht trivial ist.

http://de.wikipedia.org/wiki/Gregory_Chaitin
http://de.wikipedia.org/wiki/Claude_Shannon
http://de.wikipedia.org/wiki/Kolmogorow-Komplexit%C3%A4t
http://de.wikipedia.org/wiki/Zellul%C3%A4re_Automaten
http://de.wikipedia.org/wiki/Boltzmann

_________________
"Primitive(n) Kulturen moderne Technologie näherzubringen stellt einen klaren Verstoß gegen die Hauptdirektive dar!"(Star Trek)


Zuletzt bearbeitet von Prof84 am 15:05:50 21.01.2012, insgesamt 1-mal bearbeitet
µ
Mitglied

Benutzerprofil
Anmeldungsdatum: 14.06.2001
Beiträge: 1551
Beitrag µ Mitglied 15:10:33 21.01.2012   Titel:              Zitieren

Prof84 schrieb:

Eigentlich genügt es die Gültigkeit der Axiome des Typ-0 zu beweisen, was allerdings nicht trivial ist.


Du schlägst jetzt aber nicht vor nachzuweisen, dass seine Sprache durch und nur durch eine Typ-0 Grammatik beschrieben werden kann, oder?
Bashar
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.05.2001
Beiträge: 16828
Beitrag Bashar Mitglied 15:14:15 21.01.2012   Titel:              Zitieren

µ schrieb:
Prof84 schrieb:

Eigentlich genügt es die Gültigkeit der Axiome des Typ-0 zu beweisen, was allerdings nicht trivial ist.


Du schlägst jetzt aber nicht vor nachzuweisen, dass seine Sprache durch und nur durch eine Typ-0 Grammatik beschrieben werden kann, oder?

Nein, dass man in seiner Sprache jede Typ-0-Sprache parsen (bzw. erzeugen) kann. Etwas weltfremder Vorschlag ;)

_________________
OSL♥
Prof84
Mitglied

Benutzerprofil
Anmeldungsdatum: 13.12.2001
Beiträge: 2960
Beitrag Prof84 Mitglied 15:15:23 21.01.2012   Titel:              Zitieren

µ schrieb:
Prof84 schrieb:

Eigentlich genügt es die Gültigkeit der Axiome des Typ-0 zu beweisen, was allerdings nicht trivial ist.


Du schlägst jetzt aber nicht vor nachzuweisen, dass seine Sprache durch und nur durch eine Typ-0 Grammatik beschrieben werden kann, oder?


Nö! - Dann hättest Du die Hierarchie nicht verstanden. ;)
http://de.wikipedia.org/w/index.php?title=Datei:Chomsky-Hierarchie.svg&filetimestamp=20110715183925

_________________
"Primitive(n) Kulturen moderne Technologie näherzubringen stellt einen klaren Verstoß gegen die Hauptdirektive dar!"(Star Trek)


Zuletzt bearbeitet von Prof84 am 15:16:58 21.01.2012, insgesamt 2-mal bearbeitet
µ
Mitglied

Benutzerprofil
Anmeldungsdatum: 14.06.2001
Beiträge: 1551
Beitrag µ Mitglied 15:18:37 21.01.2012   Titel:              Zitieren

Und du hast den Ausdruck "durch und nur durch" nicht verstanden.
Prof84
Mitglied

Benutzerprofil
Anmeldungsdatum: 13.12.2001
Beiträge: 2960
Beitrag Prof84 Mitglied 15:29:45 21.01.2012   Titel:              Zitieren

µ schrieb:
Und du hast den Ausdruck "durch und nur durch" nicht verstanden.

So? Dann erklär es mir. :)

_________________
"Primitive(n) Kulturen moderne Technologie näherzubringen stellt einen klaren Verstoß gegen die Hauptdirektive dar!"(Star Trek)
µ
Mitglied

Benutzerprofil
Anmeldungsdatum: 14.06.2001
Beiträge: 1551
Beitrag µ Mitglied 19:39:50 21.01.2012   Titel:              Zitieren

Prof, bitte. Stell' Dich nicht noch dümmer als Du eh schon bist.

"dann wenn", "wenn dann", "nur dann wenn", "dann und nur dann wenn" ... übertragen sie nun das Gelernte in den Kontext der aktuellen Problemstellung.


Das ist eigentlich auch alles vollkommen unerheblich, falls Du es wirklich so gemeint hast wie von Bashar erklärt. Aber bei der gewohnten Mischung aus Link-Shitstorm und Buzzword-Halbwissen musste ich nachfragen.


Zuletzt bearbeitet von µ am 19:41:12 21.01.2012, insgesamt 1-mal bearbeitet
Ben04
Autor

Benutzerprofil
Anmeldungsdatum: 10.10.2004
Beiträge: 1635
Beitrag Ben04 Autor 00:58:51 22.01.2012   Titel:              Zitieren

Wenn ich das richtig im Kopf habe, dann kannst du alternativ auch das Lambda-Kalül nachbauen um Turingmächtigkeit zu zeigen.
Tippgeber
Unregistrierter




Beitrag Tippgeber Unregistrierter 19:03:18 18.02.2012   Titel:              Zitieren

Prof84 schrieb:

@OTE:
Eigentlich genügt es die Gültigkeit der Axiome des Typ-0 zu beweisen, was allerdings nicht trivial ist.

Da passt doch was nicht zusammen? Du leitest den Satz ein, als ob du eine einfache Möglichkeit kennst, dann endest du ihn aber mit dem Hinweis, dass das nicht trivial, also schwer ist.
C/C++ Forum :: Mathematik und Physik ::  Turing-Vollständigkeit nachweisen   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.