Working through SICP as a means to start programming language studies.
On hiatus and will only be worked on occassionally until January 2019
http://mitpress.mit.edu/sites/default/files/sicp/index.html
It has sample projects and teaching recommendations.
https://groups.csail.mit.edu/mac/users/gjs/6.945/
Additional Projects and reading material.
As a prerequisite, it mentions 6.034 (an MIT AI Course). The open courseware version is at:
I really liked the first lecture. It might be interesting to go through part of this course using Scheme (lisp), which was developed in part for AI research.
Some resources for the AI course:
https://ai6034.mit.edu/wiki/index.php?title=Main_Page
http://www.billthelizard.com/2009/10/sicp-challenge.html
https://eli.thegreenplace.net/tag/sicp
Some directly related to SICP and Scheme, and others are for exploring more programming languages, or study programming languages as a subject. It's listed in no particular order.
Essentials of Programming Languages - Daniel P Friedman, Mitchell Wand, Christopher T Haynes
Lisp in Small Pieces - Christian Queinnec, trans. Kathleen Callaway
The Little Schemer - Daniel P Friedman, Matthias Felleisen
The Little Prover - Daniel P Friedman et al.
Concepts, Techniques, and Models of Computer Programming - Peter Van Roy and Seif Haridi (https://www.edx.org/course/paradigms-computer-programming-louvainx-louv1-1x-1) (https://www.edx.org/course/paradigms-computer-programming-louvainx-louv1-2x-1)
Structure and Interpretation of Classical Mechanics https://mitpress.mit.edu/sites/default/files/titles/content/sicm_edition_2/book.html
Smalltalk Best Practice Patterns
Ruby Under a Microscope
http://web-artanis.com/scheme.html
https://www.wespiser.com/writings/wyas/home.html
https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours
https://homotopytypetheory.org/
Programming Languages: An Interpreter-Based Approach
Advanced Compiler Design and Implementation
Optimizing Compilers for Modern Architectures: A Dependence-based Approach - Randy Allen, Ken Kennedy
Advanced Compiler Design and Implementation - Steven Muchnick
Engineering a Compiler - Keith Cooper, Linda Torczon
Evan Schaffer and Mike Wolf. The Unix Shell as a Fourth-Generation Language
An Introduction to Functional Programming Through Lambda Calculus - Greg Michaelson
https://www.youtube.com/watch?v=3N__tvmZrzc (Programming Languages)
https://www.coursera.org/learn/programming-languages
http://lambda-the-ultimate.org/
https://en.wikipedia.org/wiki/Backus–Naur_form
https://www.cs.cmu.edu/~crary/819-f09/ (Classical paper repo)
http://www.drdobbs.com/architecture-and-design/so-you-want-to-write-your-own-language/240165488
http://stackoverflow.com/questions/4014267/how-do-i-design-and-implement-a-programming-language
http://matt.might.net/articles/implementing-a-programming-language/
http://hackingoff.com/compilers/regular-expression-to-nfa-dfa
http://online.stanford.edu/course/automata-theory-self-paced
https://web.stanford.edu/class/archive/cs/cs143/cs143.1128/
https://www.infoq.com/interviews/Steele-Interviews-John-McCarthy
http://www.impredicative.com/ur/
http://theorangeduck.com/page/you-could-have-invented-parser-combinators
https://en.wikipedia.org/wiki/Chomsky_hierarchy
https://en.wikipedia.org/wiki/Polish_notation
https://www.youtube.com/watch?v=KTJs-0EInW8&feature=em-subs_digest-wl - GROK
http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html
Udacity Programming Language Course
Paul Graham's Books and Blog
https://www.gnu.org/software/mit-scheme/