modlisp
This paper discusses the design and implementation of MODLISP, a LISP-like language enhanced with the idea of MODes. This extension permits, but does not require, the user to declare the types of various variables, and to compile functions with the arguments declared to be of a particular type. It is possible to declare several functions of the same name, with arguments of different type (e.g. PLUS could be declared for Integer arguments, or Rational, or Real, or even Polynomial arguments) and the system will apply the correct function for the types of the arguments. The MODLISP language differs from other abstract data type languages such as CLU [Liskov & Zilles, 1974; Liskov et al, 1977] and Russell [Donahue,1977] in that it allows dynamic construction of new parametrised data types and possesses a unified semantics covering interpreted and compiled code, which can call one another at will. In short, it is LISP-like.
paper design implementation language extensibility user types variability functional argument polynomial systems abstract data type data dynamic semantic code lisp