COSC 4301/5423 3.0 Programming Language Design

Winter 1999


Note

Brief overview

This course addresses the design, the definition and the implementation of programming languages. The main focus will be on the design and the definition of programming languages. The implementation of programming languages is the topic of COSC 4302 3.0. Special attention will be given to the object-oriented language JavaTM and functional language Standard ML. Formal methods to design and define programming languages including BNF, type systems and transition systems will be studied. The design and the definition of fundamental concepts in programming languages including types, control structures and abstraction mechanisms will be looked at in detail.

General information

Time: Monday and Wednesday, 17:30-19:00
Place: CCB 129
Instructor: Franck van Breugel
Office hours: Tuesday and Thursday, 16:00-17:00
Office: CCB 348
Email: franck@ariel.cs.yorku.ca
Prerequisites: general prerequisites, including COSC 3301 3.0

Reference material

Class notes and handouts will be crucial. A collection of papers including these will be made available to the students. Some comments about A Structural Approach to Operational Semantics can be found here.

An introduction to Java can be found in

Mary Campione and Kathy Walrath. The Java Tutorial: Object-Oriented Programming for the Internet. Second edition. Addison-Wesley. 1998.
and
Robert Harper. Programming in Standard ML. 1998.
gives an introduction to Standard ML. Java is defined in
James Gosling, Bill Joy and Guy Steele. The Java Language Specification. Addison-Wesley. 1996.
and Standard ML in
Robin Milner, Mads Tofte, Robert Harper, and David MacQueen. The Definition of Standard ML - Revised. The MIT Press. 1997.

The following books are suggested for further reading on programming language design.

Terrence W.Pratt and Marvin V. Zelkowitz. Programming Languages: Design and Implementation. Third Edition. Prentice Hall. 1995.

Ravi Sethi. Programming Languages: Concepts and Constructs. Second Edition. Addison-Wesley. 1996.

Raphael A. Finkel. Advanced Programming Language Design. Addison-Wesley. 1995.

Evaluation

The student's performance in the course will be evaluated as a combination of a final exam (50%), a mid term (25%), and assignments (25%). Students will not have the option of doing additional work to upgrade their mark.

Assignments

Undergraduate students may do their assignments in pairs. No late assignments will be accepted. If a student cannot hand in the assignment in time for reasons beyond his/her control, the student has to bring a documented note to the instructor. If accepted, the weight of the other assignments will be prorated accordingly.

Mid term

The mid term will be held on Monday February 22. If a student misses the mid term for reasons beyond his/her control, the student has to bring a documented note to the instructor. If accepted, the weight of the final exam will be prorated accordingly.

Final exam

The final exam will be held in the examination period. If a student misses the final exam for reasons beyond his/her control, the student has to bring a documented note to the instructor. If accepted, the student has to take a replacement exam.

Calendar

The suggested reading material, additional material and the assignments can be found by clicking on the corresponding date on the calendar below.

Course outline (in PostScript)