CS 463 - Spring 2017

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

We will approach topics in the following order. Please try to keep current with the readings as we approach the topics in lecture.

Topic Readings
Class Welcome/expectations Ch1, (Ch2 optional), Ch3
Evaluation Criteria  
Syntax and Semantics  
BNFs, Parse Trees (Ch3)
Static Semantics, Attribute Grammars  
Dynamic Semantics (Ch3)
- Operational, Denotational, Axiomatic  
LANG: Lisp Tutorial: Common Lisp(book)
LANG: Haskell Intro install Haskell, LYAHFGG, RWH1-4
Untyped Lambda Calculus  
- evaluation, extending the language  
Names, Bindings Ch5
Scope, Lifetime (Ch5) Java visibility
Data Types Ch6
Type Checking  
TEST ONE (3/8)  
LANG: Ruby Tutorial: Ruby Essentials
Haskell, pt. 2  
- list comprehensions  
- type classes, Monads RWH 6, 14
Typed Lambda Calculus (Types and Programming Languages
- type checking, environment - access digital copy via library)
- extensions  
Expressions, Assignments Ch7
Control-Flow Ch8
Subprograms: parameter conventions Ch9
Polymorphism  
Impementing subprograms Ch10
LANG: R Tutorial: R Tutorial
TEST TWO (W 4/19)  
LANG: Prolog (if there's time) Tutorial: Learn Prolog Now!
Exception Handling, Event Handling Ch14
- setjmp/longjmp vs. tracebacks  
Concurrency: basics Ch13
- semaphores, mutexes, monitors  
Threads, pthreads, (forkIO, MVar) RWH 24
Final Exam: Live Schedule (originally Mon(a)day, 5/15, 10:30am-1:15pm)