CSci 450: Organization of Programming Languages
Fall 2017
Free Programming Language Textbooks and Tutorials
- GitHub Free Programming Books list
- BETA--a pure object-oriented language from the "Scandinavian
School" of object-oriented languages. This School originated with
Simula, the first object-oriented language.
- Ole Lehrmann Madsen, Birger Moller-Pedersen, and Kristen
Nygaard. Object-Oriented Programming in the Beta Programming
Language, ACM, 1993: [PDF book]
- Elixir
- Erlang--a concurrency-oriented functional programming
language developed in the 1980s at the Ericsson Computer Science
Laboratory but which is now available in an open-source
implementation.
- Joe Armstrong, Robert Virding, Claes Wikstrom, and Mike
Williams. Concurrent Programming in ERLANG, Second
Edition, Prentice-Hall, 1996: [Section 1
PDF]
- Fred Hebert. Learn You Some Erlang for Great Good,
No Starch Press, 2011: [HTML book]
- Forth
- Leo Brodie, Thinking Forth, ANS Forth Edition,
2004: [PDF book
page]
- Haskell
- William R. Cook. Anatomy of Programming Lanuages
(new textbook on programming language theory under development):
[HTML book]
- H. Conrad Cunningham. Notes on Functional Programming
with Haskell (notes for the CSci 555 course on Functional
Programming): [PDF notes]
- Kees Doets and Jan van Eijck. The Haskell
Road to Logic, Math and Programming, March 2004: [PDF book]
- Paul Hudak. The Haskell School of Music: From Signals to
Symphonies, Version 2.5, January 2013: [PDF
draft book]
Source code from Paul Hudak's The Haskell
School of Expression: Learning Functional Programming through
Multimedia, Cambridge University Press, 2000: [local files]
- Miran Lipovaca. Learn You a Haskell for Great
Good: [HTML
book]
- Simon Marlow. Parallel and Concurrent Programming in
Haskell: [HTML
book]
- Bryan O'Sullivan, Don Stewart, and John Goerzen. Real
World Haskell: [HTML book]
- Jonathan Tang. "Write Yourself a Scheme in 48 Hours: A Haskell
Tutorial" (writing a Scheme interpreter in Haskell): [HTML book]
- Source code from Simon Thompson's Haskell: The Craft of
Functional Programming, Third Edition, Addison Wesley, 2011:
[local files]
- Icon and Unicon
- Ralph E. Griswold and Madge T. Griswold. The Icon
Programming Language Third Edition, Peer-to-Peer
Communications, 1996, and other Icon books at Arizona:
[book
links]
- Clinton Jeffery, Shamim Mohamed, Jafar Al Gharaibeh, Ray
Pareda, and Robert Parlett. Programming with Unicon,
Second Edition, 2013: [PDF book]
- Javascript
- Marijn Haverbeke. Eloquent JavaScript: A Modern
Introduction to Programming, First Edition, No Starch Press,
February 2011:
[HTML book]
[2nd ed
preview]
- Addy Osmani. Learning JavaScript Design Patterns,
O'Reilly Media, Inc., 2014: [HTML]
- Axel Rauschmayer. Speaking JavaScript, O'Reilly
Media, Inc., 2014:
[HTML]
- Kyle Simpson. You Don't Know JS series: [
series page]
- Linda
- Nicholas Carriero and David Gelernter. How to Write
Parallel Programs: A First Course, 1992: [HTML/PDF book]
- Lisp
- Paul Graham. On Lisp: Advanced Techniques for Common
Lisp, Prentice Hall, 1993:
[free book page]
- Daniel Holden. Build Your Own Lisp (in C),
CreateSpace Independent Publishing Platform, October 2014:
[HTML]
- Doug Hoyle. Let Over Lambda--50 Years of Lisp,
Second Edition, 2013: [HTML book]
- Lua
- Fabio Mascarenhas. Programming in Lua Lecture
Notes, for a course based on Roberto Ierusalimschy's (PiL)
Programming in Lua, Third Edition, 2013.
- Lua Tutorial
- ML
- Robert Harper. Programming in Standard ML,
Carnegie Mellon University, 2011: [PDF draft]
- John Harrison. Introduction to Functional
Programming, 1996: [PS
book/slides]
- OCaml
- Yaron Minsky, Anil Madhavapeddy, and Jason Hickey. Real
World OCaml, O'Reilly Media, 2013: [PDF book]
- Prolog
- Patrick Blackburn, Johan Bos, and Kristina Striefnitz.
Learn Prolog Now, 2006-12:
[book site]
- Python
- Allen B. Downey. Think Python: How to Think Like a
Computer Scientist, Green Tea Press, 2013:
[PDF/HTML
book page]
- Ruby
- Chris Pine. Learn to Program, 2009:
[HTML book]
- why the lucky stiff (Jonathan Gillette). why's (poignant)
guide to Ruby: [Tutorial]
- Scala
- Michel Schniz and Philipp Haller. A Scala Tutorial for
Java Programmers: [PDF notes]
Original from http://www.scala-lang.org (Documentation, Manuals, A Brief
Scala Tutorial).
- Martin Odersky. Scala by Example: [PDF notes]
Original at
http://www.scala-lang.org (Documentation, Manuals, Scala By
Example).
- Martin Odersky, Lex Spoon, and Bill Venners. Programming
in Scala, First Edition, Artima, 2008: [HTML
book]
- Dean Wampler and Alex Payne. Programming Scala,
O'Reilly, 2008: [HTML book]
- Scheme
- (SICP) Harold Abelson and Gerald J. Sussman with Julie
Sussman. Structure and Interpretation of Computer
Programs, Second Edition, MIT Press, 1996:
[book site at MIT
Press] [HTML
book] [SICP ebook
site]
[local source code]
- Stephen Bloch. Picturing Programs: An Introduction to
Computer Programming (uses the Racket dialect of Scheme): [HTML/PDF book]
- Kent Dybvig The Scheme Programming Language,
Fourth Editio, MIT Press, 2009: [HTML book]
- Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and
Shriram Krishnamurthi. How to Design Programs, Second
Edition (uses the Racket dialect of Scheme): [HTML
book]
- Brian Harvey and Mathew Wright. Simply Scheme:
Introducing Computer Science, Second Edition, MIT Press,
1999: [book site]
- Kurt Normark. Functional Programming in Scheme With Web Programming
Examples, Department of Computer Science, Aalborg University,
Denmark
- Simula--the first object-oriented programming language. It
is a "Scandinavian School" object-oriented language designed for
simulation programming.
- Rob Pooley. An Introduction to Programming in
Simula, Oxford Blackwell Scientific Publications, 1987: [HTML book]
- Smalltalk--a dynamically typed, reflective, object-oriented
programming language originally designed at Xerox PARC in the 1970s.
- Andrew P. Black, Stephane Ducasse, Oscar Nierstrasz, Damien
Pollet, Damien Cassou, and Marcus Denker. Squeak by
Example: [PDF book]
- Andrew P. Black, Stephane Ducasse, Oscar Nierstrasz, and Damien
Pollet, Damien Cassou, and Marcus Denker. Pharo by
Example: [PDF book]
- Alexandre Bergel, Damien Cassou, Stephane Ducasse, and Jannik
Laval. Deep into Pharo, 2013: [PDF draft]
- Snobol4--the classic string-processing language and precursor to Icon
- R. E. Griswold, J. F. Poage, and I. P. Polonsky. The
Snobol4 Programming Language, Second Edition, Prentice-Hall,
1971: [PDF
book]
- Programming language design
- Source code for
interpreters in the the textbook: Samuel
N. Kamin. Programming Languages: An Interpreter-Based
Approach, Addison Wesley, 1990.
- Shiram Krishnamurthi. Programming Languages: Application
and Interpretation, Second Edition,
[HTML]
[PDF]
[Fall 2012
course] [Fall 2013 course]
- Simon Thompson. Type Theory and Functional
Programming, Addison-Wesley, 1991: [book site]
,
UP to CSci 450/503 lecture notes document?
Copyright © 2017, H. Conrad Cunningham
Last modified: Tue Aug 1 15:20:43 CDT 2017