Objektbasert språk - Object-based language

Begrepet objektbasert språk kan brukes i teknisk forstand for å beskrive ethvert programmeringsspråk som bruker ideen om å innkapsle tilstand og operasjoner inne i objekter . Objektbaserte språk trenger ikke støtte arv eller undertyping , men de som gjør det kalles også objektorientert . Objektbaserte språk som ikke støtter arv eller undertyping, regnes vanligvis ikke som sanne objektorienterte språk.

Eksempler på objektorienterte språk , i grov kronologisk rekkefølge, inkluderer Simula , Smalltalk , C ++ (hvilken objektmodell er basert på Simulas), Objective-C (hvilken objektmodell er basert på Smalltalk's), Eiffel , Xojo (tidligere REALbasic), Python , Ruby , Java , Visual Basic .NET , C# og Fortran 2003 . Eksempler på et språk som er objektbasert, men ikke objektorientert, er tidlige versjoner av Ada , Visual Basic (VB), JavaScript og Fortran 90 . Disse språkene støtter alle definisjonen av et objekt som en datastruktur, men mangler polymorfisme og arv.

I praksis brukes begrepet objektbasert vanligvis på de objektbaserte språkene som ikke også er objektorienterte, selv om alle objektorienterte språk også er objektbaserte, per definisjon. I stedet brukes begrepene objektbasert og objektorientert normalt som alternativer som utelukker hverandre, snarere enn som kategorier som overlapper hverandre.

Noen ganger brukes begrepet objektbasert om prototypebaserte programmeringsspråk , sanne objektorienterte språk som mangler klasser, men der objekter i stedet arver koden og dataene direkte fra andre malobjekter . Et eksempel på et vanlig prototypebasert skriptspråk er JavaScript .

Både objektbaserte og objektorienterte språk (enten klassebaserte eller prototypebaserte) kan være statisk typekontrollert . Statisk kontroll av prototypebaserte språk kan være vanskelig, fordi disse språkene ofte gjør at objekter kan utvides dynamisk med ny oppførsel, og til og med få endret overordnet objekt (som de arver fra) under kjøretid .

Forskjell mellom objektorientert og objektbasert språk

Objektorientert språk Objektbasert språk
Objektorienterte språk støtter alle funksjonene i objektorientert programmering (OOP): abstraksjon , innkapsling , arv , polymorfisme Objektbaserte språk støtter en delmengde av funksjonene i OOP, for eksempel polymorfisme eller arv.
Eksempler: C ++ , C# , Java , etc. Eksempler: Visual Basic (pre-.NET)

Referanser