Portable Standard Lisp

Portable Standard Lisp (PSL) is a tail-recursive dynamically bound dialect of Lisp inspired by its predecessor, Standard Lisp and the Portable Lisp Compiler. It was developed by researchers at the University of Utah in 1980, which released PSL 3.1; development was handed over to developers at Hewlett-Packard in 1982 who released PSL 3.3 and up[1]. Portable Standard Lisp was available as a kit containing a screen editor, a compiler, and an interpreter for the 68000 processor architecture, DEC-20s, CRAY-1s, and the VAX architecture (among many others). Today, PSL is mainly developed by and available from Konrad-Zuse-Zentrum für Informationstechnik Berlin. Its main modern use is as underlying language for implementations of Reduce.

Like most older lisps, PSL in the first step compiles Lisp to LAP code, which is a platform independent language in its own. However, where older lisps mostly compiled LAP directly to assembler or some architecture dependent intermediate, PSL compiles the LAP to C code, which would run in a virtual machine language; so programs written in it in principle are as portable as C itself, which is very portable. The compiler itself was written in PSL or a more primitive dialect dubbed "System Lisp"/"SYSLISP" as "an experiment in writing a production-quality Lisp in Lisp itself as much as possible, with only minor amounts of code written by hand in assembly language or other systems languages"[1], so the whole ensemble could bootstrap itself, and improvements to the compiler improved the compiler itself as well. Some later releases had a compatibility package for Common Lisp, but this is not sustained in the modern versions.

Criticism

Portable Standard Lisp is not as full of features as e.g. Common Lisp, and some people found it not very pleasant to use. Richard P. Gabriel wrote in his popular essay Lisp: Good News, Bad News, How to Win Big, "the third most standard Lisp was Portable Standard Lisp, which ran on many machines, but very few people wanted to use it;"

References

  1. ^ a b pg 75/294 of Gabriel 1985

External links

This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.