Linguagem baseada em objetos - Object-based language

O termo linguagem baseada em objeto pode ser usado em um sentido técnico para descrever qualquer linguagem de programação que usa a ideia de encapsular estado e operações dentro de objetos . Linguagens baseadas em objetos não precisam suportar herança ou subtipagem , mas aquelas que suportam também são chamadas de orientadas a objetos . Linguagens baseadas em objetos que não suportam herança ou subtipagem geralmente não são consideradas verdadeiras linguagens orientadas a objetos.

Exemplos de linguagens orientadas a objetos , em ordem cronológica aproximada, incluem Simula , Smalltalk , C ++ (cujo modelo de objeto é baseado no de Simula), Objective-C (cujo modelo de objeto é baseado em Smalltalk), Eiffel , Xojo (anteriormente REALbasic), Python , Ruby , Java , Visual Basic .NET , C # e Fortran 2003 . Exemplos de uma linguagem baseada em objetos, mas não orientada a objetos, são as versões anteriores de Ada , Visual Basic (VB), JavaScript e Fortran 90 . Todas essas linguagens suportam a definição de um objeto como uma estrutura de dados, mas carecem de polimorfismo e herança.

Na prática, o termo baseado em objetos é geralmente aplicado às linguagens baseadas em objetos que não são também orientadas a objetos, embora todas as linguagens orientadas a objetos também sejam baseadas em objetos, por definição. Em vez disso, os termos objeto-base e orientada a objetos são normalmente utilizados como alternativas mutuamente exclusivas, e não como categorias que se sobrepõem.

Às vezes, o termo baseado em objeto é aplicado a linguagens de programação baseadas em protótipos , verdadeiras linguagens orientadas a objetos que carecem de classes, mas nas quais os objetos herdam seu código e dados diretamente de outros objetos de modelo . Um exemplo de linguagem de script baseada em protótipo comumente usada é o JavaScript .

Tanto as linguagens baseadas em objetos quanto as orientadas a objetos (sejam baseadas em classes ou em protótipos) podem ser verificados estaticamente . Verificar estaticamente as linguagens baseadas em protótipo pode ser difícil, porque essas linguagens geralmente permitem que os objetos sejam estendidos dinamicamente com um novo comportamento, e até mesmo ter seu objeto pai (do qual herdam) alterado, em tempo de execução .

Diferença entre linguagens orientadas a objetos e baseadas em objetos

Linguagem orientada a objetos Linguagem baseada em objetos
Linguagens orientadas a objetos oferecem suporte a todos os recursos da programação orientada a objetos (OOP): abstração , encapsulamento , herança , polimorfismo Linguagens baseadas em objeto oferecem suporte a um subconjunto dos recursos de OOP, como polimorfismo ou herança.
Exemplos: C ++ , C # , Java , etc. Exemplos: Visual Basic (pré-.NET)

Referências