ISWIM

from The Free On-line Dictionary of Computing (8 July 2008)
ISWIM

   <language> (If You See What I Mean) An influential but
   unimplemented computer programming language described in the
   article by {Peter J. Landin} cited below.  Landin attempted to
   capture all known programming language concepts, including
   {assignment} and control operators such as {goto} and
   {coroutines}, within a single {lambda calculus} based
   framework.

   ISWIM is an {imperative language} with a functional core,
   consisting of {sugared} {lambda calculus} plus {mutable
   variables} and {assignment}.  A powerful control mechanism,
   Landin's {J operator}, enables capture of the current
   {continuation} (the {call/cc} operator of {Scheme} is a
   simplified version).  Being based on lambda calculus ISWIM had
   {higher order functions} and {lexically scoped} variables.

   The {operational semantics} of ISWIM are defined using
   Landin's {SECD machine} and use {call-by-value} ({eager
   evaluation}).  To make ISWIM look more like mathematical
   notation, Landin replaced {ALGOL}'s semicolons and begin end
   blocks with the {off-side rule} and scoping based on
   indentation.

   An ISWIM program is a single {expression} qualified by "where"
   clauses (auxiliary definitions including equations among
   variables), conditional expressions and function definitions.
   With {CPL}, ISWIM was one of the first programming languages
   to use "where" clauses.

   New {data types} could be defined as a (possibly recursive)
   {sum of products} like the {algebraic data types} found in
   modern functional languages.  ISWIM variables were probably
   {dynamically typed} but Landin may have planned some form of
   {type inference}.

   Concepts from ISWIM appear in Art Evan's {PAL} and John
   Reynold's {Gedanken}, Milner's {ML} and purely functional
   languages with lazy evaluation like {SASL}, {Miranda} and
   {Haskell}.

   ["The Next 700 Programming Languages"
   
(http://www.cs.utah.edu/~wilson/compilers/old/papers/p157-landin.pdf),
   P.J. Landin, CACM 9(3):157-166, Mar 1966].

   (2007-03-20)
    

[email protected]