CIS705a Fall 2014

Syllabus for CIS705a: Programming-Language Design

Lecture: to be determined

Instructor: David Schmidt
219A Nichols Hall; 532-7912; das at ksu dot edu;
office hours (to come); you can always email me for an appointment

Course web pages: All course materials are found at http://www.cis.ksu.edu/~schmidt/705a.
K-State Online is used to collect assignments and report grades.


Textbook: The course-text materials are found at the Text Materials page at the course website.

Course Structure: to be determined There will be several programming exercises and one or two projects where you learn and then design and implement a domain-specific language. There might also be several "pencil and paper" homeworks.

Prerequisites: CIS505 (absolutely) and MATH 510 (or equivalent, namely, you can do algebra).

Objectives and Topics:

We will learn standard models of programming languages and how to design and implement our own domain-specific programming languages (DSLs) using script and Scala. We will study calculi for language definition: the lambda-calculus, for certain, and possibly Scott-Strachey-style denotational semantics.

Here is a list of topics to be covered:

  1. review of syntax notation and interpreter/compiler construction
  2. the C virtual machine
  3. namespace algebra and its heap virtual machine
  4. language design: the language core and its extension via abstraction, parameterization, and qualification
  5. top-down and bottom-up domain-specific-language design
  6. introduction to lambda-calculus
  7. presentation of DSL projects

University policies: The Provost has requested that the information at http://www.k-state.edu/provost/resources/teaching/course.html be added to every course syllabus. Consider it done. Also, see http://www.ksu.edu/Honor for the University's policy regarding academic honesty.

Academic accommodation for students with disabilities: If you have a physical or learning disability that requires special accommodation, please notify the instructor within the first two weeks of the course.