Smalltalk (Programmiersprache)

objektorientierte Programmiersprache
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 26. Januar 2003 um 13:49 Uhr durch Jekub (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Smalltalk ist eine objektorientierte Programmiersprache, die in den 70er-Jahren am Xerox PARC Forschungszentrum durch Adele Goldberg, Dan Ingalls, Alan Kay und andere entwickelt wurde. Sie wurde allgemein unter dem Namen Smalltalk-80 freigegeben und hat die Entwicklung vieler späterer Programmiersprachen beeinflusst (z.B. Java).

Die Smalltalk-Entwicklungsumgebung enthielt viele Ideen, die später mit der Macintosh- und dann Windows-Benutzeroberfläche verbreitet wurden. Verwendet wurde ein Grafikbildschirm mit verschiebbaren Fenstern, Aufklappmenüs und Schriften von verschiedener Größe. Eine Maus mit drei Tasten - rot, blau und gelb - diente erstmals als zusätzliches Eingabegerät.

Wichtige Eigenschaften von Smalltalk

  • Alles ist ein Objekt, auch Zeichenketten, Integer, Boolsche Werte, Klassen(-definitionen), ausführbarer Code, Stack-frames, der Speicher, Codeblöcke etc.
  • Objekte werden dadurch aktiviert, daß man ihnen Nachrichten (Messages) schickt. Dies führt dazu, dazu die entsprechende Methode (Funktion) des Objekts ausgeführt wird.
  • Der ganze Quelltext ist i.d.R. offen und kann verändert werden. Nur sehr wenige Methoden greifen auf echte 'Primitives' der VM (vituellen Maschine) zurück.
  • Dynamische Typisierung - erst zur Laufzeit eines Programms wird ermittelt, welche Funktion - in Smalltalk Methode' genannt - tatsächlich aufgerufen wird. In anderen OO-Sprachen (Bsp. C++) muss man dieses Verhalten explizit vorher angeben.
  • Vererbung: jede Klasse ist von genau einer Oberklasse abgeleitet, deren Verhalten sie erbt und beliebig erweitern kann (keine Mehrfachvererbung).
  • Automatische Speicherbereinigung (engl. garbage collection = Mülleinsammeln), die nicht durch den Programmierer beeinflusst werden muss. Ein Objekt 'lebt' solange, wie es von anderen Objekten referenziert wird.
  • Smalltalkprogramme werden in Bytecode übersetzt, der durch eine virtuelle Maschine interpretiert wird.
  • Üblicherweise hat man eine Programmierumgebung (selbst in Smalltalk geschrieben), wo man Quelltext am "lebenden" Objekt ändern und dann auch direkt in der geänderten Form (weiter)ausführen kann.

Programmbeispiel (Bibliotheksabhängig)

'Hello World' do: [ :eachChar|
    eachChar out.
].

gibt den Text "Hello World" vertikal aus.