Gibt es eine Beziehung zwischen der Turing-Maschine und dem Lambda-Kalkül - oder sind sie zufällig etwa zur selben Zeit entstanden?
Gibt es eine Beziehung zwischen der Turing-Maschine und dem Lambda-Kalkül - oder sind sie zufällig etwa zur selben Zeit entstanden?
Antworten:
Die Lambda-Rechnung ist älter als Turings Maschinenmodell und stammt offenbar aus der Zeit von 1928 bis 1929 (Seldin 2006). Sie wurde erfunden, um den Begriff einer schematischen Funktion zusammenzufassen, die Church für eine von ihm entwickelte Grundlogik benötigte. Es wurde nicht erfunden, um den allgemeinen Begriff der berechenbaren Funktion zu erfassen, und tatsächlich hätte eine schwächere typisierte Version seinen Zwecken besser gedient.
Es scheint nur zufällig zu sein, dass der Zweck des Kalküls, den Church erfand, sich als vollständig herausstellte, obwohl Church später den Lambda-Kalkül als Grundlage für das verwendete, was er als effektiv berechenbare Funktionen bezeichnete (1936), worauf Turing in seinem Aufsatz abzielte .
Die einfache Typentheorie von Church (1940) bietet eine moderatere, typisierte Funktionstheorie, die ausreicht, um die Syntax der Logik höherer Ordnung auszudrücken, aber nicht alle rekursiven Funktionen ausdrückt. Diese Theorie kann als mehr im Einklang mit der ursprünglichen Motivation der Kirche gesehen werden.
Hinweis Diese Antwort wurde aufgrund von Einwänden von Kaveh und Sasho grundlegend überarbeitet. Ich empfehle die Wikipedia-Zeitleiste, die Kaveh vorschlug, " History of the Church-Turing Thesis" , die einige ausgewählte Zitate aus wegweisenden Artikeln enthält.
Ich möchte nur darauf hinweisen, dass der Lambda-Kalkül und die Turing-Maschine zwar beide dieselbe Klasse von zahlentheoretischen Funktionen berechnen, aber nicht in jeder erdenklichen Weise genau gleichwertig sind. In der Realisierbarkeitstheorie gibt es zum Beispiel Aussagen, die von einer Turing-Maschine aber nicht von einer Lambda-Rechnung realisiert werden können. Eine solche Aussage ist die formale These der Kirche, die besagt:
. Dies ist nicht möglich (ich kann erklären, warum, wenn Sie es als separate Frage stellen).
Sie sind sowohl mathematisch als auch historisch verwandt.
Der Lambda-Kalkül wurde 1928 - 1929 von Alonzo Church (veröffentlicht 1932) entwickelt.
Die Turing-Maschine wurde 1935 - 1937 von Alan Turing (veröffentlicht 1937) entwickelt.
Alan Turing war Ph.D. der Alonzo Church. Student in Princeton von 1936 - 1938.
Turingmaschinen und die Lambda-Rechnung sind in ihrer Rechenleistung gleichwertig: Sie können sich effizient gegenseitig simulieren.
Entscheidungsproblem ist eines der 23 bekannten Probleme, die der Mathematiker David Hilbert vorgeschlagen hat.
In den Jahren 1936 und 1937 veröffentlichten Alonzo Church und Alan Turing unabhängige Veröffentlichungen, die zeigten, dass es unmöglich ist, algorithmisch zu entscheiden, ob Aussagen in der Arithmetik wahr oder falsch sind, und daher eine allgemeine Lösung des Entscheidungsproblems unmöglich ist.
Dies wurde von Alonzo Church im Jahr 1936 mit dem Konzept der "effektiven Berechenbarkeit" auf der Grundlage seines λ-Kalküls und von Alan Turing im selben Jahr mit seinem Konzept der Turing-Maschinen durchgeführt. Es wurde später erkannt, dass dies äquivalente Berechnungsmodelle sind. - Wikipedia
So Lambda - Kalkül und Turing - Maschinen nicht nur eng miteinander verwandt , aber sie sind gleichwertige Berechnungsmodelle .
Vielleicht möchten Sie auch The Annotated Turing lesen : Eine Führung durch Alan Turings historisches Papier über Berechenbarkeit und die Turing-Maschine von Charles Petzold . Dieses Buch enthält einige interessante Informationen zum Thema.
Turingmaschinen und Lambda-Kalkül sind zwei Modelle, die den Begriff des Algorithmus (mechanische Berechnung) erfassen. Die Lambda-Rechnung wurde von Church erfunden, um Berechnungen mit Funktionen durchzuführen. Es ist die Basis für funktionale Programmiersprachen. Grundsätzlich ist jedes von Turing-Maschinen berechenbare (entscheidbare) Problem auch mit der Lambda-Rechnung berechenbar. Sie sind also zwei äquivalente Berechnungsmodelle (bis auf Polynomfaktoren) und beide versuchen, die Leistung jeder mechanischen Berechnung zu erfassen.