• Cite Icon14
  • https://doi.org/10.1007/s001650200010Copy DOI Icon

Should ML be Object-Oriented?

Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

Abstract. At a fundamental level, functional and object-oriented programming languages are all ‘higher-order’, in the sense that they support computing with values that are themselves pieces of program code encapsulated with a local environment. In functional languages these ‘active’ values are functions, while in object-oriented languages they are objects. Both styles of higher-order language claim to provide good support for writing adaptable programs, but functional and object-oriented languages achieve this adaptability in different ways: functional programs rely on parameterisation at the value, type and module level, while object-oriented languages rely primarily on subtyping and implementation inheritance. Here we compare these two approaches, mainly in terms of the features and properties of their type systems, and consider the benefits and disadvantages of unifying (or merging) the two paradigms by adding object-oriented features to ML as a base language. We argue that while some of the simpler aspects of object-oriented languages are compatible with ML, adding a full- edged class-based object system to ML leads to an excessively complex type system and relatively little expressive gain, especially if we aim to preserve that mostly functional style of programming that is a major advantage of ML.

Similar Papers
  • Supplementary Content

Co-Contextual Type Systems: Contextless Deductive Reasoning for Correct Incremental Type Checking

  • Mar 02, 2020
  • TUbilio (Technical University of Darmstadt)
  • Edlira Kuci
  • Book Chapter
  • Citations3

Typed object-oriented functional programming with late binding

  • Jan 01, 1996
  • Zhenyu Qian +1
  • Conference Article
  • Citations1

Developing a monadic type checker for an object-oriented language: an experience report

  • Oct 20, 2019
  • Elias Castegren +1
  • Conference Article
  • Citations7

The heart of object-oriented concurrent programming

  • Jan 01, 1988
  • J Lim +1
  • Research Article
  • Citations1

Generic programming with combinators and objects

  • Oct 01, 2021
  • Scientific and Technical Journal of Information Technologies, Mechanics and Optics
  • D.S Kosarev +1
  • Journal Issue

Proceedings Second Workshop on Trends in Functional Programming In Education

  • Dec 08, 2013
  • Electronic Proceedings in Theoretical Computer Science
  • Philip K.F Hölzenspies
  • Conference Article
  • Citations66

Gradual typing for first-class classes

  • Oct 19, 2012
  • Asumu Takikawa +4
  • Book Chapter

Safe and Familiar Multi-core Programming by Means of a Hybrid Functional and Imperative Language

  • Jan 01, 2010
  • Ronald Veldema +1
  • Book Chapter
  • Citations42

Spores: A Type-Based Foundation for Closures in the Age of Concurrency and Distribution

  • Jan 01, 2014
  • Heather Miller +2
  • Research Article
  • Citations1

Implementing functional languages on object-oriented virtual machines

  • Jan 01, 2004
  • IEE Proceedings - Software
  • N Perry +1
  • Book Chapter
  • Citations2

Applying Core Features of the Object-Oriented Programming Paradigm by Function Blocks Based on the IEC 61131 and IEC 61499 Industrial Automation Norms

  • Aug 03, 2019
  • Luis Alberto Cruz Salazar +1
  • Book Chapter

Object-Oriented Modeling

  • Jan 01, 2022
  • David Pollak +2
  • Book Chapter
  • Citations33

The Swift Programming Language

  • Jan 01, 2015
  • James Goodwill +1
  • Book Chapter
  • Citations96

First-Class Relationships in an Object-Oriented Language

  • Jan 01, 2005
  • Gavin Bierman +1
  • Conference Article
  • Citations1

Component nextgen

  • Oct 21, 2007
  • James Sasitorn +1
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.