Motivation

The motivation behind teaching this course is to prepare you for better programming and writing compilers, and to prepare you for tomorrow since languages keep changing while the basic principle and design philosophy does not alter.   This course will provide basic understanding of general design issues and behavior of different class of programming languages. No specific programming language syntax will be discussed. Although, examples will use syntax of popular languages in a specific class of languages. In addition, the student will be taught latest concepts in multimedia languages such as synchronization issues, multimedia archival and retrieval issues, and multimedia formats.

Prerequisites

Intermediate programming, Data structures, Symbolic programming, Knowledge of at least couple of programming languages

Contents

Introduction and properties of a good programming language (75 minutes), control flow diagrams (20 minutes), syntax and Backus Naur form (120 minutes), introduction to semantics (45 minutes), parameter passing, side-effect, aliasing (200 minutes)

Pre-First Mid Term tutorial (45 minutes)

First Mid Term (1 lecture)


Implementation of Heap Based Languages and Garbage Collection (135 minutes lectures) Types as sets (100 minutes), use of types and abstract implementation (45 minutes), polymorphism (45 minutes)
Data dependency, concurrency, and synchronization (120 minutes),

Pre-Second Mid Term tutorial (45 minutes)

Second Mid Term (1 lecture)

deterministic and non-deterministic programming and languages (80 minutes).
Fundamentals of functional programming paradigm (90 minutes), Fundamentals of logic programming paradigm (135 minutes), Fundamentals of object oriented programming paradigm (45 minutes)
Implementation Models of object oriented languages <45 minutes>

Pre-Final tutorial (45 minutes)

Last three lectures (not covered in the examination) Agent Based Languages (45 minutes)
Introduction to Multimedia Languages such as XML and SMIL (45 minutes) Introduction to theory of multimedia systems such as synchronization, multimedia archival and retrieval.

Assignments: Last assignment will be a bonus assignment, and will be counted to promote border line students to a higher grade

  1. Control flow diagrams, Syntax, and semantics
  2. Behavior of languages, parameter passing, and side effects - 2 assignments
  3. Type theory
  4. concurrency, and non-deterministic programming
  5. Functional and logic programming paradigm, Object Oriented programming paradigm - 2 assignments

For each assignment you will be given exactly one week.    Departmental policy will be followed regarding copying. Two very similar text (to be decided by the instructor) will be treated as case of copying. However, group discussion to understand the problem is encouraged.

A student will loose 10% of grade for every working day of late submission. Without proper explanation, late assignment submission is discouraged.

Text Book and Reference Material

  1. Concepts of Programming Languages by Robert Sebesta, 8th Edition, Publisher: Addision Wesley, ISBN: 0-321-33025-0
  2. Arvind Bansal, transparencies from the class
Other Reference Books
  1. Material for garbage collection, concurrency, functional programming and logic programming will be augmented during the semester.
Grading Policy

There will be three examinations: first midterm (20 %), second midterm (20 %), and third midterm (30%), and six assignments. First Five assignments will be counted. Last assignment will be a bonus assignment to help students who are at the border of two grades. each assignment will count for 6% of the grade. A student must attend 85% of the classes.

A > 85%, B > 75%, C > 65%, D > 50%