COSC 4301/5423 3.0 Programming Language Design
Winter 1999
-
The marks for the final exam are available electronically
(courseInfo 4301 1998-99 W).
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)