\ˈɪswɪm], \ˈɪswɪm], \ˈɪ_s_w_ɪ_m]\
Definitions of ISWIM
Sort: Oldest first
(If You See What I Mean) An influential butunimplemented computer programming language described in thearticle by Peter J. Landin cited below. Landin attempted tocapture all known programming language concepts, includingassignment and control operators such as goto andcoroutines, within a single lambda calculus basedframework.ISWIM is an imperative language with a functional core,consisting of sugared lambda calculus plus mutablevariables and assignment. A powerful control mechanism,Landin's J operator, enables capture of the currentcontinuation (the call/cc operator of Scheme is asimplified version). Being based on lambda calculus ISWIM hadhigher order functions and lexically scoped variables.The operational semantics of ISWIM are defined usingLandin's SECD machine and use call-by-value (eagerevaluation). To make ISWIM look more like mathematicalnotation, Landin replaced ALGOL's semicolons and begin endblocks with the off-side rule and scoping based onindentation.An ISWIM program is a single expression qualified by "where"clauses (auxiliary definitions including equations amongvariables), conditional expressions and function definitions.With CPL, ISWIM was one of the first programming languagesto use "where" clauses.New data types could be defined as a (possibly recursive)sum of products like the algebraic data types found inmodern functional languages. ISWIM variables were probablydynamically typed but Landin may have planned some form oftype inference.Concepts from ISWIM appear in Art Evan's PAL and JohnReynold's Gedanken, Milner's ML and purely functionallanguages with lazy evaluation like SASL, Miranda andHaskell.["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].
By Denis Howe