Portable Standard Lisp
Paradigms | Multi-paradigm: functional, procedural, object-oriented, reflective, meta |
---|---|
Family | Lisp |
Developers | University of Utah Hewlett-Packard Zuse Institute Berlin |
First appeared | 1980 |
Typing discipline | Dynamic, strong |
Scope | Lexical, optional dynamic |
Implementation language | Lisp, assembly language |
Platform | 68000, DECSYSTEM-20, Cray-1, VAX |
License | BSD |
Website | user |
Influenced by | |
Lisp, Standard Lisp, Portable Lisp Compiler | |
Influenced | |
Reduce |
Portable Standard Lisp (PSL) is a programming language, a dialect of the language Lisp. PSL was inspired by its predecessor, Standard Lisp and the Portable Lisp Compiler. It is tail-recursive, late binding (or dynamically bound), and 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 several hardware and operating system computing platforms, including Motorola 68000 series, DECSYSTEM-20s, Cray-1s, VAX, and many others. Today, PSL is mainly developed by and available from Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB). Its main modern use is as the underlying language for implementations of Reduce.[citation needed]
Like most older Lisps, in the first step, PSL compiles Lisp code to LAP code, which is another cross-platform language. However, where older lisps mostly compiled LAP directly to assembly language 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 are as portable as C in principle, which is very portable. The compiler was written in PSL or a more primitive dialect named System Lisp or 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. Some later releases had a compatibility package for Common Lisp, but this is not sustained in the modern versions.
Criticism
[edit]Portable Standard Lisp has fewer features than other Lisps, such as Common Lisp, and some people found it unpleasant to use. Richard P. Gabriel wrote in his popular essay Lisp: Good News, Bad News, How to Win Big,[2] "the third most standard Lisp was Portable Standard Lisp, which ran on many machines, but very few people wanted to use it;".
Timeline
[edit]1958 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LISP 1, 1.5, LISP 2(abandoned) | |||||||||||||||
Maclisp | |||||||||||||||
Interlisp | |||||||||||||||
MDL | |||||||||||||||
Lisp Machine Lisp | |||||||||||||||
Scheme | R5RS | R6RS | R7RS small | ||||||||||||
NIL | |||||||||||||||
ZIL (Zork Implementation Language) | |||||||||||||||
Franz Lisp | |||||||||||||||
Common Lisp | ANSI standard | ||||||||||||||
Le Lisp | |||||||||||||||
MIT Scheme | |||||||||||||||
XLISP | |||||||||||||||
T | |||||||||||||||
Chez Scheme | |||||||||||||||
Emacs Lisp | |||||||||||||||
AutoLISP | |||||||||||||||
PicoLisp | |||||||||||||||
Gambit | |||||||||||||||
EuLisp | |||||||||||||||
ISLISP | |||||||||||||||
OpenLisp | |||||||||||||||
PLT Scheme | Racket | ||||||||||||||
newLISP | |||||||||||||||
GNU Guile | |||||||||||||||
Visual LISP | |||||||||||||||
Clojure | |||||||||||||||
Arc | |||||||||||||||
LFE | |||||||||||||||
Hy | |||||||||||||||
Chialisp |
References
[edit]- ^ a b Gabriel, Richard P. (May 1985). Performance and evaluation of Lisp systems (PDF). Cambridge, Massachusetts: MIT Press; Computer Systems Series. pp. 75, 294. ISBN 0-262-07093-6. LCCN 85-15161.
- ^ Gabriel, Richard P. "Lisp: Good News, Bad News, How to Win Big". Dreamsongs. Retrieved 2019-04-25.
External links
[edit]- Official website, Portable Utah Standard Lisp