Next: Compiler Construction
Up: Lent Term 2004
Previous: Lent Term 2004
  Contents
Comparative Programming Languages
Lecturer: Dr M. Richards
No. of lectures: 12
Aims
The aims of this course are to introduce the principles and
constraints that affect the way programming languages are
designed. Linguistic features of several languages will be explored
and compared, so that both the mistakes and good ideas from the past
can contribute to improved design and use of computer languages in
the future.
Lectures
- Introduction.
A brief history of programming languages. Comparing languages:
programming paradigms, language features, execution styles.
- Why study programming languages.
History. Changing influences. What makes a good programming language,
application domains.
- Language standardisation.
Language standards, examples from C and PL/I.
- FORTRAN and COBOL.
History, example.
- ALGOL.
History, examples, argument calling, trouble spots,
Algol W, arguments, records.
- BCPL.
History, summary, examples, functions, memory model,
objects, coroutines.
- C.
History and importance, example, types, operators,
statements, declarations, casts, functions, arrays and pointers.
Strings, space allocation, structures and unions.
- Representation of trees.
In ML, BCPL and C.
- Object Oriented Languages.
Simula-67 example, class hierarchy and inheritance, SIMULA primitives.
- Smalltalk.
History, syntax, classes, declaration, example showing the
definition of new classes and methods.
- C++.
Introduction to some of the features of C++, design philosophy.
Data hiding, data abstraction. Initialisation and cleanup.
Parameterised types, iterators. Multiple inheritance.
- Standards.
Objectives
At the end of the course students should
- be familiar with several language paradigms and how they can
be effective in different areas of application
- have a reasonable understanding of the compromises that have
to be made in a standard specification of a language in relation
to machine independence and efficiency
- appreciate the similarities and differences between
various approaches taken by object oriented languages
- be sufficiently familiar with C and C++ to be able
to read and understand programs written in these languages
Recommended books
Mitchell, J.C. (2003). Concepts in programming languages.
Cambridge University Press.
Pratt, T.W. & Zelkowitz, M.V. (1996). Programming languages,
design and implementation. Prentice-Hall (3rd ed.).
Appleby, D. & VandeKopple, J.J. (1997). Programming languages,
paradigm and practice. McGraw-Hill (2nd ed.).
Stroustrup, B. (1994). The design and implementation of C++.
Addison-Wesley.
Mössenböck, H. (1993). Object-oriented programming in Oberon-2.
Springer-Verlag.
Antonakos, J.L. & Mansfield Jr., K.C. (1998). Reference guide to C
and C++. Prentice-Hall.
Kernighan, B.W. & Ritchie, D.M. (1988). The C programming
language. Prentice-Hall (2nd ed.).
Next: Compiler Construction
Up: Lent Term 2004
Previous: Lent Term 2004
  Contents
Christine Northeast
Thu Sep 4 13:12:26 BST 2003