Use this URL to cite or link to this record in EThOS:
Title: Design and implementation of an object-oriented functional language
Author: Braine, Lee Valentin
ISNI:       0000 0001 3476 6539
Awarding Body: University of London
Current Institution: University College London (University of London)
Date of Award: 2000
Availability of Full Text:
Access from EThOS:
Full text unavailable from EThOS. Please try the link below.
Access from Institution:
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.
Supervisor: Not available Sponsor: Not available
Qualification Name: Thesis (Ph.D.) Qualification Level: Doctoral
EThOS ID:  DOI: Not available
Keywords: CLOVER