Objektbasierte Sprache

Der Begriff Objektbasierte Sprache kann im technischen Sinne verwendet werden, um zu beschreiben irgendein Programmiersprache Das nutzt die Idee, Status und Operationen im Inneren zu verkörpern Objekte. Objektbasierte Sprachen müssen nicht unterstützen Nachlass oder Subtyping, aber diejenigen, die tun, werden auch bezeichnet objektorientierter. Objektbasierte Sprachen, die die Vererbung oder das Subtyping nicht unterstützen, gelten normalerweise nicht als echte objektorientierte Sprachen.

Beispiele von objektorientierte Sprachenin groben chronologischen Reihenfolge einschließen Simula, Smalltalk, C ++ (Welches Objektmodell basiert auf Simula), Ziel c (Welches Objektmodell basiert auf SmallTalks), Eiffel, Xojo (ehemals realbasic), Python, Rubin, Java, Visual Basic .net, C#, und Forran 2003. Beispiele für eine Sprache, die objektbasiert, aber nicht objektorientiert ist, sind frühe Versionen von Ada, Visual Basic (VB), JavaScript, und Forran 90. Diese Sprachen unterstützen alle die Definition eines Objekts als Datenstruktur, aber es fehlen Polymorphismus und Vererbung.

In der Praxis der Begriff objektbasiert wird normalerweise auf jene objektbasierten Sprachen angewendet, die nicht auch objektorientiert sind, obwohl alle objektorientierten Sprachen per Definition ebenfalls objektbasierte sind. Stattdessen die Begriffe objektbasiert und objektorientierter werden normalerweise als gegenseitig ausschließliche Alternativen und nicht als Kategorien verwendet, die sich überlappen.

Manchmal der Begriff objektbasiert wird angewendet auf Prototypbasierte Programmierung Sprachen, echte objektorientierte Sprachen, denen Klassen fehlen, in denen Objekte jedoch stattdessen ihren Code und ihre Daten direkt von anderen erben Schablone Objekte. Ein Beispiel für einen häufig verwendeten prototypbasierten Basis Skriptsprache ist JavaScript.

Sowohl objektbasierte als auch objektorientierte Sprachen (ob klassenbasierter oder prototypbasiert) statisch typprüfte. Statisch prüfen prototypbasierte Sprachen können schwierig sein, da diese Sprachen oft erlauben, dass Objekte dynamisch mit neuem Verhalten erweitert werden und sogar ihr übergeordnetes Objekt (aus dem sie erben), bei Laufzeit.[1][2]

Unterschied zwischen objektorientierten und objektbasierten Sprachen

Objektorientierte Sprache Objektbasierte Sprache
Objektorientierte Sprachen unterstützen alle Merkmale von Objekt orientierte Programmierung (OOP): Abstraktion, Verkapselung, Nachlass, Polymorphismus Objektbasierte Sprachen unterstützen a Teilmenge der Merkmale von OOP, wie Polymorphismus oder Vererbung.
Beispiele: C ++, C#, Java, etc. Beispiele: Visual Basic (Pre -.net)

Verweise

  1. ^ Wegner, Peter (Dezember 1987). Meyrowitz, Norman (Hrsg.). "Dimensionen des objektbasierten Sprachdesigns" (PDF). Oopsla'87 Konferenzbereitschaft. 22 (12): 168–182. doi:10.1145/38765.38823. ISBN 0897912470. S2CID 819420.
  2. ^ Barbey, S.; Kempe, M.; Strohmeier, A. (1993). "Objektorientierte Programmierung mit ADA 9x". Entwurf des technischen Berichts. Schweizer Federal Institute of Technology in Lausanne Software Engineering Laboratory. Abgerufen 15. Dezember 2013. ADA 83 selbst gilt im Allgemeinen nicht als objektorientiert; Nach der Terminologie von Wegner [WEG 87] soll sie eher Objektbasis sein, da es nur eine eingeschränkte Vererbungsform liefert und es an Polymorphismus fehlt.