Anthony J H Simons, MA PhD

Senior Lecturer in Computer Science

You are here: Simons Home / Research / Projects / Brunel /
Department of Computer Science
Verification and Testing Research Group
The Theory of Classification
The Poppy Object-Oriented Language
Isambard Kingdom Brunel, 1857

The Brunel Object-Oriented Language

Brunel is a strongly-typed object-oriented language, named after the famous Victorian engineer, Isambard Kingdom Brunel (see photograph, taken by Robert Howlett in November, 1857). The language is based on the theory of F-bounds and formally distinguishes the notions of class and type. Whereas objects each have a simple, monomorphic type, the variables to which they are bound have a polymorphic class. Classes are expressed as parametric constructions in the second-order function-bounded λ-calculus, whose interfaces may be uniformly specialised under inheritance and by explicit binding. Polymorphism is expressed everywhere using bounded type parameters; polymorphic variables may only receive objects whose types satisfy the bound. Binding propagates an object's exact type into the parameterised construction and enables early static analysis. The same typing mechanism is used for both generic (template) and run-time polymorphism. No special syntax is required to force static or dynamic binding, which is resolved automatically at compile-time.

Project History

The Brunel 1.0 object-oriented language was originally designed to support simple types and strict subtyping (Simons, 1991). It was developed partly in response to Cook's analysis of type failures in object-oriented languages [1] and partly as a vehicle for experimental optimisation techniques, such as class dependency analysis, binding analysis and inheritance subgraph reduction. An optimising compiler and programming environment were developed, running under X-Open on Unix, by (Low, 1991; Tse, 1991; Ong, 1991). Source files contained additional hidden information to support rapid compilation and binding analysis.

Subsequently, the language was revised completely, in response to the theory of F-bounded polymorphism developed by Cook and others [2], [3], which provided a more satisfying account of classes and polymorphism. The ways in which this theory could account simply for many different kinds of type abstraction in programming languages were discussed in (Simons and Cowling, 1992). The unified theory of classification is described briefly in (Simons, 1996a) and was presented as tutorials at ECOOP and OOPSLA (Simons, 1993a, 1993b, 1994). The impact of the theory upon another object-oriented language, Eiffel, was described in (Simons, 1995b, 1995c). The popular impact on language terminology and design notation was discussed in (Simons, 1996b).

The modified Brunel 2.0 language adopted F-bounded inclusion instead of subtyping as its model of subclassing, and handled generic (template) polymorphism by the same mechanism. The theory of classification and the revised Brunel 2.0 language were described at length in the PhD thesis (Simons, 1995a). Experimental additions to the Brunel compiler included multiple inheritance (Ng, 1992) and higher-order methods (Black, 1992). A revised version of the optimising compiler is described by (Simons, et al., 1993, 1994). This performed class dependency analysis, inheritance subgraph reduction, automatic binding analysis and automatic inlining for a given system, compiled in one pass from source. The language later had a minor syntax revision, for which an analyser was developed (Manderis, 1996).

The concrete syntax of Brunel was eventually judged to be over-burdened with type parameters. A daughter project Poppy has been proposed, which seeks to adopt type substitutions instead of parametric instantiation as the main mechanism for type adaptation.

Related Publications

  • A J H Simons, Brunel: a strongly-typed, portable object-oriented language and programming environment, Department of Computer Science Research Report CS-91-07, (Sheffield: DCS, 1991).
  • Low E K, A Class Structure Optimiser for Object-Oriented Languages MSc Dissertation, Department of Computer Science, University of Sheffield (Sheffield: DCS, 1991).
  • Tse H P, A Class Structure and Formal Type Checker for an Object-Oriented Language, MSc Dissertation, Department of Computer Science, University of Sheffield (Sheffield: DCS, 1991).
  • Ong P S, An Object-Oriented Graphical User Interface for Brunel, MSc Dissertation, Department of Computer Science, University of Sheffield (Sheffield: DCS, 1991).
  • A J H Simons and A J Cowling, A proposal for harmonising types, inheritance and polymorphism for object- oriented programming, Department of Computer Science Research Report CS-92-13, (Sheffield: DCS, 1992).
  • Ng Y M, An Optimising Compiler for Handling Multiple Inheritance in Brunel, MSc Dissertation, Department of Computer Science, University of Sheffield (Sheffield: DCS, 1992).
  • D Black, An Optimising Compiler for an Object-Oriented Language with Higher-Order Functions, MSc Dissertation, Department of Computer Science, University of Sheffield (Sheffield: DCS, 1992).
  • A J H Simons, Low E-K and Ng Y-M, An optimising delivery system for object-oriented software, Department of Computer Science Research Report CS-93-18, (Sheffield: DCS, 1993).
  • A J H Simons, Low E-K and Ng Y-M, An optimising delivery system for object-oriented software, Object-Oriented Systems, 1 (1), (London: Chapman and Hall, 1994), 21-44. See earlier draft version.
  • A J H Simons, Introduction to Object-Oriented Type Theory, ECOOP '93 Tutorial 10, (Kaiserslautern : AITO/ACM Press, 1993), 62pp.
  • A J H Simons, Introduction to Object-Oriented Type Theory, OOPSLA '93 Tutorial 23, (Washington : ACM Press, 1993), 62pp.
  • A J H Simons, Exploring Object-Oriented Type Systems, OOPSLA '94 Tutorial 28, (Portland : ACM Press, 1994), 81pp.
  • A J H Simons, A Language with Class: The Theory of Classification Exemplified in an Object-Oriented Programming Language, PhD Thesis, Department of Computer Science, University of Sheffield (Sheffield, 1995).
  • A J H Simons, A different proposal for making Eiffel type-consistent, Department of Computer Science Research Report CS-95-07, (Sheffield: DCS, 1995). See revised TOOLS paper.
  • A J H Simons, Rationalising Eiffel's type system, Proc. 18th Conf. Technology of Object- Oriented Languages and Systems (TOOLS Pacific), eds. C. Mingins, R. Duke and B. Meyer (Melbourne, 1995), 365-377.
  • A J H Simons, A theory of class, Proc. 3rd Int. Conf. Object-Oriented Info. Sys., eds. D Patel, Y Sun and S Patel, (London: Springer Verlag, 1996), 44-56.
  • A J H Simons, Let's agree on the meaning of class, Department of Computer Science Research Report CS-96-26, (Sheffield: DCS, 1996).
  • S Manderis, A Syntax Analyser for Brunel, MSc Dissertation, Department of Computer Science, University of Sheffield (Sheffield: DCS, 1996).

Isambard Kingdom Brunel

I named this programming language Brunel in honour of Isambard Kingdom Brunel, the famous and far-sighted Victorian Engineer. He was responsible for the earliest suspension bridges, the more stable wide gauge steam railway and the earliest screw-driven steamships that outpaced paddle steamers in the race across the Atlantic. Many of his projects still survive and serve their purpose today, such as the railway bridge at Saltash, crossing from Devon into Cornwall.

Brunel's Clifton Suspension Bridge I K Brunel was one of the most gifted engineers of his day, pushing at the boundaries of steel and steam technology. The Clifton Bridge was one of the first suspension bridges of its kind, that used the technique of supporting the central roadway with chainwork linked to a cable draped over pillars. A conventional arched bridge could not work here, because of the distance between the pillars. A multispan bridge was equally out of the question, given the depth of the ravine and the fast flowing river below.

Brunel's Bridge at Saltash The Saltash Bridge was one of the last projects completed in Brunel's lifetime. Different from the above, it rests on pylons embedded in the river; yet the twin bowed arches serve both form and function in a stunning design. The bridge was completed in 1859 and the end pillars bear the name I K Brunel, Engineer in giant letters. Here, the bridge is under construction. Today, the main railway line from Devon into Cornwall still crosses at this point, though the road traffic uses a much newer suspension bridge that was built just upstream, to the right from this point of view.

Brunel's Great Western Railway The Great Western Railway was built to transport passengers and freight from Bristol to London. The enterprise was an economic success, since it allowed passengers to dock at Bristol and reach London much more quickly than if they had been forced to navigate the English Channel. It opened up the whole of the West Country. Engineers remember it more for Brunel's choice of a wide gauge of 7ft 1/4in, wider than George Stephenson's 4ft 8 1/2in. This afforded faster travel in spacious carriages with more stable cornering. Today, the French TGV (Train Grande Vitesse) runs on a similar wide gauge.

Brunel also built railway stations in grand style, such as the Bristol Temple Meads Station. Later, in an act of pure symmetry, he named one of his luxury ocean-going liners the Great Eastern.

Regent Court, 211 Portobello Street, Sheffield S1 4DP, United Kingdom