Content deleted Content added
m linking |
Citation bot (talk | contribs) Add: isbn, bibcode, doi, page, volume, year, series. | Use this bot. Report bugs. | Suggested by Abductive | #UCB_toolbar |
||
Line 9:
==Object-based languages==
{{main|Object-based languages}}
An important distinction in programming languages is the difference between an object-oriented language and an object-based language. A language is usually considered object-based if it includes the basic capabilities for an object: identity, properties, and attributes. A language is considered object-oriented if it is object-based and also has the capability of [[Polymorphism (computer science)|polymorphism]], inheritance, encapsulation, and, possibly, composition. Polymorphism refers to the ability to overload the name of a function with multiple behaviors based on which object(s) are passed to it. Conventional message passing discriminates only on the first object and considers that to be "sending a message" to that object. However, some OOP languages such as [[Flavors (programming language)|Flavors]] and the [[Common Lisp Object System]] (CLOS) enable discriminating on more than the first parameter of the function.<ref>{{cite journal|last=Gabriel|first=Richard|author2=Linda G. DeMichie |title=The Common Lisp Object System: An Overview|journal=Lucid Inc. Technical Report|series=Lecture Notes in Computer Science|year=1987|volume=276|page=151|doi=10.1007/3-540-47891-4_15|bibcode=1987LNCS..276..151D|isbn=978-3-540-18353-2|url=http://www.dreamsongs.com/NewFiles/ECOOP.pdf}}</ref> Inheritance is the ability to subclass an object class, to create a new class that is a subclass of an existing one and inherits all the data constraints and behaviors of its parents but also adds new and/or changes one or more of them.<ref>{{cite journal|last=Wegner|first=Peter|title=Dimensions of Object-Based Language Design|journal=OOPSLA'87 Conference Proceedings|date=December 1987|volume=22|issue=12|pages=168–182|editor1-first=Norman|editor1-last=Meyrowitz|doi=10.1145/38807.38823}}</ref><ref>{{cite journal|last=Barbey|first=S |author2=M. Kempe |author3=A. Strohmeier|title=Object-Oriented Programming with Ada 9X|journal=Draft Technical Report|year=1993|url=http://www.adahome.com/9X/OOP-Ada9X.html|access-date=15 December 2013|publisher=Swiss Federal Institute of Technology in Lausanne Software Engineering Laboratory|quote=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.}}</ref>
==Object-oriented programming==
|