Zusammenfassung
- Das Buch von Adele Goldberg und David Robson aus dem Jahr 1983 definierte die Schnittstelle zwischen dem Smalltalk-80 Virtual Image und der hardwarespezifischen Virtual Machine: Objektspeicher, Bytecodes, Ausführungskontexte, Nachrichtenversand und Primitive.
- Goldberg ließ diese Schnittstelle an realen Implementierungen prüfen. Apple, DEC, Hewlett-Packard und Tektronix bauten Portierungen, meldeten Abweichungen an Xerox PARC und verglichen Abläufe mit Referenz-Traces.
- Damit war Portabilität innerhalb einer bestimmten Grenze belegt. Gleicher Durchsatz, gleiche Pausen, Schriftmetriken, Fenster, Eingabegeräte, Dateien oder Interaktionsqualität waren damit nicht bewiesen.
Eine Spezifikation, die tatsächlich booten musste
Smalltalk-80 war nicht bloß eine Sprache, deren Syntax man übertragen konnte. Es war eine persistente Arbeitsumgebung: Klassen, Compiler, Browser, Debugger, Grafik und Oberfläche lebten gemeinsam als Objekte in einem Image. Eine Portierung musste diese Welt am Laufen halten.
In Smalltalk-80: The Language and Its Implementation formulierten Adele Goldberg und David Robson eine Trennung. Das Virtual Image enthielt Systemobjekte und Werkzeuge. Darunter lieferte eine hostabhängige Virtual Machine Interpreter, Objektspeicher und Primitive für Rechnen, Speicher, Bildschirm, Zeigegerät und Dateien. Quellmethoden wurden in acht Bit breite Bytecodes übersetzt, von einem Stack-Interpreter ausgeführt und durch Kontexte als laufende Berechnungen repräsentiert.
Der Portabilitätspakt war schmal und wirksam: Für jede Hardware einen kleineren Kernel korrekt bauen, dann das gemeinsame Image laden. Das Blue Book ersetzte Software nicht durch Prosa. Es beschrieb genug beobachtbares Verhalten, damit ein fremdes Team die untere Schicht ohne das implizite Wissen von PARC rekonstruieren konnte.
Goldbergs organisatorische Leistung bestand darin, die Frage nach der Vollständigkeit nicht den Autoren allein zu überlassen.
Externe Teams waren Teil des Messgeräts
In ihrem Oral-History-Interview von 2010 beim Computer History Museum schilderte Goldberg, wie sie zunächst die Erlaubnis von Xerox zur Veröffentlichung erhielt. Unterstützt von Bert Sutherland gewann sie Tektronix, Hewlett-Packard, DEC und Apple. Voraussetzung war ein internes Softwareteam, das mit dem Hardwareteam arbeitete. Gefragt wurde nicht nach Gefallen an der Sprache, sondern nach Hardwareeigenschaften, die Smalltalks Leistung beeinflussten.
Der Bericht in Smalltalk-80: Bits of History, Words of Advice nennt sechs eingeladene Firmen; vier gingen in die Implementierungsphase. Sie verpflichteten sich, Fehler und Gestaltungshinweise auszutauschen. Xerox lieferte fortlaufende Images, Erläuterungen zu Objektzeigern, Objektraum, Kontexten, kompilierten Methoden und Klassen sowie direkte Beratung bei Widersprüchen zwischen Text und laufendem System.
Jede Portierung prüfte damit das Dokument. Eine auf Alto oder Dorado unsichtbare Annahme wurde sichtbar, sobald Entwickler bei DEC, HP, Tektronix oder Apple sie nicht reproduzieren konnten. Hardwarevielfalt war kein Störsignal, sondern trennte portable Anforderung von lokaler Zufälligkeit.
Die Firmen bestätigten kein fertiges Werk. Primitive und Zuordnungen änderten sich, das Image wuchs, und die erste Implementiererkonferenz diskutierte Referenzzählung, Garbage Collection und Methoden-Caches. Goldberg berichtet, dass der größte Teil eines älteren Manuskripts verworfen und neu geschrieben wurde. Erhalten blieb die formale VM-Spezifikation, nachdem sie durch mehrere Implementierungen debuggt worden war.
Traces bestimmten die Reichweite der Übereinstimmung
Ein vertraut wirkender Bildschirm genügte nicht. Xerox verteilte Ablaufspuren verschiedener Granularität. Die feinste zeigte Speicherzugriffe, Allokationen, Bytecodes, Nachrichten, Rücksprünge und Primitive. Längere Traces ließen Details weg. Eine neue VM konnte ihren tatsächlichen Ablauf mit dem erwarteten vergleichen.
Das Blue Book unterschied beim Objektspeicher Zugriffe auf Zeiger, Wörter und Bytes. Es legte fest, wie der Interpreter Klasse und Methode findet, einen Kontext erzeugt, den Stack führt, eine erfolglose Suche behandelt und doesNotUnderstand: sendet. Bytecodes umfassten Push, Store, Send, Return und Jump. Primitive deckten Arithmetik, Kollektionen, Speicherverwaltung, Steuerung, Ein-/Ausgabe und Systemdienste ab.
Grafik machte die Naht besonders sichtbar. Viel von BitBlt, Text und Bildaufbau lag in den Objekten des Images. Cursor, Tastatur, Bitmap-Anzeige und Datei trafen jedoch auf reale Geräte. Primitive überbrückten diese Grenze. Verschiedene Hosts konnten dieselbe Anfrage mit anderer Anzeigeelektronik, Speicherstruktur oder Maschinenfolge erfüllen.
Erfolg hieß, das Virtual Image „lesen und übernehmen“ und erwartetes Verhalten reproduzieren zu können. Als erfolgreiche Implementierer das vierte Image ohne VM-Änderung luden, zeigte das eine stabile Schnittstelle. Es zeigte nicht, dass die Rechner insgesamt gleich waren.
Kompatibilität endete vor identischem Erleben
Goldberg trennt Image-Übernahme von einem ausdrücklich subjektiveren Maß: der realen Leistung auf der Hardware des Herstellers. Ein gemeinsames Image erzeugt Kontinuität. Die gleichen Klassen existieren, Methoden kompilieren, ähnliche Browser öffnen sich. Trotzdem entscheidet die Umgebung unterhalb und neben der Grenze über das Gefühl.
Methodensuche kann anders gecacht werden. Speicherbereinigung kann Referenzzählung, Markierung oder eine Mischform nutzen. Ein Primitiv kann in Mikrocode, Assembler oder als langsamere Hostfunktion vorliegen. Scheduling und Eingabeabfrage verändern Latenz. Bildschirmgeometrie, Bitmap-Layout, Schrift, Cursor und Dateisystem verändern Darstellung und Verhalten. Zwei korrekte VMs können Objektbedeutung bewahren und doch sehr unterschiedliche Pausen haben.
Selbst der Zeichensatz zeigte einen Preis. Goldberg erinnerte daran, dass Standard-ASCII gewählt werden musste, weil nicht alle Teilnehmer ihre Schriften kontrollierten. Portabilität öffnete Smalltalk für mehr Rechner und verengte zugleich diese Ausdrucksfläche auf den gemeinsamen Nenner.
Das Blue Book räumte ein, dass damalige Hardware nicht die gesamte interaktive Ambition trug. Ein Vertrag kann Bedeutung von Send, Return oder Objektzugriff bestimmen. Er kann einen schwachen Prozessor nicht wie einen Dorado wirken lassen, einen Bildschirm nicht vergrößern und nicht jede GC-Pause beseitigen.
Kompatibilitätsnachweise gelten deshalb in der beobachteten Schicht. Image- und Bytecode-Tests belegen den Image/VM-Vertrag. Sie belegen nicht identisches Timing, Schriften, Fenster, Peripherie oder Gesamterleben.
Die Veröffentlichung bestand aus mehreren Teilen
Die Smalltalk-Ausgabe von BYTE im August 1981 gab die öffentliche Einführung. Goldbergs und Robsons Buch von 1983 verband Sprache und VM. Smalltalk-80: The Interactive Programming Environment von 1984 beschrieb die Arbeit im System. Glenn Krasner editierte den Band mit Umsetzungserfahrungen.
Goldberg und Robson organisierten das Sprachbuch gemeinsam. Goldberg schilderte einen Prozess, in dem sie und Dan Ingalls Streitfragen in die Gruppe brachten und entschieden, während Robson Einwände als Ombudsmann hörte. Ingalls schrieb später, Robson habe den größten Teil des Referenzinterpreters erstellt. Text, ausführbares Modell und Gruppenentscheidung mussten zusammenpassen.
Auch die Herkunft ist gemeinsam. Simula und Sketchpad prägten Alan Kays Denken; Kay formulierte die nachrichtenorientierte Vision. Dan Ingalls baute und entwickelte Interpreter und VM. Diana Merry arbeitete an Textdarstellung und gemischter Seitenbearbeitung. Ted Kaehler trug Grafik und später Speichertechnik bei. Larry Tesler arbeitete an Notetaker und Umgebung. David Robson gab Buch und Referenzinterpreter Genauigkeit. Das weitere PARC-Team und externe Portierer machten den Vertrag ausführbar.
Goldbergs Leistung wird dadurch genauer, nicht kleiner: Sie erwirkte die Veröffentlichung, verband Labor und Implementierungsgemeinschaft, führte Hardwarebeobachtungen in den Text zurück, entschied und schrieb mit und brachte das Material in eine öffentlich prüfbare Form.
Der Vertrag blieb, weil die Mechanik sich ändern durfte
Spätere Systeme stammten teils von lizenzierten Images ab, teils wurden sie nach der Dokumentation neu geschrieben. Bei Apple passte Ingalls die Oberfläche an andere Maus- und Bildschirmbedingungen an; schnellere CPU und größere Anzeige veränderten das Erleben drastisch, ohne die konzeptionelle Linie zu brechen.
Squeak begann mit dem veröffentlichten Referenzinterpreter und einem APDA-Image. Das Team ersetzte die Objekttabelle durch direkte Zeiger, führte generationelle Garbage Collection ein und erzeugte C aus einer eingeschränkten Smalltalk-Teilmenge. Ted Kaehler und Ingalls bauten den Speicher um, John Maloney den Übersetzer, Scott Wallace den Dateizugriff. Die Mechanik änderte sich, die nützliche Kontinuität blieb.
Ein guter portabler Vertrag schützt eine Naht, nicht jedes historische Verfahren. Er erlaubt Änderungen darunter und liefert Belege, wenn sie das Verhalten darüber brechen. Das Smalltalk Zoo des Computer History Museum zeigt heute diese Vielfalt. Das Blue Book ließ Smalltalk reisen, weil es festhielt, was die Grenze überschreiten musste und was lokal bleiben durfte.
Quellen
- Adele Goldberg, Oral History, Computer History Museum, 2010.
- Adele Goldberg und David Robson, Smalltalk-80: The Language and Its Implementation, 1983.
- Adele Goldberg und David Robson (Hg.), Smalltalk-80: Bits of History, Words of Advice, 1983.
- Adele Goldberg, Smalltalk-80: The Interactive Programming Environment, 1984.
- Daniel H. H. Ingalls, „The Evolution of Smalltalk: From Smalltalk-72 through Squeak“, 2020.
- Alan C. Kay, „The Early History of Smalltalk“, 1993.
- BYTE, Smalltalk-Ausgabe vom August 1981.
- Smalltalk Zoo des Computer History Museum.
Mitgliederbriefing
Detaillierter Profilkontext
Melden Sie sich mit der richtigen Mitgliedschaftsstufe an, um das vollständige Briefing und die Quellennotizen freizuschalten.
Nur für Strategic Circle
Strategic Circle
Offen für alle Leser. Schalten Sie Profil-Briefings nach Beitritt und Anmeldung frei.
Strategic Circle beitretenNur für Leadership Alliance
Leadership Alliance
Für qualifizierte Inhaber von IP-Assets und Management; melden Sie sich an, um Leadership-Alliance-Briefings freizuschalten.
Leadership Alliance beitreten
