|
| ||
|
||
| ||
The objective of this document is to get a general notion of a UNO language binding and mainly defines terminology of what parts a language binding consist. General UNO programming or details about building up a C++ bridge, e.g. for a specific C++ compiler is not described here. A UNO language binding is simply said the infrastructure enabling communication between UNO components from different language or runtime environments. More over a language binding not only let components, e.g. written with different programming languages, to interoperate, it also provides the UNO programming environment for a specific language/ environment. Despite the fact that a language binding may not only connect different programming languages (e.g., when connecting to object models like COM), we keep the term of a "language binding" for simplicity. Though, the term "Environment binding" would be more general. The following section presents several definitions of what parts a UNO language binding consists. Some parts are optional, though. | ||
| ||
UNO Runtime Environment (URE).
A UNO component runs in an environment which serves as the platform to run
components (UNO Runtime Environment).
A language binding connects two environments for interoperation.
Language Specification and Glue Code. The language specification defines the mapping of any UNO type (e.g., IDL long) to its corresponding environment specific type (e.g., java int). More over, the handling of complex types (e.g., structs, sequences, any, interfaces) is defined with respective support by a runtime API. If a programming language does not support a specific UNO feature (e.g., no "direct"/ convenient exception support), additional glue code (part of the runtime API) has to be defined balancing out these weaknesses. Code Generator.
The language specification defines the representation of UNO IDL types.
UNO Bridge.
A bridge is the core instance connecting two environments.
Mapping.
Mapping an interface involves in depth knowledge of both environments
to emulate arbitrary interfaces. Environment/ Engine Access.
The bridge needs runtime environment access, for interpreting environments
also access to the executing engine (e.g., java, javascript).
UNO Component Loader.
The UNO component loader loads a UNO component implemented for a specific UNO runtime environment.
Bootstrapping.
The bootstrapping process starts up the UNO core system up to the point that components
can be loaded and executed.
Initial Object.
First object provided by a UNO runtime environment.
| ||
Author: Daniel Bölzle. Copyright 2001 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, CA 94303 USA. |