Programming Languages and Compilers
About Me
Professor Craton
Anything you want to know?
Introductions
Name
What are you hoping to learn from this class?
Syllabus
Link
Quizzes
Given regularly at beginning and end of class
Should be easy for you
Allow me to confirm that everyone is keeping up with course material
Course Overview
Introduction
1.1 - 1.3 Why programming languages?
1.4 - 1.6 Compilation vs Interpretation
Foundations
2.1 - 2.2 Lexing (aka Tokenizing, Scanning)
2.3 - 2.5 Parsing - ASTs, Language Hierarchy
3.1 - 3.2 Binding and Lifetime
3.3 - 3.6 Scope and Closures
5 - Target Machine Architecture
Language Design
6 - Control Flow
7 - Type systems
8 - Composite Types
9 - Subroutines and Control Abstraction
Programming Paradigms
10 - Object Oriented Programming (Python)
11 - Functional Programming (JS)
12 - Declarative Programming (SQL)
Course Software
You will need access to an x64 Debian-based Linux system for several of the assignments in this class
This can be installed directly on most laptops, or you can run it in a VM
We’ll cover VM setup in the first lab