객체 기반 언어

Object-based language

오브젝트 기반 언어라는 용어는 오브젝트 내부의 상태와 동작을 캡슐화하는 개념을 사용하는 프로그래밍 언어기술하기 위해 사용될 수 있습니다.오브젝트 기반 언어는 상속이나 서브타이핑지원할 필요는 없지만 지원하는 언어를 오브젝트 지향 언어라고도 합니다.상속이나 서브타이핑을 지원하지 않는 객체 기반 언어는 일반적으로 진정한 객체 지향 언어로 간주되지 않습니다.

오브젝트 지향 언어의 예로는 대략적인 연대순으로 Simula, Smalltalk, C++(시뮬라에 기반한 오브젝트 모델), Objective-C(Smalltalk에 기반한 오브젝트 모델), Eiffel, Xojo(이전 REALBASIC), Python, Ruby, Java, Visual Basic 등이 있습니다.NET, C#Fortran 2003.객체 기반이지만 객체 지향적이지 않은 언어의 예로는 Ada, Visual Basic(VB), JavaScriptFortran 90의 초기 버전이 있습니다.이러한 언어는 모두 데이터 구조로서의 객체 정의를 지원하지만 다형성과 상속은 없습니다.

실제로 객체 기반이라는 용어는 객체 지향적이지 않은 객체 기반 언어에 일반적으로 적용됩니다. 단, 객체 지향 언어도 정의상 객체 기반 언어입니다.대신 객체 기반객체 지향이라는 용어는 일반적으로 중복되는 범주가 아니라 상호 배타적인 대안으로 사용됩니다.

오브젝트 기반이라는 용어는 클래스가 없는 진정한 오브젝트 지향 언어인 프로토타입 기반 프로그래밍 언어에 적용될 수 있지만 오브젝트는 대신 코드와 데이터를 다른 템플릿 객체에서 직접 상속합니다.일반적으로 사용되는 프로토타입 기반 스크립팅 언어의 예로는 JavaScript가 있습니다.

객체 기반 언어 및 객체 지향 언어(클래스 기반 언어 또는 프로토타입 기반 언어)는 모두 정적 유형 검사를 수행할 수 있습니다.프로토타입 기반 언어를 정적으로 확인하는 것은 어려울 수 있습니다. 왜냐하면 이러한 언어는 종종 개체를 새로운 동작으로 동적으로 확장하고 [1][2]런타임에 상위 개체(상속되는 개체)를 변경할 수 있기 때문입니다.

오브젝트 지향 언어와 오브젝트 기반 언어의 차이

객체 지향 언어 객체 기반 언어
객체 지향 언어는 추상화, 캡슐화, 상속, 다형성 등 객체 지향 프로그래밍(OOP)의 모든 기능을 지원합니다. 객체 기반 언어는 다형성 또는 [citation needed]상속과 같은 OOP 기능의 하위 집합을 지원합니다.
예:C++, C#, Java 예:Visual Basic (사전)네트워크)[citation needed]

레퍼런스

  1. ^ Wegner, Peter (December 1987). Meyrowitz, Norman (ed.). "Dimensions of Object-Based Language Design" (PDF). OOPSLA'87 Conference Proceedings. 22 (12): 168–182. doi:10.1145/38765.38823. ISBN 0897912470. S2CID 819420.
  2. ^ Barbey, S.; Kempe, M.; Strohmeier, A. (1993). "Object-Oriented Programming with Ada 9X". Draft Technical Report. Swiss Federal Institute of Technology in Lausanne Software Engineering Laboratory. Retrieved 15 December 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.