"The first Fortran compiler for UNIX, f77, was written in Lisp"

I was very surprised by this - I would have expected Fortran always to be written the hard way, in assembly language.

The quote is from
A Little History
a page from Teach Yourself Lisp by Julian Padget at Bath University, here in the UK. It mentions Cambridge Lisp, from 1976 or so.

And I landed on it idly looking for information about early adoption and implementation of Lisp in the UK - seeing a lot of links to American experience. But I should have looked at the CHM’s Software Preservation Project more closely:
History of LISP
because it does link to efforts at Edinburgh, Oxford, Cambridge - as well as efforts in wider Europe.

Which led me to the short paper “Three Uncommon Lisps

Between the first Standard Lisp document and the second, it was realised that making Standard Lisp a compatibility definition was too inflexible and that the document constituted a good basis for writing new Lisp systems. Subsequently various implementations of Standard Lisp were built (SLISP/360 which was based on Stanford Lisp for the IBM1360 and Standard Lisp for PDP-10, PDP-20 and various Burroughs machines) and still run in many parts of the world. SLISPl360, for instance, is widely used to support Reduce in the eastern bloc.

I find this interesting:

A Lisp system has a more complex run-time system than many other languages and so porting it to a new operating environment is potentially a harder task than for many other languages. It seems that three phases can be identified in the writing of systems: assembler based, high-level language based and meta-circular based. The three systems under consideration offer an example from each of these phases, which is a direct consequence of the times at which they were written. LispIVM has a large proportion written in assembler, with the rest in Lisp, whilst Cambridge Lisp has a large proportion written in a high-level language with the rest in Lisp and Portable Standard Lisp has a very small number of functions written in C and everything else in Lisp. In fact, Standard Lisp offers examples of each situation (PDP-10 Standard Lisp was written in MACRO-10, Burroughs 1700 Standard Lisp was written in MBALM and Portable Standard Lisp in Lisp (as described above)).

I see too that Bath - in 1982 - made the Bath Concurrent LISP Machine described as a “general purpose multiprocessor designed for research in symbolic computation and expert systems.” It’s powered by a hexlet of 68000s, communicating through small shared memories, each connected to 3 neighbours.

I certainly set off on this trail after a recent post on here, but I can’t find it now to link back…



I see no Lisp here.


1 Like

Feldman interview. Talks a bit about Lisp, and a lot about Fortran and f77.


This is a Fortran (77?) compiler, or translator, written in Maclisp. But it’s pretty far from Unix.


Interesting findings anyhow - thanks!

Indeed so, from the man page:

The compiler and library are written entirely in C.
The compiler generates C compiler intermediate code.