ISWIM

from Wikipedia, the free encyclopedia

ISWIM is a programming language conceived by Peter J. Landin and an abbreviation of "If you See What I Mean".

Landin presented his ideas at a conference in August 1965. This lecture was published under the title The Next 700 Programming Languages in the Communications of the ACM and subliminally exerted a great influence on later developments. The American computer scientist John Charles Reynolds claimed that ISWIM's influence exceeded that of Algol 60 . In fact, an ISWIM compiler was never implemented, while Algol 60 had a number of implementations and follow-up talks (including JOVIAL , Coral 66 , Simula , Algol 68 , Pascal ).

The title alludes to the 700 fields of application that were counted at the time and for which 1700 programming languages ​​already existed. All of these languages ​​differed in many details - also in the parts that had nothing to do with their area of ​​application. Now, through Algol 60, they had just learned about the usefulness of a clear structure and were therefore happy to use it for applications for which it was not designed.

Landin (1965) described the applicative core in Algol 60. Now he started from this core, that is, an untyped λ-calculus . The goal is to make this core as applicable as possible. One consequence is the release of the evaluation sequence, which is known to be more than logically necessary in imperative programming.

The question of how ISWIM could have been expanded was not addressed in Landin's lecture; however, he speaks of 700 programming languages ​​and not of a programming language with 700 expansion modules. In fact, this question seems to have been examined more intensively only later.

The imperative additions were also assumed and not discussed in more detail.

The representation of the source code block structure by means of indentation (offside rule) in ISWIM was adopted by some programming languages ​​developed later. For example, Haskell , Occam, and Python implement the offside rule.

literature

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). - also contains discussion replacement link (PDF; 1.15 MB)

Secondary literature: