www.wikidata.de-de.nina.az
Io ist eine kompakte Prototypen basierte objektorientierte Programmiersprache Der Erfinder und Hauptentwickler der Amerikaner Steve Dekorte legt bei der Entwicklung grossen Wert auf Minimalismus sowohl was die Codegrosse als auch die Komplexitat der Syntax und den Speicherverbrauch angeht Das spiegelt sich auch im Motto der Sprache Io less is more wider In Io gilt starker als in anderen Programmiersprachen Alles ist ein Objekt Die Sprache wurde hauptsachlich 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 Charakteristische Eigenschaften BearbeitenInteressant an Io ist vor allem der prototypenbasierte Ansatz der objektorientierten Programmierung bei dem keine Klassen zum Einsatz kommen Stattdessen werden Objekten sogenannte Prototypen zugewiesen Nicht existente Methoden oder Felder werden dann automatisch im Prototyp gesucht Damit definiert sich ein Objekt durch die Eigenschaften seines Prototyps und seine spezifischen Unterschiede in Zustand und Verhalten dem Prototyp gegenuber Diese Art der objektorientierten Programmierung ahnelt der von JavaScript Eine weitere interessante Eigenschaft von Io ist die Verwendung so genannter Actors um Nebenlaufigkeit zu erreichen Ein Actor ist dabei gleichsam ein lebendes Objekt es stellt einen leichtgewichtigen Thread dar der asynchrone Methodenaufrufe in einer Queue speichert und dann einen nach dem anderen ausfuhrt Synchronisationsprobleme konnen damit elegant umgangen werden Ein solcher asynchroner Methodenaufruf liefert als Ergebnis eine transparente Future zuruck Diese Future blockiert Zugriffe bis tatsachlich ein Wert vorliegt und wird dann das Ergebnis Io wird wie andere Skriptsprachen auch in einen abstrakten Syntaxbaum AST ubersetzt Der Parser ist in C geschrieben eine Io Version ist in Entwicklung November 2005 Als Besonderheit besteht dieser AST ausschliesslich aus Message Objekten Jedes dieser Objekte reprasentiert einen der in OO Sprachen ublichen Vorgange des Sendens einer Nachricht an einen Empfanger Dieser Baum von Nachrichtensendungen kann zur Laufzeit inspiziert und gegebenenfalls auch manipuliert werden Das ermoglicht es Lisp artige Makros zu schreiben Der Nachrichtenbaum wird von einer einfachen virtuellen Maschine interpretiert die nur aus rund zehntausend Zeilen ISO C Code besteht Die virtuelle Maschine bietet inkrementelle automatische Speicherbereinigung englisch garbage collection mit Unterstutzung schwacher Referenzen weak references Neben dieser Minimal VM stehen mit Add ons fur die wichtigsten Anwendungsgebiete erweiterte VMs bereit darunter regulare Ausdrucke ein XML Parser Blowfish Verschlusselung sowie ein OpenGL ein PortAudio und ein FreeType Binding Unterstutzte Plattformen sind zurzeit macOS Linux die BSD Systeme IRIX Windows Symbian OS und L4 Io steht unter der BSD Lizenz Beispielcode Bearbeiten Kommentare im C Stil konnen benutzt werden sowie Shell Kommentare und Kommentare im Stil von C Hello world print Hello World for i 1 10 i print Gibt die Zahlen von 1 bis 10 aus x Object clone Syntax wie in Smalltalk erzeugt neue Slots x Map clone wird zum uberschreiben benutzt x prettyprint method Erstellt eine Methode ohne Argumente foreach key value write key value n Schleife uber map x atPut hi 1 Schlussel Wert Paar in map schreiben x atPut hello 2 x prettyprint Ausgabe hi 1 hello 2 Weblinks BearbeitenOffizielle Website Abgerufen von https de wikipedia org w index php title Io Programmiersprache amp oldid 223973329