Dana Vrajitoru
C311 Programming Languages
Final: Thursday, December 11, 2008.
| Week
| Homeworks
| Labs
| Reading assignments / Slides
|
| 15.
| |
| Introduction to Prolog
Topics on Languages
Semantics,
attribute grammars, target code optimization
|
| 14.
| Homework 12
| Lab 2
| Compiler compilers
Lisp special functions, buffers
|
| 12.
| Homework 11
|
| Parser implementation
|
| 11.
| Homework 10
|
| Parsers
|
| 10.
| Homework 9
|
| Regular Grammars, Scanner, DFA
Introduction to Formal Grammars
|
| 9.
| Homework 8
|
| Lisp Type Checking, Optional
Parameters, Function Invocation
General Transformation of Recursive Functions
|
| 7.
| Homework 7
|
| Dynamic Programming
Transformation, deep recursion
|
| 6.
| Homework 6
|
| Lisp Lambda expressions, map, function indirection
|
| 5.
| Homework 5
|
| Tail Recursion
Lisp Arrays, Equality Predicates, Symbols,
Associative Lists
|
| 4.
| Homework 4
|
| Lisp conditional, mutators,
while loop
Introduction to recursion
|
| 3.
| Homework 3
|
| Lisp input-output, loops
Name, scope, binding
|
| 2.
| Homework 2
|
| First Class Objects
Lisp variables, functions, conditional
|
| 1.
| Homework 1
| Lab 1
| Introduction to Lisp
Introduction
Sections 1.1, 1.2, 1.3 from the textbook.
|
Links
Emacs Lisp interface -
quick reference and links
Fall 2008 schedule: TR 4 - 5:15 pm NS 225
Prerequisites: C243 Data Structures and C335 Computer
Structures.
Textbook: Programming Language Pragmatics, 2nd
edition, by M. L. Scott. Morgan Kaufmann, 2006.
Generic Syllabus
Course description:Design and implementation of programming
languages: syntax; semantics; comparison of programming paradigms such
as imperative, functional, logic, and object oriented. Implementation
of concepts such as binding, scope, looping, branching, subprograms
and parameter passing, tasks and concurrency, heap management,
exception handling, templates, inheritance, overloading.
Grading system:
- About 12 homework assignments 20 points each
- 1 midterm exam 50 points
- Final exam 50 points
Guidelines for assignments:
- The assignments will be posted on the course web page.
- The assignments are due at midnight of the due date.
- The programming assignments are turned in by email.
- No homework accepted after 2 weeks from the due date. A homework
turned in 1 week late loses 25% of the points. A homework turned in 2
weeks late loses 50% of the points.
- Reasonable expectations concerning the program structure and
clarity: functions should be commented and should not contain more than 20
lines of code. Multiple source files are expected when appropriate.
Programming environment:
- OS: Linux, labs NS#207 and NS#209. Use the student ID card to
access the labs.
- Programming language: Emacs Lisp or elisp.
- Editor: emacs, any recent Linux or Cygwin version.
Last updated: August 25, 2008.
danav@cs.iusb.edu.