Lecture Notes: Theory (and Practice) of Programming Languages
COMP 371/471 | Department of Computer Science | Loyola University Chicago
You have reached the home of the Programming Languages course (COMP 371/471) in the Computer Science Department of Loyola University Chicago.
Welcome! Willkumme! ¡Bienvenidos/as! Benvenuti/e!
Warning
These notes are still being written, so expect a few rough edges. But we’re getting closer!
Build Status
This book is written using the Python Sphinx documentation tool. It automatically builds and deploys using GitHub Actions (a continuous integration system). All commits trigger a rebuild of the book and, if successful, a deployment to GitHub pages.
- Book Web Site
- Book PDF (Latest Relase)
github.com/lucproglangcourse/lucproglangcourse.github.io/releases/latest/download/proglang.pdf
- Book Source Code
How to Contribute
Your contributions are highly welcome! Please submit issues and pull requests.
Contents
Todo
Ensure proper structural mapping from Sphinx to LaTeX
- 1. Overview
- 2. Context and Background
- 3. The Imperative Programming Paradigm
- 4. The Object-Oriented Programming Paradigm
- 5. The Functional Programming Paradigm
- 6. Program Representation and Interpretation
- 7. The Concurrent Programming Paradigm
- 8. Summary
- 9. Appendix: Programming Language Design Principles
- 10. Appendix: Resources
- 11. Appendix: Course Software
- 12. Appendix: Course Syllabi
- 12.1. Course: COMP 371/471 Programming Languages
- 12.2. Section: 001 Fall 2024
- 12.3. Section: 001 Fall 2023
- 12.4. Section: 001 Fall 2022
- 12.5. Section: 001 Fall 2021
- 12.6. Sections: 001/002 Fall 2020
- 12.7. Section: 001 Fall 2019
- 12.8. Section: 001 Fall 2018
- 12.9. Section: 001 Spring 2018
- 12.10. Section: 001 Spring 2017
- 12.11. Detailed Course Outline
- 12.12. Key Resources
- 13. Appendix: TODO
Indices and tables
Todo
add sample projects, activities, tests, and (tiered) master list for presentations
Todo
add stuff from https://trello.com/c/kAMGZ4uf/28-add-in-next-iteration