Object-based programming language
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
- ^ 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. "
- ^ Peter Wegner: Dimensions of Object-Based Language Design . In: OOPSLA'87 Conference Proceedings . 22, No. 12, December 1987, pp. 168-182.