CSc 520 Comparative Programming Languages
Lecture Notes
#0: Administrivia
#1: Introduction
#2: Functional Programming
#3: Scheme --- Introduction
#4: Scheme --- History
#5: Scheme --- Conditional Expressions
#6: Scheme --- Symbols and Structures
#7: Scheme --- List Processing
#8: Scheme --- Higher-Order Functions
#9: Scheme --- Metacircular Interpretation
#10: Haskell --- Introduction
#11: Haskell --- Basics
#12: Haskell --- Function Definitions
#13: Haskell --- Patterns
#14: Haskell --- Recursion
#15: Haskell --- Curried Functions
#16: Haskell --- Higher-Order Functions
#17: Haskell --- Composing Functions
#18: Haskell --- Data Types
#19: Haskell --- Lazy Evaluation
#20: Haskell --- Exercises
#21: Lambda Calculus --- Introduction
#22: Lambda Calculus --- Reductions
#23: Lambda Calculus --- Pure
#24: Functional Programming --- Conclusion
#25: Types --- Introduction
#26: Types --- Classification
#27: Types --- Equivalence
#28: Control --- Introduction
#29: Control --- Iterators
#30: Procedures --- Introduction
#31: Procedures --- Parameters
#32: Procedures --- Inlining
#33: Procedures --- Scope
#34: Procedures --- Dynamic Scope
#35: Procedures --- Closures
#36: Procedures --- Coroutines
#37: Exceptions
#38: Garbage Collection --- Introduction
#39: Garbage Collection --- Mark and Sweep
#40: Garbage Collection --- Copying Collection
#41: Garbage Collection --- Generational Collection
#42: Garbage Collection --- Uncooperative Languages
#43: Garbage Collection --- Discussion
#44: Interpreters
#50: Semantics --- Introduction
#53: Semantics --- Denotational Semantics
#54: Semantics --- Denotational Semantics with Environments
#99: Translators
Documents
Back to the 520 Home Page
Back to Collberg's Home Page