CIS505 Lecture Notes: Introduction to Programming-Language Paradigms
Week 1
Chapter 0: Introduction to language paradigms
Chapter 1: Grammars, trees, and interpreters
Notes on Python's lists and dictionaries
(read these before you code)
PythonTutor
: a great visualization tool for the Python virtual machine
Week 2
Chapter 2: Two virtual machines for imperative languages
Chapter 5: Component extension by abstraction, parameterization, and qualification
Week 3
Chapter 6: The imperative paradigm: From an assignment core to Java
Solution to in-class exercise
Weeks 4 and 5
Chapter 7: The functional paradigm: From an arithmetic core to ML
Solution to in-class exercise
Folder of SML examples
David Toman's quick summary of SML
Week 6
Solution to in-class exercise on summing a list:
pdf
|
txt
Solution to in-class exercise on selecting the smallest int:
html
|
txt
Chapter 10: The Lambda Calculus
Solution to in-class exercises:
html
|
txt
zipped folder of lambda-calculus reducer
|
README file
|
folder of individual files
Weeks 7-9
Chapter 8: The logical paradigm: From a boolean core to Prolog
Folder of Prolog examples
|
zipped folder
solution to in-class exercise
Week 10
Overview of computability and computational-complexity theory
Summary of Go"del's and Turing's results
To come (subject to change):
Chapter 3: The core language and its characteristic domains
Chapter 4: Control and data-structure extensions
Chapter 9: Domain-specific languages
David Schmidt
das at ksu.edu
This work is licensed under a
Creative Commons License
.