11. Object Languages

OODBTG Reference Model

Closely related to an object model is a language, referred to as an"Object Language" ("OL"): it can be used to specifygeneral programming operations. In other cases, it may be restricted, e.g.to a query language. An OL may or may not be an existing programming language(which may also support non-object-oriented programming).


CORBA supports a C language mapping. Future mappings are expected toinclude C++, Smalltalk and COBOL.


ODMG specifies an object definition language (ODL) that supports theODMG object model and is compatible with OMG's IDL. The ODL is programminglanguage independent. C++ and Smalltalk ODL bindings are defined in [ODMG,1994].

ODMG also specifies an SQL-like object query language (OQL) that providesdeclarative access to objects. Queries can be posed to any denotable object,starting with an object name or with a language expression yielding theobject. For example, (from [ODMG, 1994])

queries over the set named Persons (in this case, the extent of typePerson).

The nested query in

queries over the result of the query (path) expression x.subordinates.

The full OQL syntax is not currently supported by either the C++ orthe Smalltalk binding.


EXPRESS itself provides no manipulation language. Within STEP, thereis work on the Standard Data Access Interface (ISO CD-10303:22), a proceduralinterface to instances of EXPRESS models.

Open Distributed Processing

RM-ODP Part 3 - The Prescriptive Model prescribes five conceptual languagescorresponding to the five ODP Viewpoints:

Enterprise ViewpointEnterprise Language
Information ViewpointInformation Language
Computational Viewpoint Computational Language
Engineering ViewpointEngineering Language
Technology ViewpointTechnology Language

All five languages strongly adopt notions of the object paradigm.

It is likely that concrete programming languages for at least the Computationaland Engineering Language will evolve. It is also likely that "Z"(pronounced ZED) will be applied to the Information Viewpoint.

Management Information Model

An information model is described using the template notation definedin [ISO/IEC 10165-4, GDMO]. Guidelines for the Definition of Managed Object(GDMO) templates provide a formal representation for the definitions ofthe managed object classes. Additionally, to re-use the descriptions ofcertain characteristics of managed object classes, additional templatesare defined for packages, behaviors, attributes, attribute groups, actions,notifications, name bindings, and parameters. Complete details of the templatedefinitions, including a description of the syntactical conventions, maybe found in [ISO/IEC 10165-4, GDMO]. Templates may reference ASN.1 definitions[CCITT X.208, ASN.1].


A number of new statement types have been added in SQL3 in order tomake SQL computationally-complete enough so that object behavior can becompletely specified in SQL. Some of the additional statements providedfor writing SQL functions include:

Additional control facilities available include compound statementsand exception handling. A compound statement is a statement thatallows a collection of SQL statements to be grouped together into a "block".A compound statement may declare its own local variables and specify exceptionhandling for an exception that occurs during execution of any statementin the group. For exception handling, a CONDITION declaration establishesa one-to-one correspondence between an SQLSTATE error condition and a user-definedexception name. HANDLER declarations associate user-defined exception handlerswith specific exceptions.

The SQL92 standard defines language bindings for a number of standardlanguages. A key aspect of the individual language bindings is the definitionsof correspondences between SQL data types and host language data types.In some cases, these are relatively straightforward; e.g., the SQL CHARACTERdata type maps to a C char. In other cases, the mapping is not so straightforward.For example, SQL92 has a TIMESTAMP data type, but standard programminglanguages do not contain a corresponding built-in type. In these cases,SQL requires the use of a CAST function to convert database TIMESTAMP datato character data in the program, and vice-versa [MS93]. In SQL92, thesetype correspondences are defined only at the level of elementary scalardata types. There are no type correspondences defined for structured types,e.g., between a row of an SQL table and a flat record or structure in aprogramming language (although some such correspondences would be relativelystraightforward to define).

There are currently no bindings defined between the SQL3 ADT extensions(or rows containing them) and object classes or types in object-orientedprogramming languages such as C++ or Smalltalk, although these are underinvestigation.


The next release of Matisse with support ANSI SQL92 with object extensions.The evolving SQL3 specification will be fully supported as it stabilizes.

The Matisse API is a set of C library functions that can be bound intoany language that supports an external C function call. The API supportsall features of the database. Thus any language can bind to Matisse.


Smalltalk is a pure object-oriented programming language with its ownself-contained development environment.


Eiffel is the object language itself.

System Object Model (SOM)

SOM is designed to work with a variety of programming languages. SOMsupports an interface definition language to define interfaces and data.The IDL is then compiled (pre-compiler) and linked with the application.This does not preclude the use of a languages' object model in the sameapplication.

The use of SOM with a procedural language provides that language withobject oriented capabilities.

OLE Component Object Model

The Component Object Model specifies a programming-language-independentbinary standard for object implementations (i.e., it specifies whatthe implementation of the objects has to look like). Any object conformingto this standard is a legitimate Windows Object, no matter what languageis used to implement it.

Analysis and Design Methods






MD: The language used is Eiffel; Seethe matrix entries for Eiffel.

EA: An "appendix formally defines[the object model]. In particular, if formally defines what it means fora model instance to be a valid ... model instance. As part of the formaldefinition, we give a ... meta-model in terms of Object-Relationship-Modeldiagrams." "In our approach to formally defining valid ... modelinstances, we begin by providing a mapping from an Object-Relationship-Modelinstance to a first-order language and a set of first-order rules. We thenmap the first-order language to a mathematical model instance consistingof a universe of objects, a set of relations, a set of constants, and aset of functions. Using this latter mapping, we can check the validityof the mathematical model instance by ascertaining the truth of the rules.If all the rules hold, the ... instance is valid." "To formallydefine ... model instances, we then use the meta-model... All valid mathematicalmodel instances for the ... meta-model are valid model instances."

FA: "To have a guarantee of consistencyrequires that it be possible to semantically check the models fully. Thisis not possible without the use of a formal specification language, suchas Vienna Development Method [sic] VDM or Z, Unfortunately these techniquesare only practical in safety critical and other systems where defects mustbe avoided at all costs. ... the semantics of the object models are defined,but only informally."





NA: "This appendix [A] presentsa formal syntax specification of the BON textual notation..." "Nothingcan compensate for the precision of a formal notation when it comes tocommunicating the difficult cases unambiguously."

features matrixintro page