ISWIM
ISWIM ist eine von Peter J. Landin konzipierte Programmiersprache und eine Abkürzung von »If you See What I Mean«.
ISWIM ist eine von Peter J. Landin konzipierte Programmiersprache und eine Abkürzung von »If you See What I Mean«.
Landin stellte seine Ideen auf einer Konferenz im August 1965 vor. Dieser Vortrag wurde unter dem Titel The Next 700 Programming Languages in den Communications of the ACM veröffentlicht und übte unterschwellig einen großen Einfluss auf spätere Entwicklungen aus. Der US-amerikanische Informatiker John Charles Reynolds behauptete, der Einfluss ISWIM hätte den von Algol 60 übertroffen. Tatsächlich wurde nie ein ISWIM-Compiler implementiert, während es bei Algol 60 eine Reihe von Implementierungen und Nachfolgesprachen (darunter JOVIAL, Coral 66, Simula, Algol 68, Pascal) gab.
Der Titel spielt auf die damals gezählten 700 Anwendungsfelder an, für die bereits 1700 Programmiersprachen existierten. Alle diese Sprachen unterschieden sich in vielen Details – auch in den Teilen, die nicht mit ihrem Anwendungsgebiet zu tun hatten. Nun hatte man durch Algol 60 gerade die Nützlichkeit einer klaren Struktur kennengelernt und verwandte es deshalb gerne auch für Anwendungen, für die es nicht entworfen worden war.
Landin (1965) hatte den applikativen Kern in Algol 60 beschrieben. Nun ging er umgekehrt von diesem Kern, also einem untypisierten λ-Kalkül aus. Das Ziel ist es, diesen Kern so weit wie möglich anwendbar zu machen. Eine Konsequenz ist die Freigabe der Auswertungsreihenfolge, die bei der imperativen Programmierung bekanntlich mehr als logisch nötig festgelegt wird.
Nicht angesprochen in Landins Vortrag wurde die Frage, wie ISWIM hätte erweitert werden können; er spricht allerdings von 700 Programmiersprachen und nicht von einer Programmiersprache mit 700 Erweiterungsmodulen. Tatsächlich scheint diese Frage auch erst später intensiver untersucht worden zu sein.
Ebenfalls vorausgesetzt und nicht näher diskutiert wurden die imperativen Ergänzungen.
Die Darstellung der Quelltext-Blockstruktur mittels Einrückung (Offside-Rule, Abseitsregel) in ISWIM wurde von einigen später entwickelten Programmiersprachen übernommen. Beispielsweise implementieren Haskell, Occam und Python die Abseitsregel.
Literatur
Peter J. Landin:
- A correspondance between ALGOL 60 and Church's Lambda-notation. Communication of the ACM 8, 89–101; 158–165 (1965)
- The Next 700 Programming Languages (PDF; 1,2 MB) Communications of the ACM, 9, 157–166 (1966). — enthält auch Diskussion Ersatzlink (PDF; 1,15 MB)
Sekundärliteratur:
- Matthias Felleisen, Matthew Flatt: Programming languages and lambda calculi (draft). (PDF) The University of Utah – School of Computing, 12. Juli 2006, S. Kapitel 4: ISWIM, pp. 37–48, archiviert vom am 5. Februar 2009; abgerufen am 10. August 2014 (englisch).
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.