Informationsverarbeitungssprache

Information Processing Language (IPL) ist eine Programmiersprache, die von Allen Newell, Cliff Shaw und Herbert Simon an RAND Corporation und dem Institut von Carnegie für die Technologie ungefähr von 1956 entwickelt ist. Newell hatte die Rolle des Sprachspecifier-Anwendungsprogrammierers, Shaw war der Systemprogrammierer, und Simon hat die Rolle des Anwendungsprogrammierers-Benutzers genommen.

Die Sprache schließt Eigenschaften ein, die beabsichtigt sind, um Programme zu unterstützen, die das allgemeine Problem-Lösen, einschließlich Listen, Vereinigungen, Diagramme (Rahmen) durchführen konnten, dynamische Speicherzuteilung, Datentypen, recursion, assoziative Wiederauffindung, fungieren als Argumente, Generatoren (Ströme) und das kooperative Mehrbeschäftigen. IPL hat für das Konzept der Listenverarbeitung, obgleich in einem mit dem Zusammenbau sprachigen Stil den Weg gebahnt.

Ein Geschmack von IPL

Ein IPL Computer hat:

  1. eine Reihe von Symbolen. Alle Symbole sind Adressen, und nennen Zellen. Verschieden von Symbolen auf späteren Sprachen bestehen Symbole aus einem Charakter, der von einer Zahl gefolgt ist, und werden H1, A29, 9-7, 9-100 geschrieben.
  2. Zellnamen, die mit einem Brief beginnen, sind regional, und sind absolute Adressen.
  3. Zellnamen, die mit "9-" beginnen, sind lokal, und sind innerhalb des Zusammenhangs einer einzelnen Liste bedeutungsvoll. Die 9-1 einer Liste sind der 9-1 einer anderen Liste unabhängig.
  4. Andere Symbole (z.B, reine Zahlen) sind inner.
  5. eine Reihe von Zellen. Listen werden von mehreren Zellen gebaut, die gegenseitige Verweisungen halten. Zellen haben mehrere Felder:
  6. P hat ein 3-Bit-Feld für einen Operationscode verwendet, wenn die Zelle als eine Instruktion verwendet und unbenutzt wird, wenn die Zelle Daten ist.
  7. Q hat ein 3 geschätztes Feld für die indirekte Verweisung verwendet, wenn die Zelle als eine Instruktion verwendet und unbenutzt wird, wenn die Zelle Daten ist.
  8. SYMB, ein Symbol, das als der Wert in der Zelle verwendet ist.
  9. eine Reihe primitiver Prozesse, die primitive Funktionen in neueren Sprachen genannt würden.

Die Hauptdatenstruktur von IPL ist die Liste, aber Listen sind mehr komplizierte Strukturen als auf vielen Sprachen. Eine Liste besteht aus einer einzeln verbundenen Folge von Symbolen, wie - plus einige Beschreibungslisten erwartet werden könnte, die einzeln verbundene Unterstützungslisten sind, die als Wechselattribut-Namen und Werte interpretiert sind. IPL stellt Primitive zur Verfügung, um auf Attribut-Wert namentlich zuzugreifen und ihn zu verändern. Den Beschreibungslisten wird lokale Namen (der Form 9-1) gegeben. Also, eine Liste genannt L1, der die Symbole hält, die S4 und S5, und durch das Verbinden des Werts V1 beschrieben haben, um A1 und V2 zu A2 zuzuschreiben, würde wie folgt versorgt. 0 zeigt das Ende einer Liste an; die Zellnamen 100, 101, werden usw. innere Symbole automatisch erzeugt, deren Werte irrelevant sind. Diese Zellen können überall im Gedächtnis gestreut werden; nur L1, der einen Regionalnamen verwendet, der allgemein bekannt sein muss, muss in einem spezifischen Platz wohnen.

</Code>

IPL ist eine Zusammenbau-Sprache, um Listen zu manipulieren. Es hat einige Zellen, die als Register des speziellen Zwecks verwendet werden. H1 ist zum Beispiel der Programm-Schalter. Das SYMB Feld von H1 ist der Name der aktuellen Instruktion. Jedoch wird H1 als eine Liste interpretiert; die VERBINDUNG von H1, ist in modernen Begriffen, einem Zeigestock zum Kopf des Anruf-Stapels. Zum Beispiel stoßen Unterprogramm-Anrufe den SYMB von H1 auf diesen Stapel.

H2 ist die freie Liste. Verfahren, die Speichergriff-Zellen von H2 zuteilen müssen; Verfahren, die mit dem Gedächtnis beendet werden, stellen es auf H2. Auf dem Zugang zu einer Funktion wird die Liste von Rahmen in H0 gegeben; auf dem Ausgang sollten die Ergebnisse in H0 zurückgegeben werden. Viele Verfahren geben einen Boolean-Ergebnis-Anzeigen-Erfolg oder Misserfolg zurück, der in H5 gestellt wird. Zehn Zellen, W0-W9, werden für die öffentliche Arbeitslagerung vorbestellt. Verfahren werden" "moralisch verpflichtet (den Artikel CACM anzusetzen), um die Werte dieser Zellen zu sparen und wieder herzustellen.

Es gibt acht Instruktionen, die auf den Werten von P gestützt sind: Unterprogramm-Anruf, stoßen Sie S zu H0/knallen lassen Sie; stoßen Sie das Symbol in S zur S beigefügten Liste/knallen lassen Sie; kopieren Sie schätzen zu S; bedingter Zweig. In diesen Instruktionen ist S das Ziel. S ist entweder der Wert des SYMB Feldes wenn Q=0, das Symbol in der durch SYMB genannten Zelle wenn Q=1, oder das Symbol in der Zelle, die durch das Symbol in der durch SYMB genannten Zelle wenn Q=2 genannt ist. In allen Fällen, aber bedingtem Zweig erzählt das VERBINDUNGS-Feld der Zelle der Instruktion, als nächstes durchzuführen.

IPL hat eine Bibliothek von ungefähr 150 grundlegenden Operationen. Diese schließen solche Operationen ein wie:

  • Testsymbole für die Gleichheit
  • Finden Sie, setzen Sie, oder löschen Sie ein Attribut einer Liste
  • machen Sie das folgende Symbol in einer Liste ausfindig; fügen Sie ein Symbol in eine Liste ein; löschen Sie oder kopieren Sie eine komplette Liste.
  • Arithmetische Operationen (auf Symbol-Namen).
  • Manipulation von Symbolen; prüfen Sie z.B, wenn ein Symbol eine ganze Zahl anzeigt, oder machen Sie ein Symbol lokal.
  • Eingabe/Ausgabe-Operationen
  • "Generatoren", die iterators und Filtern in der funktionellen Programmierung entsprechen. Zum Beispiel kann ein Generator eine Liste von Zahlen akzeptieren und die Liste ihrer Quadrate erzeugen. Generatoren konnten angemessen entworfene Funktionen - ausschließlich, die Adressen des Codes angemessen bestimmter Funktionen - als Argumente akzeptieren.

Geschichte

Die erste Anwendung von IPL sollte demonstrieren, dass die Lehrsätze in Principia Mathematica, die mit der Hand, von Bertrand Russell und Alfred North Whitehead mühsam bewiesen wurden, tatsächlich durch die Berechnung bewiesen werden konnten. Gemäß den Autobiografie-Modellen von Simon Meines Lebens wurde diese erste Anwendung zuerst durch die Handsimulation mit seinen Kindern als die Rechenelemente entwickelt, während man darüber geschrieben hat und Zeichen-Karten als die Register gehalten hat, die die Zustandsgrößen des Programms enthalten haben.

IPL wurde verwendet, um mehrere frühe Programme der künstlichen Intelligenz auch durch dieselben Autoren durchzuführen: der Logiktheoretiker (1956), das Allgemeine Problem Solver (1957), und ihr Computerschachprogramm NSS (1958).

Mehrere Versionen von IPL wurden geschaffen: IPL-I (nie durchgeführt), IPL-II (1957 für JOHNNIAC), IPL-III (hat kurz bestanden), IPL-IV, IPL-V (1958, für IBM 650, IBM 704, IBM 7090, viele andere. Weit verwendet), IPL-VI.

Jedoch wurde die Sprache bald durch das Lispeln versetzt, das viel stärkere Eigenschaften, eine einfachere Syntax und den Vorteil der automatischen Müll-Sammlung hatte.

Vermächtnis zur Computerprogrammierung

IPL hat wohl mehrere Programmiersprache-Eigenschaften eingeführt:

  • Listenmanipulation - aber nur Listen von Atomen, nicht allgemeine Listen
  • Eigentumslisten - aber nur wenn beigefügt, anderen Listen
  • Höherwertige Funktionen - außer dass Zusammenbau-Programmierung immer im Stande gewesen ist, mit Adressen von Funktionen zu rechnen, zu rufen; IPL war ein früher Versuch, dieses Eigentum der Zusammenbau-Sprache und auf eine Weise mit hohen Grundsätzen zu verallgemeinern
  • Die Berechnung mit Symbolen - außer dass die Symbole letter+number, nicht volle Wörter sind
  • Virtuelle Maschine

Viele dieser Eigenschaften wurden verallgemeinert, aufgeräumt, und haben sich ins Lispeln und von dort in eine breite Reihe von Programmiersprachen im Laufe der nächsten mehreren Jahrzehnte vereinigt.

Veröffentlichungen

  • Newell, A. und F.C. Shaw. "Die Logiktheorie-Maschine programmierend." Febr 1957. Verhandlungen der Gemeinsamen Westcomputerkonferenz, Seiten 230-240.
  • Newell, Allen und Fred M. Tonge. 1960. "Eine Einführung in die Informationsverarbeitungssprache V." CACM 3 (4): 205-211.
  • Newell, Allen. 1964. Information, die Sprach-V Handbuch Bearbeitet; die zweite Ausgabe. Rand Corporation [Allen Newell], Englewood Klippen, New Jersey: Prentice-Saal.
  • Samuel, Arthur L.: Programmierung von Computern, um Spiele Zu spielen. In: Fortschritte in Computern, Vol. 1, 1960, Seiten 165-192 (besonders: 171-175).
  • Allen Newell, Herbert A. Simon, Biografische Lebenserinnerungen, Nationale Akademie von Wissenschaften - schließen eine kurze Abteilung auf IPL ein.
  • Geschichte von Programmiersprachen: IPL
  • Informationsverarbeitungssprache, FOLDOC
  • http://bitsavers.org/pdf/rand/ipl/ IPL Dokumente von BitSavers.
  • http://www-formal.stanford.edu/jmc/history/lisp/node2.html Einfluss von IPL auf dem LISPELN.

Richard Rawlinson / Santa mit Muskeln
Impressum & Datenschutz