Introducing CLOVER: An object-oriented functional language

* Final gross prices may vary according to local VAT.

Get Access

Abstract

The search for a language which combines both functional and object-oriented features has a long and distinguished history [Can82, Car84, BK86, BD88, BGW91, MHH91, AP93, CL91, MMH91, Sar93, CL96]. The aim is to integrate the formal methods benefits of functional programming with the software engineering benefits of both paradigms. However, to date we know of no language which can claim to be both purely functional and purely object-oriented (and retains complete type safety). We present CLOVER, a new language which is 100% functional and 99% object-oriented. It is also completely type safe. We explain the design issues and how CLOVER achieves its aim. We also explain the “missing” 1%, discuss its relevance, and illustrate how its loss can be extenuated through the use of a new visual programming notation.