CLU (Programmiersprache)

CLU ist eine Programmiersprache, die an MIT durch Barbara Liskov und ihre Studenten zwischen 1974 und 1975 geschaffen ist. Es war für seinen Gebrauch von Konstrukteuren für abstrakte Datentypen bemerkenswert, die den Code eingeschlossen haben, der auf ihnen, einem Schlüsselschritt in der Richtung auf die objektorientierte Programmierung (OOP) funktioniert hat. Jedoch fehlen viele der anderen Eigenschaften von OOP, namentlich Erbe (absichtlich), und die Sprache wird auch durch ein manchmal Frustrieren wenn elegante Syntax gehindert.

Trauben

Die Syntax von CLU hat auf dem Algol, dann der Startpunkt für das neueste Sprachdesign basiert. Die Schlüsselhinzufügung war das Konzept einer Traube, des Typ-Erweiterungssystems von CLU und der Wurzel des Namens der Sprache (Traube). Trauben entsprechen allgemein zum Konzept eines "Gegenstands" auf einer OO Sprache, und haben grob dieselbe Syntax. Zum Beispiel ist hier die CLU Syntax für eine Traube, die komplexe Zahlen durchführt:

complex_number = ist Traube tragen bei, machen Abstriche, multiplizieren...

Rips = Aufzeichnung [real_part: echt, imag_part: echt]

tragen Sie = proc bei... enden tragen bei;

machen Sie = proc Abstriche... enden machen Abstriche;

multiplizieren Sie = proc... enden multiplizieren;

...

Ende complex_number; </Quelle>

Traube-Namen sind global, und kein namespace Mechanismus wurde zur Verfügung gestellt, um Trauben zu gruppieren oder ihnen zu erlauben, "lokal" innerhalb anderer Trauben geschaffen zu werden.

CLU führt implizite Typ-Konvertierungen nicht durch. In einer Traube ändern sich die ausführlichen Typ-Konvertierungen und 'unten' zwischen dem abstrakten Typ und der Darstellung. Es gibt einen universalen Typ 'irgendwelcher' und eine Verfahren-Kraft [], um zu überprüfen, dass ein Gegenstand ein bestimmter Typ ist. Gegenstände können veränderlich oder, die Letzteren unveränderlich sein, die "Grundtypen" wie ganze Zahlen sind.

Andere Eigenschaften

Ein anderes Hauptmerkmal des Typ-Systems CLU ist iterators, die Gegenstände von einer Sammlung nacheinander zurückgeben. Iterators waren "schwarze Kästen", die eine identische API angeboten haben, egal was Daten sie damit verwendet wurden. So würde der iterator für eine Sammlung von s dazu für eine Reihe von s identisch sein. Iterators sind jetzt ein gemeinsames Merkmal von am meisten neueren Sprachen. (Sieh Generator)

CLU schließt auch das Ausnahme-Berühren ein, das auf verschiedenen Versuchen auf anderen Sprachen gestützt ist; Ausnahmen werden damit erhoben und damit behandelt. Sonderbar, in Anbetracht des Fokus auf dem Typ-Design, bietet CLU aufgezählte Typen, noch jede offensichtliche Weise nicht an, sie zu schaffen.

Ein endgültiges unterscheidendes Merkmal in CLU ist vielfache Anweisung, wo mehr als eine Variable linker Hand Seite eines Anweisungsmaschinenbedieners erscheinen kann. Zum Beispiel würde das Schreiben Tauschwerte und. Ebenso konnten Funktionen mehrere Werte, wie zurückgeben.

Alle Gegenstände in einem CLU Programm, das im Haufen und Speichermanagement lebend ist, sind automatisch.

Einfluss auf andere Programmiersprachen

  • Pythonschlange und Ruby haben mehrere Konzepte von CLU (wie die Ertrag-Behauptung und vielfache Anweisung) geliehen
  • CLU und Ada waren Hauptinspirationen für C ++ Schablonen.
  • Die Ausnahme-Berühren-Mechanismen von CLU haben auch neuere Sprachen wie Java und C ++ beeinflusst.
  • Alle Gegenstände in einem CLU Programm, das im Haufen und Speichermanagement lebend ist, sind automatisch. Diese Elemente haben direkt Java beeinflusst.
  • Pythonschlange, C#, und Sather schließt Generatoren ein (iterators in Sather und C#), der zuerst in CLU als iterators erschienen ist.
  • Lua hat vielfache Anweisung und vielfachen Umsatz von Funktionsanrufen von CLU genommen.

Außenverbindungen


Komische Fantasie / Geschichte der Sowjetunion (1982-1991)
Impressum & Datenschutz