| SIUC Home | Campus Index A-Z | Apply Now | People Finder | Jobs | Webmail |

Department
Home, Overview, Contact, Facilities...

People
Faculty, Staff

Programs
Undergraduate, Graduate, Courses, Course Schedules, Course Materials...

Research
Activities, Grants

Scholarships

Opportunities

Utilities
Webmail, Downloads

CS 311-3
Design and Implementation of Programming Languages

Catalog Description

Study of object-oriented, functional, and logic programming languages. Emphasis on concepts abstracted from these languages. Specification of syntax and semantics, binding variables, data typing, static and dynamic scope, representation of data, abstraction, implementation of procedure calls and parameter passing, coroutines and concurrency, dynamic memory, memory management, pointers and references.

Prerequisite:

CS 220 with a grade of C or better.

Objectives

1. To make students aware of the range of features and capabilities that are available in programming languages.
2. To develop an understanding of the issues that arise in implementing various programming language features.
3. To increase awareness of how particular language features can affect the problem solving and programming process;
4. To survey a range of modern programming languages so students have a basis for selecting the best language for the task;
5. To give students experience programming in a language that is different from the normal instructional language;
6. To provide a brief background on compilers and language compilation.


Course Outline
  Lectures
1. Introduction
Domains, language evaluation criteria, categories of languages
2
2. History and Overview of Programming Languages 2
3. Introduction to Common Lisp 6
4. Syntax and Semantics
Grammars and parsing, semantic specifications
3
5. Variables
Names, binding, types, scope, lifetime
3
6. Basic Data Types
Implementations of integers, strings, etc.
2
7. Expressions
Operators, assignment, precedence, associativity, side effects, overloading, coercion
2
8. Control Constructs
Structured programming, compound statements, selectors, iteration
3
9. Subprograms
Procedural abstraction, generic functions, parameter passing, recursion
3
10. Abstract Data Types
Data abstraction, user-defined data types, encapsulation, information hiding
3
11. Object-Oriented Programming
Basic features, alternative models, implementation requirements
2
12. Exception and Event Handling 3
13. Functional and Logic Programming
Lisp, side-effect free, verification, PROLOG
3
14. Concurrency
Coroutines, threads
3
  Total 40

Webmaster - EOE Link - Privacy Policy     Last Update: August 2007