SNOBOL

SNOBOL (Schnur Orientierte Symbolische Sprache) ist eine Reihe von Computerprogrammiersprachen, die zwischen 1962 und 1967 an AT&T Glockenlaboratorien durch David J. Farber, Ralph E. Griswold und Ivan P. Polonsky entwickelt sind, in SNOBOL4 kulminierend. Es war eine mehrerer Schnur-orientierter Sprachen, die während der 1950er Jahre und der 1960er Jahre entwickelt sind; andere haben COMIT und TRAC eingeschlossen.

SNOBOL4 steht von den meisten Programmiersprachen zur Seite, indem er Muster als ein erstklassiger Datentyp gehabt wird (d. h. ein Datentyp, dessen Werte auf alle Weisen manipuliert werden können, die zu jedem anderen Datentyp auf der Programmiersprache erlaubt sind), und durch die Versorgung Maschinenbedienern für die Muster-Verkettung und den Wechsel. Während der Ausführung erzeugte Schnuren können als Programme behandelt und durchgeführt werden.

SNOBOL4 wurde in größeren US-Universitäten gegen Ende der 1960er Jahre und Anfang der 1970er Jahre ganz weit unterrichtet und wurde in den 1970er Jahren und 1980er Jahren als eine Textmanipulationssprache in den Geisteswissenschaften weit verwendet.

In den letzten Jahren ist sein Gebrauch als neuere Sprachen wie AWK verwelkt, und Perl haben Schnur-Manipulation mittels regelmäßiger Ausdrücke modisch gemacht. SNOBOL4 Muster ordnen BNF Grammatiken unter, die zu Grammatiken ohne Zusammenhänge gleichwertig und stärker sind als regelmäßige Ausdrücke.

Die "regelmäßigen Ausdrücke" in jetzigen Versionen von AWK und Perl sind tatsächlich Erweiterungen von regelmäßigen Ausdrücken im traditionellen Sinn, aber regelmäßige Ausdrücke, verschieden von SNOBOL4 Mustern, können nicht rekursiv sein, der einen verschiedenen rechenbetonten Vorteil für SNOBOL4 Muster gibt. Jedoch, seit Perl 5.10 (veröffentlicht im Dezember 2007), Perl können regelmäßige Ausdrücke rekursiv sein.

Einer der Entwerfer von SNOBOL, Ralph Griswolds, hat Nachfolger von SNOBOL4 genannt SL5 und Ikone entworfen, die das Zurückverfolgen des SNOBOL4 Musters verbunden hat, das mit der mehr normalen EINEM ALGOL ähnlichen Strukturierung, sowie dem Hinzufügen einiger Eigenschaften ihres eigenen zusammenpasst.

Entwicklung

Die SNOBOL anfängliche Sprache wurde als ein von seinen Autoren zu verwendendes Werkzeug geschaffen, um mit der symbolischen Manipulation von Polynomen zu arbeiten. Es wurde auf der Zusammenbau-Sprache für IBM 7090 geschrieben. Es hatte eine einfache Syntax, nur einen datatype, die Schnur, keine Funktionen, und keine Behauptungen und sehr wenig Fehlerkontrolle. Jedoch trotz seiner Einfachheit und seiner "persönlichen" Natur hat sein Gebrauch begonnen, sich zu anderen Gruppen auszubreiten. Infolgedessen haben sich die Autoren dafür entschieden, es zu erweitern und es in Ordnung zu bringen. Sie haben es umgeschrieben und haben Funktionen, sowohl normal als auch benutzerbestimmt hinzugefügt, und haben das Ergebnis als SNOBOL3 veröffentlicht. SNOBOL2 hat wirklich bestanden, aber es war eine kurzlebige Zwischenentwicklungsversion ohne benutzerbestimmte Funktionen und wurde nie veröffentlicht. SNOBOL3 ist ziemlich populär geworden und wurde für andere Computer umgeschrieben als IBM 7090 von anderen Programmierern. Infolgedessen sind mehrere unvereinbare Dialekte entstanden.

Da SNOBOL3 populärer geworden ist, bitten die Autoren empfangen immer mehr für Erweiterungen auf die Sprache. Sie haben auch begonnen, Beschwerden über die Inkompatibilität und Programmfehler in Versionen zu erhalten, die sie nicht geschrieben hatten. Um das zu richten und die neuen Computer auszunutzen, die gegen Ende der 1960er Jahre einführen werden, wurde die Entscheidung getroffen, um SNOBOL4 mit vielen zusätzlichen datatypes und Eigenschaften zu entwickeln, aber auf einer virtuellen Maschine gestützt, um verbesserte Beweglichkeit über Computer zu erlauben. Der SNOBOL4 Sprachübersetzer wurde noch auf der Zusammenbau-Sprache geschrieben. Jedoch wurden die Makroeigenschaften des Monteurs verwendet, um die virtuellen Maschineninstruktionen der SNOBOL Durchführungssprache, des SIL zu definieren. Das hat sehr viel die Beweglichkeit der Sprache durch das Bilden davon relativ leicht verbessert, die virtuelle Maschine zu tragen, die den Übersetzer durch das Erfrischen seiner virtuellen Instruktionen auf jeder Maschine veranstaltet hat, die einen Makromonteur oder tatsächlich eine hohe Sprache eingeschlossen hat.

Eigenschaften

SNOBOL4 ist die vierte und letzte Verkörperung einer Reihe von speziellen Zweck-Programmiersprachen für die Charakter-Schnur-Manipulation.

Die SNOBOL4 Variante der Sprache unterstützt mehrere eingebaute Datentypen, wie ganze Zahlen und beschränkte reelle Präzisionszahlen, Schnuren, Muster, Reihe und Tische (assoziative Reihe), und erlaubt auch dem Programmierer, zusätzliche Datentypen und neue Funktionen zu definieren. SNOBOL4's Programmierer-definierte Datentyp-Möglichkeit wurde in dieser Zeit vorgebracht - ist es dem früheren COBOL und die Aufzeichnungen des späteren Pascal ähnlich.

Alle SNOBOL-Befehl-Linien sind von der Form

Label1 Thema-Muster = Gegenstand: (Goto Label2)

Jede der fünf Abteilungen ist fakultativ. Im Allgemeinen wird das Thema gegen das Muster verglichen. Wenn der Gegenstand da ist, wird jeder verglichene Teil durch den Gegenstand über Regeln für den Ersatz ersetzt. Der goto kann ein absoluter Zweig, oder bedingt gestützt auf dem Erfolg oder Misserfolg der unterworfenen Einschätzung, der Muster-Einschätzung, des Muster-Matchs, der Gegenstand-Einschätzung oder der Endanweisung sein.

Ein SNOBOL Muster kann sehr einfach oder äußerst kompliziert sein. Ein einfaches Muster ist gerade eine Textschnur (z.B "ABCD"), aber ein kompliziertes Muster kann ein großes Struktur-Beschreiben, zum Beispiel, die ganze Grammatik einer Computersprache sein. Es ist möglich, einen Sprachdolmetscher in SNOBOL fast direkt von einem Backus-Naur-Form-Ausdruck davon mit wenigen Änderungen durchzuführen. Das Schaffen eines Makromonteurs und eines Dolmetschers für ein völlig theoretisches Stück der Hardware konnte nur einige hundert Linien mit einer neuen Instruktion nehmen, die mit einer einzelnen Linie wird hinzufügt.

SNOBOL komplizierte Muster können Sachen machen, die das unpraktische oder unmögliche Verwenden der primitiveren regelmäßigen Ausdrücke sein würden, die im grössten Teil anderen Musters verwendet sind, das Sprachen vergleicht. Etwas von dieser Macht ist auf die SPITBOL so genannten "Erweiterungen" zurückzuführen (die in grundsätzlich allen modernen Durchführungen des ursprünglichen SNOBOL 4 Sprache auch seitdem vereinigt worden sind), obwohl es möglich ist, dieselbe Macht ohne sie zu erreichen. Ein Teil dieser Macht kommt aus den Nebenwirkungen, dass es möglich ist, während der zusammenpassenden Muster-Operation, einschließlich des Sparens zahlreicher vermittle/versuchsweiser zusammenpassender Ergebnisse und der Fähigkeit zu erzeugen, benutzerschriftliche Funktionen während des Muster-Matchs anzurufen, das fast jede gewünschte Verarbeitung durchführen, und dann die andauernde Richtung beeinflussen kann, die das unterbrochene Muster-Match nimmt, oder sogar tatsächlich das Muster selbst während der zusammenpassenden Operation zu ändern. Muster können wie jeder andere erstklassige Datenartikel gespart werden, und können verkettet, innerhalb anderer Muster verwendet und verwendet werden, um sehr komplizierte und hoch entwickelte Muster-Ausdrücke zu schaffen. Es ist möglich, zum Beispiel, ein SNOBOL4 Muster zu schreiben, das "einen ganzen Namen und internationale Postpostanschrift" vergleicht, die gut außer irgendetwas ist, was praktisch ist, um sogar verwendende regelmäßige Ausdrücke zu versuchen.

SNOBOL4 Muster-Zusammenbringen verwendet einen denselben Weg zurückverfolgenden Algorithmus, der dem ähnlich ist, das in der Logikprogrammiersprache-Einleitung verwendet ist, die einem Muster ähnliche Konstruktionen über DCGs zur Verfügung stellt. Dieser Algorithmus macht es leichter, SNOBOL als eine Logikprogrammiersprache zu verwenden, als für die meisten Sprachen der Fall ist.

SNOBOL versorgt Variablen, Schnuren und Datenstrukturen in einem einzelnen Müll-gesammelten Haufen.

SNOBOL Rivalen APL für seine Besonderheit im Format und Programmierstil, beider, radikal verschieden von mehr "normalen" Verfahrenssprachen solcher als GRUNDLEGEND, Fortran oder C seiend.

Durchführungen

Die klassische Durchführung war auf dem PDP-10; es ist verwendet worden, um Bearbeiter, formelle Grammatiken und künstliche Intelligenz, besonders maschinelle Übersetzung und Maschinenverständnis von natürlichen Sprachen zu studieren. Die ursprüngliche Durchführung war auf IBM 7090 an Glockenlaboratorien, Holmdel, N.J. SNOBOL4 wurde für die Beweglichkeit spezifisch entworfen; die erste Durchführung wurde auf IBM 7094 1966 angefangen, aber auf IBM 360 1967 vollendet. Es wurde zu vielen anderen Plattformen schnell getragen.

Es wird normalerweise als ein Dolmetscher wegen der Schwierigkeit durchgeführt, einige seiner Eigenschaften sehr auf höchster Ebene durchzuführen, aber es gibt einen Bearbeiter, den SPITBOL Bearbeiter, der fast alle Möglichkeiten zur Verfügung stellt, die der Dolmetscher zur Verfügung stellt.

Der Bearbeiter von Gnat Ada kommt mit einem Paket (GNAT.Spitbol), der die ganze Schnur-Manipulationssemantik von Spitbol durchführt. Das kann aus einem Programm von Ada genannt werden.

Der Dateiredakteur für das Michiganer Endsystem hat eine Muster-Sprache verwendet ist auf SNOBOL4 zurückzuführen gewesen.

Mehrere Durchführungen sind zurzeit verfügbar. Makro-SNOBOL4 in von Phil Budne geschriebenem C ist eine freie, offene Quelldurchführung, die zum Laufen auf fast jeder Plattform fähig ist. Es ist an http://www.snobol4.org/ verfügbar. Catspaw, Inc. an http://www.snobol4.com/, stellt eine kommerzielle Durchführung der SNOBOL4 Sprache für viele verschiedene Computerplattformen, einschließlich DOS, Macintoshes, Sonne, RS/6000 und anderer zur Verfügung. Eine ältere Version, SNOBOL4 +, ist jetzt frei von Catspaw verfügbar. Minnesota ist SNOBOL4, Durch Viktors Berstis, die nächste PC-Durchführung zur ursprünglichen Großrechner-Version von IBM (sogar einschließlich der Fortran ähnlichen FORMAT-Behauptungsunterstützung) auch frei, und ist an http://www.berstis.com/snobol4.htm.

Obwohl SNOBOL selbst nicht strukturierte Programmiereigenschaften, hat

eine strukturierte Erweiterung von SNOBOL genannt Snostorm hat an University College London (UCL) bestanden

zwischen 1982 und 1984, und hat ein anderer durch Andrew Koenig Snocone.http://www.acceleratedcpp.com/authors/koenig/bibliography/snocone.pdf gerufen

Die SPITBOL Durchführung hat auch mehrere Eigenschaften eingeführt, die, während man traditionelle strukturierte Programmierschlüsselwörter nicht verwendet, dennoch verwendet werden können, um viele der gleichwertigen Fähigkeiten normalerweise Gedanke, wie "strukturiert, an Programmierung" zur Verfügung zu stellen, am meisten namentlich hat if/then/else Typ-Konstruktionen verschachtelt. Diese Eigenschaften sind zu den meisten neuen SNOBOL4 Durchführungen seitdem hinzugefügt worden. Nach vielen Jahren als ein kommerzielles Produkt im April 2009 wurde SPITBOL als kostenlose Software laut der GNU-Lizenz der Breiten Öffentlichkeit veröffentlicht.

Das Namengeben

Gemäß Dave Farber haben er, Griswold und Polonsky "schließlich den Namen der Symbolische Ausdruck-Dolmetscher SEXI erreicht."

:All ist gut gegangen bis zu einem Tag legte ich einen Gruppe-Job vor, das System und als normal auf meiner JOB-Karte - der ersten Karte im Deck, mir, in BTL Standards mein Job und mein Name - Farber zu sammeln

:One der Setzer-Zentrum-Mädchen hat darauf geschaut und hat gesagt, "Es ist, was Sie" auf eine humorvolle Weise denken.

:That hat verständlich gemacht, dass wir einen anderen Namen gebraucht haben!! Wir haben gesessen und haben geredet und haben Kaffee getrunken und haben Gummibänder und danach viel zu viel Zeit geschossen, die jemand - wahrscheinlichster Ralph gesagt hat - "Haben wir nicht, einen Namen zu finden". Wir alle haben sofort gebrüllt, "WIR haben ES - SNOBOL" im Geist aller BOL Sprachen BEKOMMEN. Wir haben dann unsere Meinung gestreckt, um zu finden, wofür sie eingetreten ist.

Allgemeine Interpretationen von "SNOBOL" sind 'Schnur Orientierte Symbolische Sprache' oder (als ein quasi-initialism) 'StriNg Orientierte symbolische Sprache'.

SNOBOL und Pythonschlange

Weil einige Benutzer der Pythonschlange-Programmiersprache den Gebrauch des regelmäßigen Ausdruck-Begrenzens gefunden haben, ist eine Erweiterung auf die Pythonschlange eingeführt worden, der es möglich macht, SNOBOL Muster zu verwenden, das in Pythonschlange-Programmen zusammenpasst. Die Erweiterung wird SnoPy genannt, und wurde von Don Rozenberg geschrieben.

Siehe auch

Weiterführende Literatur

  • Emmer, Mark B. SNOBOL4 +: Die SNOBOL4 Sprache für den Personalcomputerbenutzer. Englewood Klippen, New Jersey: Prentice Hall, 1985 (internationale Standardbuchnummer 0-13-815119-9).
  • Gimpel, James F. Algorithms in SNOBOL4. New York: Wiley, 1976 (internationale Standardbuchnummer 0-471-30213-9); neu veröffentlichte Salida, CO: Catspaw, 1986 (internationale Standardbuchnummer 0 939793 00 8).
  • Griswold, Ralph E. Die Makrodurchführung von SNOBOL4. San Francisco, Kalifornien:W. H. Freeman und Gesellschaft, 1972 (internationale Standardbuchnummer 0-7167-0447-1).
  • Griswold, Ralph E., J. F. Poage und ich. P. Polonsky. Die SNOBOL4 Programmiersprache. Englewood Klippen, New Jersey: Prentice Hall, 1968 (internationale Standardbuchnummer 0-13-815373-6).
  • Griswold, Ralph E. String und Liste, die in SNOBOL4 In einer Prozession geht: Techniken und Anwendungen. Englewood Klippen, New Jersey: Prentice Hall, 1975 (internationale Standardbuchnummer 0-13-853010-6).
  • Hockey, Susan M Snobol Programming für die Geisteswissenschaften. New York: Clarendon Press; Oxford: Die Universität Oxford Press, 1985 (internationale Standardbuchnummer 0-19-824676-5).

Außenverbindungen


Simula / Statistische Physik
Impressum & Datenschutz