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]
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 |
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
editPortable 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
edit1958 | 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