Classical Computer Science Texts

Most of the texts listed here are rather lengthy. That’s why I always tried to offer a PDF version, if available.

Last updated: 02006-05-02

Philip S. Abrams
An APL Machine 1970
F.E. Allen
A Technological Review of the FORTRAN I Compiler 1982
John W. Backus
Can Programming Be Liberated from the von Neumann Style? 1978
The IBM 701 Speedcoding System 1954
The history of FORTRAN I, II and III 1978
John W. Backus
    R.J. Beeber
    S. Best
    R. Goldberg
    L.M. Haibt
    H.L. Herrick
    R.A. Nelson
    D. Sayre
    P.B. Sheridan
    H.J. Stern
    I. Ziller
    R.A. Hughes
    R. Nutt
The FORTRAN automatic coding system 1957
Henry Baker
Henry Baker’s Archive of Research Papers
Sergey Brin
    and Lawrence Page
The Anatomy of a Large-Scale Hypertextual Web Search Engine
Frederic P. Brooks, Jr.
No Silver Bullet: Essence and Accidents of Software Engineering
Vannevar Bush
As We May Think
Eugene Charniak
Bayesian Networks without Tears
Edgar F. Codd
A Relational Model of Data for Large Shared Data Banks (alt) 1970
Jack Crenshaw
Let’s Build a Compiler 1988-1995
Marc Damashek
Gauging Similarity via N-Grams: Language-Independent Sorting, Categorization, and Retrieval of Text 1995
Edsger W. Dijkstra
Go To Statement Considered Harmful
Notes On Structured Programming
On-the-fly garbage collection: An exercise in cooperation 1978
Why American Computer Science seems incurable
More at: In Pursuit of Simplicity—the manuscripts of Edsger W. Dijkstra U of Texas
Ghosts of Xanadu
R. Kent Dybvig
The Scheme Programming Language Second Edition
Douglas C. Engelbart
Augmenting Human Intellect: A Conceptual Framework 1962
Richard P. Gabriel
Lisp: Good News, Bad News, How to Win Big
Worse Is Better
Back to thr Future> Is Worse (Still) Better?
Acceptance Models (How Winners Win)
Whither Software
David Gelernter
The Second Coming
Paul Graham
Beating the Averages
The Other Road Ahead
C.A.R. Hoare
An axiomatic basis for computer programming
Monitors: An Operating System Structuring Concept
Hints on Programming Language Design 1973
The Emperor’s Old Clothes 1980
Communicating Sequential Processes 1985
John Hughes
Why Functional Programming Matters
Kenneth E. Iverson
Programming notation in systems design IBM Systems Journal 2-2, p.117 (1963) 2nd
w/ A.D.Falkoff, A formal description of SYSTEM/360 IBM Systems Journal 3-2/3, p.198 (1964)
w/ A.D.Falkoff and E.H.Sussenguth The Design of APL IBM Systems Journal 17-4, p.324 (1973)
Math for The Layman
Notation as a Tool of Thought
Computers and Mathematical Notation alternate
A personal view of APL IBM Systems Journal 30-4, p.582 (1991) 2nd

Many other texts are available from the ACM Digital Library and via IBM Technical Journals Cumulative Index.
Alan Kay
The Early History Of Smalltalk
David C. Keenan
To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction
Brian W. Kernighan
Why Pascal is Not My Favorite Prigramming Language
Donald E. Knuth
Computer Programming as an Art 1974
All Questions Answered 2001
Peter J. Landin
The next 700 programming languages 1965
J.C.R. Licklider
Man-Computer Symbiosis / The Computer as a Communications Device
W.A. Martin
The MACSYMA System
John McCarthy
Recursive Functions of Symbolic Expressions and their Computation by Machine (Part I) 1960
LISP 1.5 Programmer’s Manual 1962
LISP 1.5 Programmer’s Manual 1961 Draft
Lisp I Manual 1960
Lisp—Notes on its Past and Future 1980
History of Lisp
Towards a Mathematical Science of Computation 1996
D.B. McIntyre
Language as an intellectual tool: From hieroglyphics to APL
Don Mitchell
LISP 1.5 Interpreter for the VAX
w/ Michael Merritt A Distributed Algorithm for Deadlock Detection and Resolution 1984 (PDF)
Charles H. Moore
FORTH—A Language for Interactive Computing 1970
Thoughtful Programming and Forth
Ted Nelson
I don’t buy in
Jacob Nielsen
The Anti-Mac Interface
Peter Norvig
Teach Yourself Programming in Ten Years 2001
John K. Ousterhout
Scripting: Higher Level Programming for the 21st Century
Alan J. Perlis
Epigrams on Programming 1982
Kent M. Pitman
More Than Just Words—Lambda, the Ultimate Political Party 1994
“Parenthetically Speaking”, a collection of essays from the 1990s
Gordon Plotkin
Call-by-name, call-by-value, and the lambda calculus
John C. Reynolds
Definitional interpreters for higher-order programming languages
Dennis Ritchie
    and Ken Thompson
The UNIX Time-Sharing System
R.L. Rivest,
    A. Shamir,
    and L. Adleman
A Method for Obtaining Digital Signatures and Public-Key Cryptosystems
Phil Salin
Freedom of Speech in Software 1991
Jürgen Schmidhuber
Computable Universes & Algorithmic Theory of Everything
Claude Shannon
A Mathematical Theory of Communication
P.B. Sheridan
The arithmetic translator-compiler of the IBM FORTRAN automatic coding system 1959
Jonathan M. Sobel
    Daniel P. Friedman
An Introduction to Reflection-Oriented Programming 1996
Guy Lewis Steele Jr.
The Definition and Implementation of a Computer Language based on constraints
Growing a Language
Common Lisp the Language, 2nd Edition
Ivan E. Sutherland
Sketchpad: A man-machine graphical communication system 1963 reprint
Ken Thompson
Unix and Beyond 1999
Alan M. Turing
On Computable Numbers, with an Application to the Entscheidungsproblem
Vernor Vinge
Technological Singularity 1993, 2003
Paul R. Wilson
An Introduction to Scheme and its Implementation
Niklaus Wirth
On the Design of Programming Languages
A Plea For Lean Software
Lotfi A. Zadeh
From Computing with Numbers to Computing with Words—From Manipulation of Measurements to Manipulation of Perceptions 1999
Jacob Ziv
   and Abraham Lempel
A Universal Algorithm for Sequential Data Compression
Konrad Zuse
Der Plankalkül (engl.)
Digital Physics

A large collection of texts can be found at the MIT AI lab pubs ONLINE bibliography. There is also PLT Online, and if you don’t find what you are looking for, then try CiteSeer or have a look at the IEEE and ACM digital libraries. An ongoing discussion may also be found at Lambda the Ultimate.
PLT Online also is a very good site covering Programming language theory texts online.

Copyright ©2001-2006 by Eberhard Lutz. All rights reserved.