Language Design - racket/racket GitHub Wiki
Resources on language design
Note: I’ve tried to focus this on design as a distinct activity - @spdegabrielle
- Growing a Language by Guy Steele (video) The remarks on language design begins at the 40 minute mark. (If you haven't seen it before, don't skip the beginning of the talk)
- Brian Kernighan on Language Design (video)
History of Programming Languages
- The first History of Programming Languages Conference
- HOPL-II: The second ACM SIGPLAN conference on History of programming languages
- HOPL III: Proceedings of the third ACM SIGPLAN conference on History of programming languages
- HOPL IV: History of Programming Languages
- HOPL IV: History of HOPL
Other histories
- History of Lisp https://doi.org/10.1145/800025.1198360
- A history of Erlang by Joe Armstrong
- Early History of Smalltalk by Alan Kay
- The Design of APL The Evolution of APL
- A history of Haskell: being lazy with class
- Modula-2 and Oberon by Niklaus Wirth
- A history of ALGOL 68 by C. H. Lindsey
Need to find/add resources on the design of: Java, Javascript, C, C++, and Prolog. (and any others deemed notable)
Lisp
- Olin Shivers account of 'T'(a lisp) http://www.paulgraham.com/thist.html
- Accounts of Lisp development: http://www.nhplace.com/kent/Papers/cl-untold-story.html
Special Interest Group on Programming Languages
The ACM Special Interest Group on Programming Languages (SIGPLAN) explores programming language concepts and tools, focusing on design, implementation, practice, and theory. Its members are programming language developers, educators, implementers, researchers, theoreticians, and users. https://www.acm.org/special-interest-groups/sigs/sigplan
ACM Programming Usability SIG meeting 2016
http://www.cs.cmu.edu/~NatProg/programminglanguageusability/ 2016 meeting notes: http://tinyurl.com/ProgLangUsabilitySig (Google docs)
Books
- Programming Languages: Application and Interpretation by Shriram Krishnamurthi (see the PLAI Typed Language
#lang plai-typed
) - Essentials of Programming Languages by Daniel P. Friedman and Mitchell Wand (Publisher)
- Design Concepts in Programming Languages by Franklyn Turbak, David Gifford and Mark Sheldon
- Programming Language Pragmatics by Michael L. Scott
- Practical Foundations for Programming Languages by Professor Robert Harper
- Principles of Programming Languages: Design, Evaluation, and Implementation by Bruce J. MacLennan
- Advanced Programming Language Design by Raphael Finkel
- Lisp in Small Pieces by Christian Queinnec and covers 'semantics and the implementation of the whole Lisp family of languages, namely Lisp, Scheme and related dialects. It describes 11 interpreters and 2 compilers'
- Structure and Interpretation of Computer Programs - teaches computer science by teaching students how to implement interpreters. (see also the Racket
#lang sicp
designed to go with the book) - Concepts, Techniques, and Models of Computer Programming (2004) by Peter Van Roy
Smalltalk, an influential language design: https://archive.org/details/byte-magazine-1981-08
http://www.cs.nott.ac.uk/~pszgmh/123.pdf
‘Crash Course on Notation in Programming Language Theory’ by Jeremy Siek http://siek.blogspot.com/2012/07/crash-course-on-notation-in-programming.html
‘A practitioner’s guide to reading programming languages papers’ by Adrian Colyer https://blog.acolyer.org/2018/01/26/a-practitioners-guide-to-reading-programming-languages-papers/