# Object-based language

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Object-based_language
> Markdown URL: https://mediated.wiki/source/Object-based_language.md
> Source: https://en.wikipedia.org/wiki/Object-based_language
> Source revision: 1340393083
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Type of programming language

An **object-based language** is a [imperative programming language](/source/Imperative_programming_language) that provides a construct to encapsulate state and behavior as an [object](/source/Object_(computer_science)). A language that also supports [inheritance](/source/Inheritance_(object-oriented_programming)) or [subtyping](/source/Subtyping) is classified as [object-oriented](/source/Object-oriented_programming).[1] Even though object-oriented programming is a superset of object-based programming, some authors distinguish them by name only when it is useful to point that a given programming language lacks inheritance.[*[citation needed](https://en.wikipedia.org/wiki/Wikipedia:Citation_needed)*] Examples of strictly object-based languages – supporting an object feature but not inheritance or subtyping – are early versions of [Ada](/source/Ada_(programming_language)),[2] [CLU](/source/CLU_(programming_language)), [Visual Basic 6](/source/Visual_Basic_6) (VB6), and [Fortran 90](/source/Fortran_90).

Some classify [prototype-based programming](/source/Prototype-based_programming) as object-based even though it supports inheritance and subtyping albeit not via a [class](/source/Class_(programming)) concept. Instead an object inherits its state and behavior from a *template* object. A commonly used language with prototype-based programming support is [JavaScript](/source/JavaScript).

## See also

- [Class (programming)](/source/Class_(programming))

- [Class-based programming](/source/Class-based_programming)

- [Object (computer science)](/source/Object_(computer_science))

- [Object-oriented programming](/source/Object-oriented_programming)

## References

1. **[^](#cite_ref-1)** Wegner, Peter (December 1987). ["Dimensions of the object-based language design"](http://www.cse.msu.edu/~stire/cse891f04/wegner.pdf) (PDF). In Meyrowitz, Norman (ed.). *Conference proceedings on Object-oriented programming systems, languages and applications - OOPSLA '87*. Vol. 22. pp. 168–182. [doi](/source/Doi_(identifier)):[10.1145/38765.38823](https://doi.org/10.1145%2F38765.38823). [ISBN](/source/ISBN_(identifier)) [0897912470](https://en.wikipedia.org/wiki/Special:BookSources/0897912470). [S2CID](/source/S2CID_(identifier)) [819420](https://api.semanticscholar.org/CorpusID:819420).

1. **[^](#cite_ref-2)** Barbey, S.; Kempe, M.; Strohmeier, A. (1993). ["Object-Oriented Programming with Ada 9X"](http://www.adahome.com/9X/OOP-Ada9X.html). *Draft Technical Report*. Swiss Federal Institute of Technology in Lausanne Software Engineering Laboratory. Retrieved 15 December 2013. Ada 83 itself is generally not considered to be object-oriented; rather, according to the terminology of Wegner [Weg 87], it is said to be object-based, since it provides only a restricted form of inheritance and it lacks polymorphism.

v t e Programming paradigms Imperative Structured Jackson structures Block-structured Modular Non-structured Procedural Programming in the large and in the small Design by contract Invariant-based Nested function Object-oriented Class-based, Prototype-based, Object-based Agent Immutable object Persistent Uniform function call syntax Declarative Functional Recursive Anonymous function (Partial application) Higher-order Purely functional Total Strict GADTs Dependent types Functional logic Point-free style Expression-oriented Applicative, Concatenative Function-level, Value-level Monad Dataflow Flow-based Reactive (Functional reactive) Signals Streams Synchronous Logic Abductive logic Answer set Constraint (Constraint logic) Inductive logic Nondeterministic Ontology Probabilistic logic Query Domain- specific language (DSL) Algebraic modeling Array Automata-based (Action) Command (Spacecraft) Differentiable End-user Grammar-oriented Interface description Language-oriented List comprehension Low-code Modeling Natural language Non-English-based Page description Pipes and filters Probabilistic Quantum Scientific Scripting Set-theoretic Simulation Stack-based System Tactile Templating Transformation (Graph rewriting, Production, Pattern) Visual Concurrent, parallel Actor-based Automatic mutual exclusion Choreographic programming Concurrent logic (Concurrent constraint logic) Concurrent OO Macroprogramming Multitier programming Organic computing Parallel programming models Partitioned global address space Process-oriented Relativistic programming Service-oriented Structured concurrency Metaprogramming Attribute-oriented Automatic (Inductive) Dynamic Extensible Generic Homoiconicity Interactive Macro (Hygienic) Metalinguistic abstraction Multi-stage Program synthesis (Bayesian, by demonstration, by example, vibe coding) Reflective Self-modifying code Symbolic Template Separation of concerns Aspects Components Data-driven Data-oriented Event-driven Features Literate Roles Subjects Comparisons/Lists Comparison (multi-paradigm, object-oriented, functional), List (OO, by type)

v t e Types of programming languages Level Machine Assembly Compiled Interpreted Low-level High-level Very high-level Esoteric Generation First Second Third Fourth Fifth

Authority control databases International GND FAST National United States Czech Republic Israel Other Yale LUX

This programming-language-related article is a stub. You can help Wikipedia by adding missing information.

- [v](https://en.wikipedia.org/wiki/Template:Prog-lang-stub)
- [t](/source/Template_talk%3AProg-lang-stub)
- [e](https://en.wikipedia.org/wiki/Special:EditPage/Template:Prog-lang-stub)

---
Adapted from the Wikipedia article [Object-based language](https://en.wikipedia.org/wiki/Object-based_language) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Object-based_language?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
