Zum Inhalt springen

Io (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 16. Oktober 2005 um 21:11 Uhr durch Stern (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Io ist eine kompakte Prototypen-basierte Programmiersprache. Sie wurde hauptsächlich von Smalltalk (alle Werte sind Objekte), Self, NewtonScript, Act1 (Prototypen-basierte Vererbung, Actors und Zugriff), LISP (Code zur Laufzeit betracht- und modifizierbar) und Lua (kompakt, einbettbar) inspiriert.

Io wird, wie andere Skriptsprachen auch, in einen AST übersetzt, der dann von einer VM interpretiert wird. Der Erfinder und Hauptentwickler, der Amerikaner Steve Dekorte, legt bei der Entwicklung großen Wert auf Minimalismus, was sich auch im Motto der Sprache io - less is more widerspiegelt. Unterstützte Plattformen sind zur Zeit Mac OS X, Linux, die BSD-Systeme, IRIX, Windows, Symbian OS und L4.

Interessant an Io ist vor allem der Prototyp-basierte Ansatz der OO, bei dem keine Klassen zum Einsatz kommen, sondern Eigenschaften eines Objekts von einem oder mehreren anderen Objekten, den Prototypen übernommen werden, solange der Programmierer sie nicht explizit überschreibt. Diese Art der OO wird sonst eher selten eingesetzt, die bekannteste Sprache die derartiges unterstützt ist wohl JavaScript.

Eine weitere interessante Eigenschaft von Io ist der Verwendung so genannter Actors um Nebenläufigkeit zu erreichen. Diese Technik wird bisher nur von wenigen Programmiersprachen benutzt, bietet aber gegenüber klassischen Threads einige Vorteile. Jedes Objekt stellt hierbei selbst einen leichtgewichtigen Thread dar, der asynchrone Methodenaufrufe in einer Queue speichert und einen nach dem Anderen ausführt. Dadurch können Synchronisationsprobleme elegant umgangen werden.

Neben der extrem kleinen Basissprache existieren AddOns für die wichtigsten Anwendungsgebiete. Vorhanden sind unter anderem Regular Expressions, ein XML-Parser, Blowfish-Verschlüsselung, ein OpenGL-, ein PortAudio- und Freetype-Binding.

Merkmale von Io: