The School of Electrical Engineering and Computer Science

CptS 355: Programming Language Design

Catalog Information
Course Number: 
355
Credits: 
3
Offered: 
Spring
Offered: 
Fall
Pre-Requisites

Data structures, extensive practical programming experience (preferably in an imperative language), elementary analysis of algorithms.

Class Information
Objectives: 

Student obtains familiarity with a variety of design concepts and features of programming languages. Student obtains ability to contrast and choose programming languages appropriate to project.

Structure: 

Examinations: 2 One-hour exams, 1 final exam or three one-hour exams.

Topics: 
  • Design influences and evaluation of programming languages. Classification of programming languages
  • Language Translation: Interpretation, Compilation (including analysis and synthesis phases of compilation, syntactic and semantic analysis).
  • Bindings, binding environments, binding times.
  • SCHEME, LISP, HASKELL or another functional language, including the notion of first class functions.
  • Data: specification, implementation, syntax, persistence, declaration, typing systems, type equivalence, and type checking
  • Support for and implementation of abstract data types, encapsulation, information hiding, separate compilation, naming issues
  • Memory Management.
  • PROLOG or another logic language.
  • Sequence control: within expressions (arithmetic/logical expression evaluation, pattern matching and unification), between expressions (flow of control constructs) and between blocks (subroutines, exceptions, coroutines, scheduled execution), including lazy vs. eager evaluation, subroutine implementation and parameter transmission.
  • Scoping concepts, including nested scope, lexical scope and dynamic scope.
  • Object oriented language issues: object, template, inheritance and virtual function implementation using Java, C++, or another object oriented language
  • Concurrency: threads, shared data, synchronization
  • Discussion of several imperative languages, such as Algol, Pascal, C, Fortran, Cobol, etc.
Requirements
Textbooks/References: 

John C. Mitchell, Concepts in Programming Languages, Cambridge Univ. Press, 2003
Language reference texts and manuals appropriate to the languages chosen for computer projects. Placed on reserve in Owen Science Library or available on the World Wide Web.

Computer Usage: 

Extensive -- program design and implementation projects in several different programming languages.

Professor/Coordinator: 
Carl Hauser
 

Events

« October 2008 »
SMTWTFS
1234
567891011
12131415161718
19202122232425
262728293031
 
Contact us: webmaster@eecs.wsu.edu | Telephone: 509 335 6602 Fax: 509 335 3818 | Accessibility | Copyright | Policies
School of Electrical Engineering and Computer Science, PO BOX 642752, Washington State University, Pullman, WA, 99164-2752 USA