Purpose. The study of programming languages and their use in software systems engineering -- partly theoretical, partly empircal. Includes an introduction to the formal aspects of programming languages, program analysis techniques and large-scale analysis of software projects.
Evaluation. Projects (90%) + Class participation (10%)
The course's 20 or so lecture slots will be half formal lectures
and half discussion sessions.
Instructor: Prof. Cristina Lopes, DBH 5076, lopes
at ics dot uci
There will be 6 to 9 projects.
EEE plus F2F discussion.
|Project||Topic||Due date||Demo date|
|1||4/1||Lambda Calculus||1. Alonzo
Church and Lambda Calculus
2. Church's original paper
3. Handout 1
4. Handout 2
2. Moore and Grossman
3. Wasserrab et al
4. Mathews and Findler
|3||4/16||Closures, continuations, monads,
and assorted functional programming goodies
discoveries of continuations
3. Programming with continuations
1. How to
declare an imperative
2. You could have invented monads
|5||4/30||Reflection and Metaprogramming||1. Reflection and Semantics in LISP 2. Concepts and Experiments in Computational Reflection 3. Reflection in logic, functional and OO programming 4. Reflection in Smalltalk||*demos|
|6||5/7||Type Systems||1. Type Systems 2. Types and Programming Languages 3. Dependent Types 4. The End of the Cold War||Slides|
|7||5/14||Modularity||1. Parnas' "On the Criteria..." 2. AOP 3. Execution in the Kingdom of Nouns||*demos|
|8||5/21||Virtual Machines||1. Lean and Mean JVM 2. The Jalapeno VM 3. SlimVM||Slides|
|5/23||Prof. Xu's slides|
|9||5/28*||Program Analysis||1. Representation and Analysis of Software 2. A Survey of Program Analysis Techniques 3. Abstract Interpretation 4. Dynamic Program Slicing||*no class|
I trust all students are honest and do not cheat. Those who break my trust at any point will get an F in the course - no excuses or apologies will be accepted.Additional penalties may also be imposed by the department and the university. Very severe incidents of academic dishonesty can result in suspension or expulsion from the university.
Students with Disability
Any student who feels he or she may need an accommodation based on the impact of a disability should contact me privately to discuss his or her specific needs. Also contact the Disability Services Center at (949) 824-7494 as soon as possible to better ensure that such accommodations are implemented in a timely fashion.