Object-based programming language

from Wikipedia, the free encyclopedia

The term object-based programming language can be used in a technical sense to describe any programming language that uses the idea of ​​encapsulating states and methods within objects . Object-based programming languages ​​do not need to support inheritance or subtyping; Programming languages ​​that support both are called object-oriented. Object-based programming languages ​​that do not support inheritance or subtyping are generally not seen as true object-oriented programming languages .

Examples of object-oriented programming languages ​​are Simula , Smalltalk , C ++ (whose objects are based on Simula), Objective-C (whose objects are based on Smalltalk), Eiffel , Xojo (formerly REALbasic), Python , Ruby , Java , Visual Basic .NET , and C # . Examples of object-based, but not object-oriented, languages ​​are early versions of Ada , Visual Basic, and JavaScript . These languages ​​support the definition of objects as a data structure, but they have no polymorphism or inheritance.

In fact, the term “object-based” is usually used for object-based languages ​​that are not object-oriented, although actually all object-oriented programming languages ​​are by definition also object-based. Instead, “object-based” and “object-oriented” are defined as mutually exclusive.

Sometimes the adjective "object-based" is applied to prototype-based languages .

Both object-based and object-oriented languages ​​(regardless of whether they are class-based or prototype-based) can be statically typed . Static-checking prototype-based languages ​​can be difficult because they often allow the behavior of objects to be dynamically expanded and even their parent (from whom they inherit) to change during runtime.

Individual evidence

  1. ^ S Barbey, M. Kempe, and A. Strohmeier .: Object-Oriented Programming with Ada 9X . In: Swiss Federal Institute of Technology in Lausanne Software Engineering Laboratory (Ed.): Draft Technical Report . 1993. Retrieved December 15, 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. "
  2. ^ Peter Wegner: Dimensions of Object-Based Language Design . In: OOPSLA'87 Conference Proceedings . 22, No. 12, December 1987, pp. 168-182.