Braine, Lee Valentin;
(2000)
Design and implementation of an object-oriented functional language.
Doctoral thesis (Ph.D), UCL (University College London).
Preview |
Text
Design_and_implementation_of_a.pdf Download (2MB) | Preview |
Abstract
A novel approach to the integration of object-oriented programming (OOP) and functional programming (FP) is investigated. This is a well-researched area and we focus on several features that have, until now, proved resistant to integration. The search for a language which combines both functional and object-oriented features has a long and distinguished history. The aim is to integrate the formal methods benefits of FP with the software engineering benefits of both paradigms. However, we know of no language which can claim to be both purely functional and purely object- oriented (and retains complete type safety). In this thesis, we explain some important issues concerning the integration of OOP and FP. We show why achieving this goal is difficult by identifying key differences between the two paradigms and discussing the seemingly-incompatible design issues raised by these differences. Achieving the goal thus becomes a problem of solving apparently-conflicting language design requirements. We present a design for a new language, CLOVER, which meets almost all of these requirements by the careful integration of a number of different design criteria. The language is purely functional and almost purely object-oriented, and is also completely type safe. The remaining object-oriented aspects are resolved by supplying a new interpretation of object identity through a new visual notation. The main contribution of CLOVER is its breadth of scope - it incorporates all the key concepts of object orientation and is purely functional. In particular, it integrates subtyping, subsumption, inheritance, method overriding, method overloading and dynamic despatch from the object-oriented paradigm with higher-order functions, curried partial applications, referential transparency, laziness and complete type safety from the functional paradigm. We demonstrate how the language can be implemented by targeting a simple functional language. We provide a formal presentation of the implementation as a set of translation rules together with rules for code generation. This translates an abstract form of our object-oriented functional language into an abstract form of a standard functional language.
Type: | Thesis (Doctoral) |
---|---|
Qualification: | Ph.D |
Title: | Design and implementation of an object-oriented functional language |
Open access status: | An open access version is available from UCL Discovery |
Language: | English |
Additional information: | Thesis digitised by ProQuest. |
Keywords: | Applied sciences; Object-oriented programming |
URI: | https://discovery.ucl.ac.uk/id/eprint/10107565 |
Archive Staff Only
View Item |