Kommentare 1

Curry? Was ist Curry? Wer ist Curry?

Funktional programmieren lernen mit JavaScript: Das Curry-Buch nutzt die Analogien zwischen der Anwendung von Funktionen und dem Umgang mit Gewürzen und bringt den LeserInnen damit sowohl die Geheimnisse des Funktionalen Programmierens als auch eines guten Currys nahe. 

In einem Auszug aus dem Buch erinnern wir an den Logiker Haskell Curry.

Curry ist nicht nur ein leckeres Eintopfgericht mit unzähligen Variationen. Haskell Brooks Curry war ein Mathematiker, dessen Forschung im Bereich der Logik zu der Theorie der formalen Systeme und zum Logikkalkül führte. 

Geboren wurde Curry 1900 in Millis, Massachusettes. Seine Eltern waren Präsident und Dekanin einer Rhetorikschule, der School of Expression (deshalb gibt es auch das Buch “The Haskell School of Expression” ;-)) in Boston. Curry interessierte sich in der High School noch nicht für Mathematik. Mit 16 ging er nach Harvard, und schrieb sich dort für Medizin ein. Und im ersten Jahr hörte er im Rahmen dieses Studiums seine erste Mathematikvorlesung.

Das Buch bietet einen spannenden Einstieg in die funktionale Programmierung, deren Ansatz sich von den übrigen Arten der Programmierung unterscheidet und zu Unrecht als schwierig zu verstehen gilt.

Das Buch bietet einen spannenden Einstieg in die funktionale Programmierung, deren Ansatz sich von den übrigen Arten der Programmierung unterscheidet.

Als der 1. Weltkrieg ausbrach, war Curry der Meinung, Mathematik sei für die Kriegsführung seines Landes nützlicher als Medizin. Er wechselte in die Mathematik und absolvierte zudem eine Armeeausbildung für Studenten. Als der Krieg vorbei war, beendete Curry sein Studium im Alter von 20 Jahren vorerst mit einem Bachelor of Arts, und trat aus der Armee aus.

Er arbeitete im Folgenden bei General Electric, wobei er neben seiner Arbeit Elektrotechnik am MIT (Massachusetts Institute of Technology) studieren durfte. Jedoch stellte ihn die Vorgehensweise der Lehrenden in den Vorlesungen nicht zufrieden. Es wurde ihm nur beigebracht, wie man ein Ergebnis bekommt. Er aber wollte auch genau wissen, warum ein Ergebnis korrekt ist. Dazu ging er zurück nach Harvard, um dort Physik zu studieren. Seinen Master in Physik absolvierte er im Alter von 24 Jahren.

Während seiner Entdeckungsreise durch die Wissenschaften hatte Curry nicht nur mit der Themenfindung alle Hände voll zu tun. Nach dem Tod von Vater und Mutter übernahm er auch noch die Verwaltung der School of Expression bis zum Verkauf der Schule. Schließlich erkannte er, dass sein Thema eigentlich doch eher die Mathematik war, und begann seine Doktorarbeit in der Mathematik in Harvard.

Hatte Curry mit seiner Doktorarbeit in Mathematik endlich ein Thema gefunden? Nach der Meinung seines Betreuers sollte er sich mit der Theorie der Differentialgleichungen beschäftigen. Stattdessen las er aber lieber Bücher über Logik. Curry fragte diverse Professoren in Harvard und am MIT, ob er zu ihnen in das Themengebiet der Logik wechseln könne. Jedoch rieten ihm alle davon ab. Dann las er das Buch “Principia mathematica” von Alfred Whitehead und Bertrand Russell, und dies brachte ihn auf die Idee, spezielle Funktionen höherer Ordnung – Kombinatoren – zu benutzen. Er fragte erneut herum, bei wem er eine Doktorarbeit in der Logik schreiben könne, und schilderte dabei seine neue Idee. Diesmal bekam er eine erfreulichere Antwort: Norbert Wiener vom MIT sagte ihm “Vermeide Logik, bis du damit etwas zu sagen hast, aber jetzt hast du etwas zu sagen”.

Curry hängte die Differentialgleichungen an den Nagel, und wandte sich der Logik zu. Zuvor lehrte er aber erst einmal ein Jahr in Princeton, um seine Idee zu konkretisieren.

Dort entdeckte er Moses Schönfinkels Artikel “Über die Bausteine der mathematischen Logik”, welcher ähnlich seiner eigenen Idee Kombinatoren in der Logik benutzt. Der Artikel beschreibt im Grunde, was wir als Curryfizierung kennen.

Sein Professor Oswald Veblen, mit dem er seine Pläne diskutierte, bestärkte ihn in seiner Idee. Moses Schönfinkel war jedoch inzwischen in der Psychiatrie. Daher konnte er nicht weiter forschen, und auch nicht Currys Doktorvater werden. Auf Veblens Rat ging Curry schließlich zu den Professoren Bernays und Hilbert nach Göttingen. Vor seiner Reise heirateten Mary Virginia Wheatley und Haskell Brooks Curry. Sie hatten sich in der School of Expression kennengelernt, und gingen zusammen nach Deutschland.

Nach einem weiteren Jahr Forschung verteidigte Curry im Sommer 1929 seine Doktorarbeit “Grundlagen der kombinatorischen Logik” in Göttingen. Seine Dissertation wurde 1930 im American Journal of Mathematics veröffentlicht.

Die Currys gingen in die USA zurück und Haskell begann, an der Pennsylvania State University zu arbeiten. Sie gründeten eine Familie, und hatten Glück, dass Haskell eine Stelle an der Universität bekommen hatte. Seit 1929 hatte die “große Depression” in Amerika die Job-Aussichten für Logiker nicht gerade verbessert.

Curry baute in den folgenden Jahren die Theorie der Kombinatoren immer weiter aus und legte den Grundstein für das Feld der kombinatorischen Logik, einer Logik ohne Variablen, stattdessen basierend auf Kombinatoren.

Im 2. Weltkrieg arbeitete Curry an der Programmierung des ENIAC, des ersten elektronischen Universalrechners. Von 1942-44 war er in der angewandten Physik bei Frankford Arsenal beschäftigt, ab 1944 dann beim Ballistic Research Laboratory (Aberdeen Proving Ground), das den Bau des ENIAC in Auftrag gegeben hatte. Beim Ballistic Reseach Laboratory war er in dem Komittee, das für die Anwendung und das Testen der Maschine zuständig war. Die Mitglieder der Gruppe waren ein Astronom, ein Zahlentheoretiker und der Logiker Curry.

Zusammen mit Willa Wyatt, einer der Programmiererinnen des ENIAC, schrieb Curry den Artikel “A study of inverse interpolation of the ENIAC” über die Interpolation bei der Berechnung von ballistischen Tabellen mittels des ENIAC. Im Rahmen der Studie bemerkte er bereits, dass die Organisation der Programmierung eine wichtige Rolle bei der Problemlösung spielte. Er beschrieb, dass das Hauptprogramm eine Zusammensetzung von Unterprogrammen war, die je nach Problemvariation ausgetauscht werden konnten.

Die Thesen von John von Neumann und H.H. Goldstine, in Kombination mit seiner eigenen Vorarbeit münden in Currys späteren Artikel “On the composition of programs for automatic computing” und hatten noch einige weitere Artikel zur Folge.

Durch seine theoretische Erfahrung auf dem Gebiet der Logik und seine praktische Erfahrung bei der Programmierung des ENIAC, trug Curry zur Entwicklung einer abstrakten Schreibweise zur Programmierung von Rechenmaschinen bei. Diese ist die Grundlage der Programmiersprachen, wie wir sie heute kennen.

Im Jahr 1936 gründete Curry die “Association for symbolic logic“. Nachdem er nach einigen Jahren deren Präsidentschaft aufgab, konnte er sich dem Schreiben einer umfassenden Arbeit über kombinatorische Logik widmen, in der er Beziehungen zum Lambda-Kalkül Kapitel 7 seines Kollegen Church zog. Er lehrte und forschte dabei weiter an der Pennsylvania State University. Nachdem er in Rente ging, nahm er im Alter von 66 Jahren eine Professorenstelle in Amsterdam als Wissenschaftsphilosoph und -historiker für Logik an, ging aber nach vier Jahren nach Pennsylvania zurück.

Das Buch A short biography of Haskell B. Curry, in To H. B. Curry : essays on combinatory logic, lambda calculus and formalism (London-New York, 1980), vii-xi. beschreibt die Currys als freundliches Paar, das gerne kocht.

»Jeder, der die Currys kannte, weiß dass sie immer freundlich und hilfsbereit waren. Haskell war für seine Kollegen und Studenten immer mehr als nur eine Quelle wichtiger Ideen. Er war jederzeit bereit allen, die mit ihm reden wollten, zuzuhören, ihre Ideen zu diskutieren und hatte ein Talent Leute zu ermutigen neue Wege zu gehen und zu denken. Damit hat er mit Sicherheit einen wichtigen Beitrag zum anhaltenden Enthusiasmus geleistet. Insbesondere bei vielen, die heute in der kombinatorischen Logik arbeiten. Berühmt waren die Currys auch für ihre Gastfreundschaft, wo auch immer sie gerade gewohnt haben. Bei ihnen fanden immer viele Parties und andere lockere Zusammentreffen statt, und wir hegen die Vermutung, dass Virginias Kochkünste eine nicht zu unterschätzende Rolle beim Wachsen des Interesses an kombinatorischen Logik spielten.«

Die beiden funktionalen Sprachen Haskell und Curry und auch die Curryfizierung sind nach Haskell B. Curry benannt.

Zudem ist Curry der Schöpfer von Currys Paradox in der Logik, einem Paradox aus der Klasse der selbstbezüglichen Paradoxien. Das bekannteste selbstbezügliche Paradox ist vermutlich das Paradox des Epimenides, sinngemäß lautet dieses so: “Der Kreter Epimenides sagt, alle Kreter lügen”.

Currys Paradox ist sozusagen die Negation dieses Lügner-Paradoxes. Es gibt sowohl eine Formulierung in der Mengenlehre als auch in der Logik. Am einfachsten zu verstehen ist es allerdings in seiner Formulierung als Gottesbeweis: “Wenn dieser Satz wahr ist, dann existiert Gott.” Bertrand Russells Lösung der Russelschen Antinomie (“Menge aller Mengen, die sich nicht selbst als Element enthalten”) durch ein hierarchisches Typsystem (Typentheorie), um Selbstbezüge zu vermeiden, hilft uns auch bei Currys Paradoxon aus der Patsche, und Gottes Existenz ist doch nicht bewiesen. ;-)

Außerdem ist Curry zusammen mit William Alvin Howard auch der Namensgeber für die Curry-Howard-Korrespondenz. Diese beschreibt die direkte Verbindung zwischen Computerprogrammen und logischen Beweisen (“proofs as programs”). Der Zusammenhang zwischen beidem fiel bei der Untersuchung der Typen der Kombinatoren in der kombinatorischen Logik auf. Typen können als logische Axiome gesehen werden. Heutzutage gibt es sogar Programmiersprachen, in denen sich Beweise als Programme schreiben lassen, etwa die Programmiersprache Coq.

Quelle: http://www-history.mcs.st-andrews.ac.uk/Biographies/Curry.html
Quelle: Haskell before Haskell. Curry’s contribution to programming (1946–1950)

 

Sag's weiter:

1 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.