dict.org

The DICT Development Group


Search for:
Search type:
Database:

Database copyright information
Server information


1 definition found
 for ISWIM
From The Free On-line Dictionary of Computing (30 December 2018) :

  ISWIM
  
      (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)">(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)
  

Contact=webmaster@dict.org Specification=RFC 2229