Dylan (Programmiersprache)
Dylan (Dynamic Language) ist eine Programmiersprache, die Anfang der 1990er Jahre von einer Gruppe unter der Führung von Apple initiiert und spezifiziert wurde. Ziel war es,
Dylan war ursprünglich zum Einsatz auf Apples Newton PDAs vorgesehen, wurde dort aber aus Termin- und vermutlich auch Prestigegründen durch NewtonScript ersetzt, eine auf der Programmiersprache Self basierende Eigenentwicklung Apples. Abgrenzung von anderen ProgrammiersprachenDylans objektorientiertes Paradigma steht in der Tradition von Common Lisp und unterscheidet sich von den meisten objektorientierten Programmiersprachen (wie C++, Java, Python, Ruby) im Abstraktionsprinzip des Polymorphismus, das in beiden Fällen unterschiedlich umgesetzt wird. Programmiersprachen wie Java kapseln Daten in Objekte, etwa eine Klasse Bruch, die Zähler und Nenner enthält. Operationen die mit diesen Objekten arbeiten, etwa die Addition, werden ebenfalls als Eigenschaft des Objekts/der Klasse gesehen und in der Klasse selbst verwaltet. Wie der Folgende Pseudocode-Abschnitt zeigt, sind sowohl Daten als auch Methoden (Operationen) Teil des Objekts. Bruch a;
a.nenner = 10;
a.zaehler = 1;
Bruch b;
b.nenner = 1;
b.zaehler = 5;
a.addiere(b);
Mit virtuellen Methoden ermöglicht dieser Ansatz Polymorphismus. Das bedeutet, dass ein Objekt seine Operationen "selbst mitbringt" und der Programmierer zur Laufzeit nicht festlegen muss, wie z. B. eine Addition für verschiedene Objekte ausgeführt werden soll. Hat man zum Beispiel zwei Klassen Dieser Ansatz verspricht einen Abstraktionsgrad, weil eine gut implementierte Klasse dem Programmierer wesentlich Arbeit abnimmt. Ein Objekt "weiß" selbst am besten wie man seinen Betrag berechnet. Der Nachteil dieses Ansatzes ist, dass man Operationen, welche man nicht genau einem Objekt zuordnen kann, nun in eine Klasse stecken muss. Die Addition zweier Zahlen Multiple DispatchDylan setzt den Polymorphismus auf eine andere Weise um. Operationen und Methoden werden außerhalb der Klasse definiert, an die Stelle von Mit geringen Abweichungen in der Berechnung der Class Precedence List ist Dylans Multiple Dispatch eine exakte Übernahme der Multimethoden von Common Lisp. define class <Bruch> (<object>)
slot nenner;
slot zaehler;
end;
define method addiere(a :: <Bruch>, b :: <Bruch>) => (ergebnis)
// Implementierung
end;
Wird eine Klasse für komplexe Zahlen implementiert, so lässt sich die Methode define method addiere(a :: <KomplexeZahl>, b :: <KomplexeZahl>) => (ergebnis)
// Implementierung
end;
define method addiere(a :: <Bruch>, b :: <KomplexeZahl>) => (ergebnis)
// Implementierung
end;
define method addiere(a :: <KomplexeZahl>, b :: <Bruch>) => (ergebnis)
// Implementierung
end;
Eine weitere Methode kann nun unabhängig von Klassen mit Zahlen arbeiten und rechnen: define method rechteck_umfang(laenge, breite) => (umfang)
2*(addiere(laenge, breite))
end;
Anzumerken ist, dass die Klassen für die Parameter ImplementierungenApple Dylan / Harlequin Dylan / Functional Developer / Open DylanNachdem Apple 1998 die Entwicklung von Dylan endgültig einstellte, ging der Quellcode an die englische Firma Harlequin über. Harlequin wurde kurz darauf von Global Graphics übernommen und die Entwicklung von Harlequin Dylan in eine eigenständige Firma, Functional Objects (auch „FunO“), ausgegliedert. Die Dylan-Implementierung mit IDE wurde fortan unter dem Namen „Functional Developer“ verkauft. 2004 wurde Functional Developer schließlich an die Gwydion Dylan Maintainer als Open-Source-Projekt übergeben (FunO stellte seine Geschäftstätigkeit Anfang 2006 vollständig ein). Die Software heißt seitdem Open Dylan. Neben einer interaktiven Shell (ähnlich Rubys IRB oder BeanShell), bietet die IDE einen Object Browser, mit dem sich der Zustand laufender Programme analysieren lässt. Beide Tools können sowohl auf lokale, als auch auf anderen Rechnern laufende Dylan-Programme angewendet werden. Die IDE ist momentan nur unter Windows verfügbar, der Compiler läuft mittlerweile jedoch auch unter Mac OS X und Linux. Gwydion DylanGwydion Dylan, benannt nach einem Zauberer aus einer walisischen Sage, wurde ursprünglich an der Carnegie Mellon University entwickelt. Es handelt sich dabei um einen Compiler, der C-Code erzeugt. Dieser Code muss mittels eines C-Compilers in Maschinencode übersetzt werden. Dadurch können Gwydion-Dylan-Programme auf vielen Plattformen laufen. Die Implementierung ist jedoch weniger vollständig als Open Dylan. MindyMindy ist ein Dylan-Interpreter, dessen Entwicklung mittlerweile eingestellt wurde. Er wurde benutzt, um die erste Version des Gwydion-Compilers zu kompilieren. Die Bezeichnung ist ein rekursives Akronym von MINDY Is Not Dylan Yet. Weblinks |
Portal di Ensiklopedia Dunia