T's Story (2001)

Olin Shivers: History of T

(T war eine der besten Implementierungen von Lisp und setzte einen klaren Designstandard, mit dem nur wenige neuere Dialekte mithalten konnten. Hier erzählt Olin Shivers die Geschichte von T.)

Um 1981–1982 beauftragte die CS-Abteilung von Yale, die über eine starke KI-Gruppe unter der Leitung von Roger Schank verfügte, den Studenten Jonathan Rees mit der Implementierung eines neuen Lisp für ihre Forschungsprogrammierung. Jonathan, ich und Dan Weld (heute Professor an der University of Washington) waren die drei Leute in Yale, die Sussman/Steeles erste „Lambda“-Aufsätze entdeckten, darunter Guys Masterarbeit über Rabbit, den ersten Compiler von Scheme. Dan war ein Gymnasiast; Jonathan und ich waren Junioren. Alan Perlis, die Seele der Abteilung, hatte gerade die funktionale Programmierung entdeckt und leitete ein Graduiertenseminar über frühe FP-Sprachen wie Hope & Miranda & Scheme. Wir drei haben es geschafft, uns in die Abschlussklasse zu schleichen, in der wir uns kennengelernt haben.

Ein bisschen Hintergrund: Common Lisp existierte nicht (die Bemühungen begannen gerade erst). Das MIT-Programm existierte nicht. Das Programm bestand aus einigen technischen Berichten des AI Lab und einer Masterarbeit. Wir sprechen hier vom kleinsten Impfkristall, den man sich vorstellen kann. In der Lisp-Community gab es immense Erfahrung mit der Optimierung kompilierter Implementierungen von Sprachen mit dynamischem Scoping – und zwar in einem solchen Ausmaß, dass es damals eine weit verbreitete Meinung war, dass „lexikalisches Scoping *theoretisch* interessant, aber ineffizient“ sei zu implementieren; dynamischer Umfang ist die schnellste Wahl.“ Ich mache keine Witze. Um zwei Beispiele zu nennen: Ich habe dies bei verschiedenen Gelegenheiten von Richard Stallman (Designer und Implementierer von Emacs Lisp) und Richard Fateman (Professor in Berkeley und der Hauptkraft hinter Franz Lisp, zweifellos der wichtigsten Lisp-Implementierung), gehört gebaut in der frühen Vax-Ära – wichtig, weil es versendet wurde und funktionierte). Ich fragte RMS, als er Emacs Lisp implementierte, warum er dynamisches Scoping hatte, und seine genaue Antwort war, dass das lexikalische Scoping zu ineffizient sei. Mein Punkt hier ist also, dass selbst für Experten auf dem Gebiet der Lisp-Implementierung im Jahr 1982 (und in den Jahren danach) Scheme eine radikale Vorstellung war, die überhaupt nicht akzeptiert wurde. Und *außerhalb* der Lisp/AI-Community ... nun, Sprachen mit GC waren definitiv nicht akzeptabel. (Im Gegensatz zu der Perl- und Java-Ära, in der wir leben. Es ist keine Übertreibung, dank Perl zu sagen, dass im Jahr 2001 zusätzlich zu den GC-Sprachen Dienste im Wert von *Milliarden* Dollar auf der ganzen Welt bereitgestellt wurden.)

Jonathan hatte das Jahr zuvor im Urlaub von Yale verbracht und am MIT gearbeitet. Das Wichtigste, was geschah, war, dass 32-Bit-Maschinen herauskamen, mit 32-Bit-Adressräumen – *großen* Adressräumen. Ein Großteil der vorhandenen Sprachtechnologie in der KI-Community wurde für die PDP-11 (16-Bit-Maschine) und, was noch wichtiger ist, die Arbeitspferde PDP-10 und -20 entwickelt. Ich habe die „Zehn“ geliebt, darf ich hinzufügen. Es hatte einen Befehlssatz, der auf eine einzelne Seite im Großdruck passte, und das war einfach cool. Diese ISA war der Traum eines jeden Hackers; Sie können damit alle möglichen lustigen Spiele spielen. Es gab zum Beispiel einen berühmten Hack, der eine Möglichkeit bot, (1) eine Zählerzelle aus einer freien Liste zu entfernen, (2) die freie Liste zu aktualisieren und (3) zu verzweigen, wenn die freie Liste zum GC ausging ... in *einer Anweisung*. Der PDP-10 war eine 36-Bit-Maschine mit einem wortadressierten 18-Bit-Adressraum. Beachten Sie, was das bedeutet: Eine Zelle gegen passt in ein einzelnes Wort. Viele behaupten, dass die -10 die erste Lisp-Maschine der Welt war. Ich stimme ihnen zu.

Es gab zwei äußerst gute, ausgereifte und hochoptimierte Lisp-Implementierungen für -10, eine „East Coast“ (Maclisp, vom MIT) und eine „West Coast“ (Interlisp, von Stanford & Xerox PARC). Sie können den -10 auch in einer schönen CMU-Level-Sprache namens Bliss programmieren. Ich sehe C und erinnere mich an Bliss, und ich könnte weinen.

Das Problem waren die begrenzten 18-Bit-Adressräume der -10er. Programmierer haben sie vermasselt. Als DEC das Vax auslieferte und Motorola 68000 auf Sun- und Apollo-Workstations auftauchte, erkannten die Leute, dass der 32-Bit-Adressraum dieser Architekturen eine diskontinuierliche Technologieänderung darstellte und die Sprachimplementierung auf diesen Maschinen ebenso diskontinuierlich sein würde. . Bei einem sehr großen Adressraum wollten Sie beispielsweise Ihre GC-Technologie und Datendarstellungen grundlegend ändern.

Berkeley war ein wichtiger Akteur bei der Einführung des Vax an Universitäten und gewann den ARPA-Auftrag zur Entwicklung von Berkeley Unix für den Vax (aus dessen Projekt später mit freundlicher Genehmigung von Bill Joy Sun hervorging). Ein Teil dieser Bemühungen war ein Lisp für den Vax, Franz Lisp, der unter der Leitung von Fateman gebaut wurde. Franz war Zeichner...

Olin Shivers: History of T

(T war eine der besten Implementierungen von Lisp und setzte einen klaren Designstandard, mit dem nur wenige neuere Dialekte mithalten konnten. Hier erzählt Olin Shivers die Geschichte von T.)

Um 1981–1982 beauftragte die CS-Abteilung von Yale, die über eine starke KI-Gruppe unter der Leitung von Roger Schank verfügte, den Studenten Jonathan Rees mit der Implementierung eines neuen Lisp für ihre Forschungsprogrammierung. Jonathan, ich und Dan Weld (heute Professor an der University of Washington) waren die drei Leute in Yale, die Sussman/Steeles erste „Lambda“-Aufsätze entdeckten, darunter Guys Masterarbeit über Rabbit, den ersten Compiler von Scheme. Dan war ein Gymnasiast; Jonathan und ich waren Junioren. Alan Perlis, die Seele der Abteilung, hatte gerade die funktionale Programmierung entdeckt und leitete ein Graduiertenseminar über frühe FP-Sprachen wie Hope & Miranda & Scheme. Wir drei haben es geschafft, uns in die Abschlussklasse zu schleichen, in der wir uns kennengelernt haben.

Ein bisschen Hintergrund: Common Lisp existierte nicht (die Bemühungen begannen gerade erst). Das MIT-Programm existierte nicht. Das Programm bestand aus einigen technischen Berichten des AI Lab und einer Masterarbeit. Wir sprechen hier vom kleinsten Impfkristall, den man sich vorstellen kann. In der Lisp-Community gab es immense Erfahrung mit der Optimierung kompilierter Implementierungen von Sprachen mit dynamischem Scoping – und zwar in einem solchen Ausmaß, dass es damals eine weit verbreitete Meinung war, dass „lexikalisches Scoping *theoretisch* interessant, aber ineffizient“ sei zu implementieren; dynamischer Umfang ist die schnellste Wahl.“ Ich mache keine Witze. Um zwei Beispiele zu nennen: Ich habe dies bei verschiedenen Gelegenheiten von Richard Stallman (Designer und Implementierer von Emacs Lisp) und Richard Fateman (Professor in Berkeley und der Hauptkraft hinter Franz Lisp, zweifellos der wichtigsten Lisp-Implementierung), gehört gebaut in der frühen Vax-Ära – wichtig, weil es versendet wurde und funktionierte). Ich fragte RMS, als er Emacs Lisp implementierte, warum er dynamisches Scoping hatte, und seine genaue Antwort war, dass das lexikalische Scoping zu ineffizient sei. Mein Punkt hier ist also, dass selbst für Experten auf dem Gebiet der Lisp-Implementierung im Jahr 1982 (und in den Jahren danach) Scheme eine radikale Vorstellung war, die überhaupt nicht akzeptiert wurde. Und *außerhalb* der Lisp/AI-Community ... nun, Sprachen mit GC waren definitiv nicht akzeptabel. (Im Gegensatz zu der Perl- und Java-Ära, in der wir leben. Es ist keine Übertreibung, dank Perl zu sagen, dass im Jahr 2001 zusätzlich zu den GC-Sprachen Dienste im Wert von *Milliarden* Dollar auf der ganzen Welt bereitgestellt wurden.)

Jonathan hatte das Jahr zuvor im Urlaub von Yale verbracht und am MIT gearbeitet. Das Wichtigste, was geschah, war, dass 32-Bit-Maschinen herauskamen, mit 32-Bit-Adressräumen – *großen* Adressräumen. Ein Großteil der vorhandenen Sprachtechnologie in der KI-Community wurde für die PDP-11 (16-Bit-Maschine) und, was noch wichtiger ist, die Arbeitspferde PDP-10 und -20 entwickelt. Ich habe die „Zehn“ geliebt, darf ich hinzufügen. Es hatte einen Befehlssatz, der auf eine einzelne Seite im Großdruck passte, und das war einfach cool. Diese ISA war der Traum eines jeden Hackers; Sie können damit alle möglichen lustigen Spiele spielen. Es gab zum Beispiel einen berühmten Hack, der eine Möglichkeit bot, (1) eine Zählerzelle aus einer freien Liste zu entfernen, (2) die freie Liste zu aktualisieren und (3) zu verzweigen, wenn die freie Liste zum GC ausging ... in *einer Anweisung*. Der PDP-10 war eine 36-Bit-Maschine mit einem wortadressierten 18-Bit-Adressraum. Beachten Sie, was das bedeutet: Eine Zelle gegen passt in ein einzelnes Wort. Viele behaupten, dass die -10 die erste Lisp-Maschine der Welt war. Ich stimme ihnen zu.

Es gab zwei äußerst gute, ausgereifte und hochoptimierte Lisp-Implementierungen für -10, eine „East Coast“ (Maclisp, vom MIT) und eine „West Coast“ (Interlisp, von Stanford & Xerox PARC). Sie können den -10 auch in einer schönen CMU-Level-Sprache namens Bliss programmieren. Ich sehe C und erinnere mich an Bliss, und ich könnte weinen.

Das Problem waren die begrenzten 18-Bit-Adressräume der -10er. Programmierer haben sie vermasselt. Als DEC das Vax auslieferte und Motorola 68000 auf Sun- und Apollo-Workstations auftauchte, erkannten die Leute, dass der 32-Bit-Adressraum dieser Architekturen eine diskontinuierliche Technologieänderung darstellte und die Sprachimplementierung auf diesen Maschinen ebenso diskontinuierlich sein würde. . Bei einem sehr großen Adressraum wollten Sie beispielsweise Ihre GC-Technologie und Datendarstellungen grundlegend ändern.

Berkeley war ein wichtiger Akteur bei der Einführung des Vax an Universitäten und gewann den ARPA-Auftrag zur Entwicklung von Berkeley Unix für den Vax (aus dessen Projekt später mit freundlicher Genehmigung von Bill Joy Sun hervorging). Ein Teil dieser Bemühungen war ein Lisp für den Vax, Franz Lisp, der unter der Leitung von Fateman gebaut wurde. Franz war Zeichner...

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow