Sather

Sather ist eine objektorientierte Programmiersprache. Es ist um 1990 an International Computer Science Institute (ICSI) an der Universität Kaliforniens, Berkeley entstanden, der von einer internationalen von Steve Omohundro geführten Mannschaft entwickelt ist. Es unterstützt Müll-Sammlung und generics durch Subtypen.

Ursprünglich hat es auf Eiffel basiert, aber es ist abgewichen, und schließt jetzt mehrere funktionelle Programmiereigenschaften ein. Es ist wahrscheinlich am besten, es als eine objektorientierte Sprache mit vielen von Eiffel geliehenen Ideen anzusehen.

Sogar der Name wird von Eiffel begeistert; der Sather Turm ist ein erkennbarer Grenzstein an Berkeley, genannt nach Peder Sather, der große Summen dem Fundament der Universität geschenkt hat.

Sather nimmt auch Inspiration aus anderen Programmiersprachen und Paradigmen: Iterators, Design durch Vertrag, abstrakte Klassen, Mehrfachvererbung, anonyme Funktionen, Maschinenbediener, der, kontravariantes Typ-System überlädt. Einige dieser Eigenschaften werden normalerweise nur auf funktionellen Programmiersprachen gefunden.

Die ursprüngliche Durchführung von Berkeley (wurde letzte stabile Version 1.1 1995 veröffentlicht, nicht mehr aufrechterhalten), ist von der Organisation zur Förderung freier Software angenommen worden, die deshalb GNU Sather wird. Letzte stabile GNU-Version (1.2.3) wurde im Juli 2007 veröffentlicht, und die Software wird zurzeit nicht aufrechterhalten. Es gab mehrere andere Varianten: Sather-K von der Universität Karlsruhes; Sather-W von der Universität von Waikato (Durchführung der Version 1.3 von Sather); der Hafen von Peter Naulls von ICSI Sather 1.1 zu RISC OS; und pSather, eine parallele Version von ICSI Sather das Wenden ungleichförmiger Speicherzugriffsmehrverarbeiter-Architekturen, aber Präsentieren eines geteilten Speichermodells dem Programmierer.

Der ehemalige ICSI Sather Bearbeiter (jetzt GNU Sather) wird als ein Bearbeiter zu C durchgeführt, d. h. der Bearbeiter tut nicht Produktionsgegenstand oder Maschinencode, aber nimmt Quellcode von Sather und erzeugt C Quellcode als eine Zwischensprache. Optimierung wird zum C Bearbeiter verlassen. Code von Sather wurde häufig gefordert leistet besser als der entsprechende C ++ Code.

Das GNU Sather Bearbeiter, der in Sather selbst geschrieben ist, ist lizenziert unter GNU GPL & LGPL Doppel-.

Hallo Welt

Klasse HELLO_WORLD ist

wichtig ist

#OUT+ "hallo World\n";

Ende;

Ende;

Einige Bemerkungen:

  • Klassennamen sind ALLE KAPPEN; das ist nicht nur eine Tagung, aber wird durch den Bearbeiter beachtet.
  • Die genannte Methode ist der Zugang-Punkt für die Ausführung. Es kann jeder Klasse gehören, aber wenn das davon verschieden ist, muss es als eine Bearbeiter-Auswahl angegeben werden.
  • ist das Konstrukteur-Symbol, Methode der entsprechenden Klasse nennend; hier wird es verwendet, für die Klasse zu realisieren, die wirklich stdout ist.
  • Der Maschinenbediener ist hier überladen worden, um für Strom einzutreten, hängen an.
  • Maschinenbediener, die syntaktischer Zucker für herkömmlich genannte Methode-Anrufe sind: Tritt ein. Die übliche arithmetische Prioritätsvereinbarung wird verwendet, um die Benennen-Ordnung von Methoden in komplizierten Formeln aufzulösen.
  • Das Programm-Lay-Out berücksichtigt prä- und Postbedingungen (nicht gezeigt hier), die Eiffel Abstammung von Sather zeigend.

Beispiel von iterators

WICHTIGE Klasse ist

wichtig ist

Schleife

i: = 1.upto! (10);

#OUT + ich + "\n";

Ende;

Ende;

Ende;

Dieses Programm druckt Zahlen von 1 bis 10.

... Konstruktion ist die bevorzugten Mittel, Schleifen zu definieren (obwohl und - auch verfügbar sind). Innerhalb der Konstruktion können ein oder mehr iterators verwendet werden. Namen von Iterator enden immer mit einem Ausrufungszeichen (diese Tagung wird durch den Bearbeiter beachtet). ist eine Methode der Klasse der ganzen Zahl, die ein Argument akzeptiert, bedeutend, dass sich sein Wert als die Iterator-Erträge nicht ändern wird. konnte in der Klasse wie das durchgeführt werden:

upto! (einmal m:INT): DASSELBE ist

i: INTERNE NUMMER: = selbst; - initialisieren mich zum Wert selbst,

- das ist die ganze Zahl, deren diese Methode genannt wird

Schleife

wenn i> M dann

hören Sie auf; - verlassen die Schleife, wenn ich M übertreffe

Ende;

Ertrag i; - verwenden sonst ich als Rückkehr schätze und bleibe in der Schleife

i: = ich + 1; - und Zunahme

Ende;

Ende;

Die Typ-Information für Variablen wird durch eine Syntax der postüblen Lage angezeigt. Der Typ kann häufig abgeleitet werden, und so ist die tippende Information, wie darin fakultativ. ist eine Bequemlichkeitspseudoklasse, die sich auf die aktuelle Klasse bezieht.

Links


Dasselbe Spiel / Serotonin
Impressum & Datenschutz