Programming languages
UNIX featured use of multiple high-level programming languages. As development went on, more of the code was written in a high level programming language over time. You can view this evolution and witness C slowly take over in the source code video.
Although not an easy feat, UNIX eventually enjoyed portability in its implementation using mostly high level languages. Namely, the C programming language was eventually used to implement most of UNIX and it's various utilities, rather than an assembler language.
All UNIX users will encounter a shell language, as it is typically the main interface to the OS.
General
The code samples from Kernighan's talks tend to use C and AWK.
- 1974: The Elements of Programming Style (PDF) (2e PDF)
- by Brian W. Kernighan and Phillip James Plaugher
- title refers to William Strunk's The Elements of Style (1918)
- 1992: Foundations of Computer Science (TOC)
- by Al Aho and Jeff Ullman
- 1999: The Practice of Programming
- by Brian W. Kernighan and Rob Pike
- view Table of contents
- 2004: Languages, Levels, Libraries, and Longevity
- written by John Mashey
- covers computer language development at Bell Labs
- 2010: Computation and Computational Thinking
- by Al Aho
- 2012: Concurrency is not parallelism (slides)
- by Rob Pike in regards to Go
- 2015: Bell Lab's Role in Programming Languages and Algorithms (slides)
- by Al Aho
- 2015: Successful Language Design
- by Brian Kernighan
- 2016: Software, Computation and Models of Computation
- by Al Aho
- 2017: Elements of Programming Style
- by Brian Kernighan
- a 1hr+ presentation covering topics presented in the book
- 2017: Associative Arrays
- by Brian Kernighan
- 10 minute
Computerphile
episode
- 2019: Unix 50, a 2-day event held by (Nokia) Bell Labs at Murray Hill, NJ
- Unix Today and Tomorrow: The Languages
- presentations by Brian Kernighan and Bjarne Stroustrup, followed by 3 Nokia Bell Labs staff members, the latter 2 being largely unrelated
- Unix Today and Tomorrow: The Languages
Influences
A number of ideas from people working outside of the Bell System had an influence on, or overlap with ideas from the developers of UNIX.
- 1968: Go To Statement Considered Harmful (HTML) (Early HTML)
- 1974: Structured Programming with go to Statements
- 1978: Communicating Sequential Process
- by Tony Hoare
- 1985: Communicating Sequential Processes
- by Tony Hoare
- Extended book form of 1978 paper. Read more about this book.