ISWIM

ISWIM ist eine abstrakte Computerprogrammiersprache (oder eine Familie von Programmiersprachen) ausgedacht von Peter J. Landin und hat zuerst in seinem Artikel, Den Folgenden 700 Programmiersprachen beschrieben, die in den Kommunikationen des ACM 1966 veröffentlicht sind. Das Akronym tritt ein, "Wenn Sie Sehen, Was ich" Vorhabe (auch hat gesagt, eingetreten zu sein, "ich Sehe, Was Sie Vorhaben", aber ISWYM war mistyped als ISWIM).

Obwohl nicht durchgeführt es sich sehr einflussreich in der Entwicklung von Programmiersprachen, besonders funktionellen Programmiersprachen wie SASL, Miranda, ML, Haskell und ihre Nachfolger und dataflow Programmiersprachen wie Klarer erwiesen hat.

Design

ISWIM ist eine befehlende Sprache mit einem funktionellen Kern, aus einem syntaktischen sugaring der Lambda-Rechnung bestehend, zu der veränderliche Variablen und Anweisung und ein starker Kontrollmechanismus — der J Maschinenbediener hinzugefügt werden. Wenn er auf der Lambda-Rechnung basiert, hat ISWIM höhere Ordnungsfunktionen und lexikalisch scoped Variablen.

Die betriebliche Semantik von ISWIM wird mit der SECD Maschine von Landin definiert und verwendet Anruf durch den Wert, der eifrige Einschätzung ist. Eine Absicht von ISWIM war, mehr mathematischer Notation ähnlich zu sein, so hat Landin die Strichpunkte des Algols zwischen Behauptungen und Blöcken aufgegeben und hat sie durch die Abseitsregel und auf der Einrückung gestützten scoping ersetzt.

Ein notationally unterscheidendes Merkmal von ISWIM ist sein Gebrauch wo Klauseln. Ein ISWIM Programm ist ein einzelner Ausdruck, der durch "wo" Klauseln (Hilfsdefinitionen einschließlich Gleichungen unter Variablen), bedingte Ausdrücke und Funktionsdefinitionen qualifiziert ist. Mit CPL war ISWIM eine der ersten Programmiersprachen, "um wo" Klauseln zu verwenden.

Eine bemerkenswerte semantische Eigenschaft war die Fähigkeit, neue Datentypen, als (vielleicht rekursiv) Summe von Produkten zu definieren - das wurde mit einer etwas wortreichen Stil-Beschreibung der natürlichen Sprache getan, aber abgesondert von der Notation beläuft sich genau auf die algebraischen auf modernen funktionellen Sprachen gefundenen Datentypen. ISWIM Variablen hatten ausführliche Typ-Behauptungen nicht, und es scheint wahrscheinlich (obwohl nicht ausführlich festgesetzt in der 1966-Zeitung), dass Landin die Sprache beabsichtigt hat, die wie LISPELN und verschieden vom Algol dynamisch zu tippen ist; aber es ist auch gerade möglich, dass er im Sinn gehabt hat, um eine Form der Typ-Schlussfolgerung zu entwickeln.

Durchführungen und Ableitungen

Kein direkter implemention von ISWIM wurde versucht, aber der FREUND von Art Evan, und Gedanken von John C. Reynolds hat die meisten Konzepte von Landin einschließlich starker Operationen der Übertragung der Kontrolle gewonnen. Beide von diesen wurden dynamisch getippt. Der ML von Milner kann gleichwertig zu mir ohne den J Maschinenbediener und mit der Typ-Schlussfolgerung betrachtet werden.

Eine andere Linie des Abstiegs von ISWIM soll die befehlenden Eigenschaften (Anweisung und der J Maschinenbediener) das Verlassen einer rein funktionellen Sprache abziehen. Es wird dann möglich, auf die faule Einschätzung umzuschalten. Dieser Pfad hat zu Programmiersprachen SASL, KRC (Kent Recursive Calculator), Hoffnung, Miranda, Haskell, und Sauber geführt.

  • P. J. Landin Die Folgenden 700 Programmiersprachen. CACM 9 (3):157-65, März 1966.
  • Kunstevans. FREUND — eine Sprache hat entwickelt, um Programmierlinguistik zu unterrichten. Verhandlungen ACM Nationale Konferenz 1968.
  • John C. Reynolds. GEDANKEN: Eine einfache typeless Sprache, die funktionelle Datenstrukturen und Koroutinen erlaubt. Argonne Nationaler Laborseptember 1969.
  • Gordon Plotkin (1975). Rufen Sie namentlich, rufen Sie - durch den Wert und die Lambda-Rechnung.
  • Mirjana Ivanović, Zoran Budimac. Eine Definition einer ISWIM ähnlichen Sprache über das Schema. Benachrichtigungen von ACM SIGPLAN, Band 28, April 1993 Nr. 4.

Preston Manning / Syndrom von Möbius
Impressum & Datenschutz