WikiDer > Symbol (Programmiersprache)

Icon (programmeertaal)
Symbol
ParadigmaImperativ, strukturiert
erschienca. 1978
Entworfen vonRalph Griswold und andere
Aktuelle Version9.5
Typensystemdynamisch
Beeinflusst vonSNOBOL, algol
Einfluss aufPython
BetriebssystemMultiplattform
Webseitehttp://www.cs.arizona.edu/icon/
Portal  Portalsymbol  Informatik

Symbol ist ein Programmiersprache die für nicht-numerische Anwendungen, insbesondere für die Verarbeitung, ausgelegt ist Text (Saiten). Icon wurde in der zweiten Hälfte der 1970er Jahre an der Universität von Arizona von Ralph Griswold, Dave Hanson und anderen.[1][2]Die Funktionalität des Symbols war ähnlich wie SNOBOL4, aber die Syntax Icon war moderner als SNOBOL4, dessen Syntax sich noch an der Lochkartenverarbeitung orientierte. Die Syntax von Icon hat Ähnlichkeiten mit Pascal (zum Beispiel ":=" um einen Wert zuzuweisen) und C, aber es gibt auch einige Unterschiede. Ein Befehl muss beispielsweise nicht mit einem ";" enden. am Ende einer Zeile.

Icon wurde danach weiterentwickelt und ist aktuell (Jahr 2013) auf Version 9.5, verfügbar für Unix-, Linux- und Macintosh- (mit Intel-Prozessor) Systeme. Es läuft auch unter Cygwin auf Microsoft Windows.

Überblick

Icon ist eine höhere Programmiersprache mit mehreren Funktionen zum Arbeiten mit Zeichenketten und komplexeren Datenstrukturen wie Listen, Datensätzen, Mengen und assoziative Arrays. Sprache ist zwingend und nicht objektorientierten.[3] Variablen müssen nicht deklariert werden. Verwendetes Symbol dynamisches Tippen: Der Typ einer Variablen kann während der Programmausführung variieren. Dieselbe Variable kann zu unterschiedlichen Zeiten eine Ganzzahl, eine Zeichenfolge, eine Menge (Sammlung) oder einen anderen Typ darstellen.

Ein Icon-Programm besteht aus einer Reihe von Verfahrens, das eine Reihe von Argumenten haben kann oder nicht und kann einen Wert an die aufrufende Prozedur mit dem zurückgeben oder nicht RückkehrAuftrag. Ein Vorgang endet mit der Bestellung Ende. Hier ist ein einfaches Verfahren, um die größere von zwei Zahlen zu bestimmen:

Prozedur max(i,j) wenn i > j dann Rückgabe i sonst Rückgabe jend

Jedes Programm hat eine "Haupt"-Prozedur, die die Ausführung startet.

Symbol hat Tradition KontrollflussStrukturen, wie z wenn-dann-sonst und während-do. Schleifen werden auch mit dem Befehl übergeben jeder - tue ("do" ist optional), zum Beispiel:

jedes n := i to j by k do ...

Ein Icon-Ausdruck "fehlt" und erzeugt einen Wert oder "fehlt". EIN Generator ist ein Ausdruck oder eine Prozedur, die mehrere Werte erzeugen kann. Bei wiederholter Auswertung gibt der Generator einen neuen Wert zurück, bis er fehlschlägt. Der Ausdruck "i to j by k" ist ein Beispiel für a Generator. Ein weiterer Generator ist die "find"-Funktion:

finden(s1, s2)

die alle Stellen in String s2 findet, an denen String s1 vorkommt. Die Bestellung:

jedes i:=find("oder", s) schreibe(i)

gibt jede Position aus, die "oder" in der Zeichenfolge s enthält. Der Generator "find" wird so oft ausgewertet, bis er gescheitert und gibt keinen Wert. Dann wird die Ausführung mit dem nächsten Befehl fortgesetzt. Dieser Befehl kann noch kompakter geschrieben werden als:

jedes schreiben(find("oder", s))

Der Mechanismus, mit dem Ausdrücke in Icon ausgewertet werden, ist "gezielt" (zielorientiert): Icon zwingt jeden (Unter-)Ausdruck, so viele Werte wie möglich zu erzeugen. Zum Beispiel: der Ausdruck

 2 < (1 bis 5)

erzeugt die Werte 3, 4 und 5, schlägt dann fehl.

Mit Generatoren und zielgerichteter Auswertung lassen sich mit Icon sehr kompakte Programme mit impliziten Kontrollfluss.

Externe Links