翻訳 : "Object-based language" In Wikipedia, The Free Encyclopedia

 

  • この記事は、コンピュータサイエンスに関する技術および英語についての正確な知識のない翻訳者が個人的な勉強を目的として、ほぼ全てを意訳によって翻訳したために、極めて多くの誤訳が含まれていると想定される決して質が高いとは言えない文章を公開しているものです。ここに掲載されている情報を使用したことによる、読者の方または第三者に生じる損害および損失について、翻訳者は一切の責任を負いません。正しい情報が必要な場合は原文を参照してください。

 

The term "object-based language" may be used in a technical sense to describe any programming language that uses the idea of encapsulating state and operations inside "objects". Object-based languages need not support inheritance or subtyping, but those that do are also said to be "object-oriented". Object-based languages that do not support inheritance or subtyping are usually not considered to be true object-oriented languages.
「オブジェクトベース言語」という語句は「オブジェクト」内の状態と演算をカプセル化する考えを使うあらゆる言語を説明する技術的な意味で使われるかもしれない。オブジェクトベース言語は継承や細分化をサポートする必要はないが、そういったものも「オブジェクト指向」と呼ばれる。継承や細分化をサポートしないオブジェクトベース言語は通常は真のオブジェクト指向言語と考えられない。

Examples of object-oriented languages, in rough chronological order, include Simula, Smalltalk, C++ (whose object model was based on Simula's), Objective-C (whose object model was based on Smalltalk's), Eiffel, Xojo (previously REALbasic), Python, Ruby, Java, Visual Basic .NET, C#, and Fortran 2003. Examples of a language that is object-based, but not object-oriented are early versions of Ada, Visual Basic (VB), and Fortran 90. These languages all support the definition of an object as a data structure, but lack polymorphism and inheritance.
オブジェクト指向言語の例を、おおざっぱに年代順に並べると、Simula, Smalltalk, C++ (Simulaのオブジェクトモデルを拡張), Objective-C (Smalltalkのオブジェクトモデルを拡張), Eiffel, Xojo (以前はREALbasic), Python, Ruby, Java, Visual Basic .NET, C#, and Fortran 2003となる。オブジェクトベースだがオブジェクト指向でない言語は、初期のAda, Visual Basic (VB), and Fortran 90である。これらの言語は全てデータ構造としてオブジェクトの定義をサポートしているが、ポリモーフィズムと継承はサポートしていない。

In practice, the term "object-based" is usually applied to those object-based languages that are not also object-oriented, although all object-oriented languages are also object-based, by definition. Instead, the terms "object-based" and "object-oriented" are normally used as mutually exclusive alternatives, rather than as categories that overlap.
実際には、「オブジェクトベース」という語句は通常オブジェクト指向でないオブジェクトベース言語で使われる。しかし、定義上は全てのオブジェクト指向言語もまたオブジェクトベースである。代わりに、「オブジェクトベース」と「オブジェクト指向」の語句は通常、重複するカテゴリーよりは、相互に排他的な選択として使われる。

Sometimes, the term "object-based" is applied to prototype-based languages, true object-oriented languages that do not have classes, but in which objects instead inherit their code and data directly from other "template" objects. An example of a commonly used prototype-based scripting language is JavaScript.
時々、「オブジェクトベース」という語句はプロトタイプベース言語だったり、クラスを持たない真のオブジェクト指向言語に使われるが、オブジェクトは代わりにほかの「テンプレート」オブジェクトから直接コードとデータを継承する。一般的に使われるプロトタイプベーススクリプト言語の例はJavaScriptである。

Both object-based and object-oriented languages (whether class-based or prototype-based) may be statically type-checked. Statically checking prototype-based languages can be difficult, because these languages often allow objects to be dynamically extended with new behavior, and even to have their parent object (from which they inherit) changed, at run time.[1][2]
オブジェクトベース言語と(クラスベースであろうとプロトタイプベースであろうと)オブジェクト指向言語のどちらも静的に型検査されるだろう。プロトタイプベース言語の静的検査は、新しい振る舞いで動的に拡張することや、実行時に(継承している)親のオブジェクトを変えることすら、オブジェクトに認めているために、難しいだろう。

Difference between Object-oriented and Object-based languages(オブジェクト指向言語とオブジェクトベース言語の違い)

Object-oriented language
オブジェクト指向言語

Object-based language
オブジェクトベース言語

Object-oriented language supports all the features of OOPs (Abstraction, Encapsulation, Inheritance, Polymorphism).

オブジェクト指向言語は(抽象、カプセル化、継承、ポリモーフィズムといった)すべてのOOPの特徴を持っている。

Object-based languages don't support all the features of OOPs like polymorphism or inheritance.
オブジェクトベース言語はポリモーフィズムや継承といったOOPのすべての特徴を持っているわけではない。

Examples: C++, C#, Java etc.

Examples: VB (pre-.NET) etc.

 

References

  1. Wegner, Peter (December 1987). Meyrowitz, Norman, ed. "Dimensions of Object-Based Language Design". OOPSLA'87 Conference Proceedings. 22 (12): 168––182. 
  2. Barbey, S; M. Kempe; A. Strohmeier (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.