A critique of DIN Kernel Lisp is presented which argues for greater emphasis on implementation efficiency and language cleanliness, and a greater emphasis onParallel andpersistent Lisp environments. Specific recommendations include standardizing the S-expression rather than the character form of a program, using lexical scoping and shadowing to enhance subsystem modularity, relying on macros and compiler-macros for more pleasant syntax and greater modularity, requiring immutable/functional bindings, strings, vectors and lists; using object-oriented capabilities to build basic capabilities-e.g., generic arithmetic, streams and pathnames, relying ondefstruct instead ofdefclass, and standardizing ondefmethod for all function definitions. A virtual/synthetic class mechanism is presented to solve certain technical problems analogous to those solved by the “virtual function” mechanism of C++. Finally, we recommend the inclusion offutures as DKLisp's fundamental mechanism for the introduction of multiple parallel threads of computation.
Read full abstract