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[]
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[]
1955 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LISP 1, 1.5, LISP 2(abandoned) | ||||||||||||||
Maclisp | ||||||||||||||
Interlisp | ||||||||||||||
MDL (programming language) | ||||||||||||||
Lisp Machine Lisp | ||||||||||||||
Scheme | R5RS | R6RS | R7RS small | |||||||||||
NIL | ||||||||||||||
Franz Lisp | ||||||||||||||
Common Lisp | ||||||||||||||
Le Lisp | ||||||||||||||
T | ||||||||||||||
Chez Scheme | ||||||||||||||
Emacs Lisp | ||||||||||||||
AutoLISP | ||||||||||||||
PicoLisp | ||||||||||||||
EuLisp | ||||||||||||||
ISLISP | ||||||||||||||
OpenLisp | ||||||||||||||
PLT Scheme | Racket | |||||||||||||
GNU Guile | ||||||||||||||
Visual LISP | ||||||||||||||
Clojure | ||||||||||||||
Arc | ||||||||||||||
LFE | ||||||||||||||
Hy |
References[]
- ^ Jump up to: 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[]
- Official website, Portable Utah Standard Lisp
This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.
- Concurrent programming languages
- Dynamically typed programming languages
- Functional languages
- Lisp programming language family
- Multi-paradigm programming languages