Authorised by Academic Registrar, April 1996
Objectives At the completion of this subject students should understand considerations in the design of object-oriented programming languages; understand techniques and issues related to types, reuseability and interpretability in object-oriented software development; and be able to evaluate and design tools for programming language systems.
Synopsis Review of concepts and paradigms of object-oriented programming languages and systems: objects, classes, inheritance, types, libraries and reuseability. Design alternatives of object-oriented programming languages. Models of concurrency in object-oriented programming languages. Type checking and inference: algorithms, static checking and dynamic checking. Inheritance: superclasses and subclasses, well-formedness and recursion. Comparison of object-oriented programming languages. Reuseability issues in object-oriented software development. Interoperability of object-oriented systems.
Assessment Seminar paper: 40% + Practical work: 60%