CS 463 - Spring 2024

Schedule

1 Texts

  • ChX readings refer to our main text, Concepts of Programming Languages.
  • RWH: readings refer to Real World Haskell, freely available online.
  • LYAHFGG: You should also read Learn You a Haskell for Great Good! as an additional study for a quirky, free introduction to Haskell.
  • other readings for languages will be posted as needed throughout the semester.

2 Order of Topics (Spring 2024)

We will approach topics in the following order. We will likely drift ahead/behind the suggested timing, so please just try to keep current with the readings as we approach the topics in lecture.

Week Topic Readings
     
     
1    
  Class Welcome/expectations Ch1, (Ch2 optional), Ch3
  Untyped Lambda Calculus  
  - evaluation, extending the language  
2    
  Evaluation Criteria (Ch3)
  Syntax and Semantics  
  BNFs, Parse Trees  
  Static Semantics, Attribute Grammars  
3    
  Dynamic Semantics (Ch3)
  - Operational, Denotational, Axiomatic  
     
     
4    
  LANG: Haskell Intro install Haskell, LYAHFGG, RWH1-4
5    
  More Haskell  
6    
  LANG: Lisp Tutorial: Learn Lisp Fast! (via Prof. Luke)
    Tutorial: Common Lisp(book)
     
7    
  REVIEW  
  MIDTERM, Thursday Feb 29th in class  
8    
  Typed Lambda Calculus (Types and Programming Languages
  - type checking, environment - access digital copy via library)
  - extensions  
     
9    
  Concurrency: basics Ch13
  - semaphores, mutexes, monitors  
  Threads, pthreads  
     
10    
  Haskell, pt. 2  
  - ADTs  
  - list comprehensions RWH 6
  - type classes LYAHFGG 8, Making our own typeclasses
     
11    
  Concurrency in Haskell RWH 24
  - monads  
  - forkIO, MVar, channels  
     
12    
  Subprograms: parameter conventions Ch9
  Polymorphism  
  Impementing subprograms Ch10
     
  Exception Handling, Event Handling Ch14
  - setjmp/longjmp vs. tracebacks  
     
  Names, Bindings Ch5
  Scope, Lifetime Java visibility
13    
  Extra Lang (if time)  
14    
  Catch up, Review  
  Final Exam Tuesday, May 7th 2024, 1:30pm-4:15pm
  Original Exams Schedule