UNO Language Binding : What is it about? |
|
Contents
Introduction
鮮明度/定義s:
Introduction
The 客観的な of this 文書 is to get a general notion of a UNO language binding and define terminology of the parts that language binding consists. For general UNO programming or 詳細(に述べる)s about building up a C++ 橋(渡しをする), for example for a 明確な/細部 C++ compiler please read the 明確な/細部 文書s.
A UNO language binding is 簡単に said the 組織/基盤/下部構造 enabling communication between UNO 構成要素s from different language or runtime 環境s. More over a language binding not only let 構成要素s, for example written with different programming languages, to interoperate, it also 供給するs the UNO programming 環境 for a 明確な/細部 language/ 環境. にもかかわらず the fact that a language binding may not only connect different programming languages (for example when connecting to 反対する models like COM), we use the 称する,呼ぶ/期間/用語 of a "language binding" for 簡単. Though, the 称する,呼ぶ/期間/用語 "環境 binding" would have been more general.
The に引き続いて section 現在のs several 鮮明度/定義s of what parts a UNO language binding consists. Some parts are optional, though.
鮮明度/定義s
UNO Runtime 環境 (URE). A UNO 構成要素 runs in an 環境 which serves as the 壇・綱領・公約 to run 構成要素s (UNO Runtime 環境). A language binding connects two 環境s for interoperation.
The runtime 必要条件s for 構成要素s in an 環境 may be different, for example a java 構成要素 needs a java 事実上の machine, a COM 構成要素 the COM libraries. An 環境 need not denote a 明確な/細部 programming language to interoperate with, it can even be a language 独立した・無所属 反対する model like COM.
Language Specification and Glue Code. The language specification defines the mapping of any UNO type (for example IDL long) to its corresponding 環境 明確な/細部 type (for example java int). More over, the 扱うing of コンビナート/複合体 types (for example structs, sequences, any, interfaces) is defined with 各々の support by a runtime API. If a programming language does not support a 明確な/細部 UNO feature (for example no "direct"/ convenient exception support), 付加 glue code (part of the runtime API) has to be defined balancing out these 証拠不十分s.
Code 発生させる人(物). The language specification defines the 代表 of UNO IDL types.
A code 発生させる人(物) produces the appropriate programming language 建設するs as defined in the language specification. It 一般的に reads from a binary type library and 令状s out とじ込み/提出するs for each type.
UNO 橋(渡しをする). A 橋(渡しをする) is the 核心 instance connecting two 環境s.
A 橋(渡しをする) is bidirectional in the way that it can 地図/計画する interfaces from one 環境 to another and 副/悪徳行為 versa, thus 供給するing two unidirectional mappings.
Mapping. Mapping an interface 伴う/関わるs in depth knowledge of both 環境s to emulate 独断的な interfaces.
Calls on an emulated interface are 委任する/代表d (含むing marshalling) 経由で the 橋(渡しをする) and lead to a method invocation on the 的 interface. Any return values, out parameters or exceptions have to be 変えるd to the calling 環境. For this 仕事 the complementary mapping is needed, thus both mappings of a 橋(渡しをする) are tied closely together.
環境/ Engine 接近. The 橋(渡しをする) needs runtime 環境 接近, for 解釈する/通訳するing 環境s also 接近 to the 遂行する/発効させるing engine (for example java, javascript).
The 橋(渡しをする) connecting to the 環境 一般的に needs engine 接近, too.
UNO 構成要素 Loader. The UNO 構成要素 loader 負担s a UNO 構成要素 器具/実施するd for a 明確な/細部 UNO runtime 環境.
Besides 負担ing the 構成要素 and 準備するing the runtime 環境 (like scripting engine 接近), this 過程 結局 含むs raising an appropriate 橋(渡しをする) to connect to the 環境.
When 負担ing a 構成要素, the 構成要素 may define own types it needs to 遂行する/発効させる. These types may be introduced to the runtime by the 構成要素 dynamically at startup or those types have been 合併するd to a central binary typelib とじ込み/提出する 事前の to 使用/適用 死刑執行 (which has been most 一般的に used for now).
Bootstrapping. The bootstrapping 過程 starts up the UNO 核心 system up to the point that 構成要素s can be 負担d and 遂行する/発効させるd.
構成要素s are 扶養家族 on each other. For 負担ing 構成要素s you most 一般的に need to have a 構成要素 loader 構成要素 from scratch. This is the first problem: You need to 負担 it manually. の中で other things it is necessary to have a type system 供給するing type (警察などへの)密告,告訴(状) used in 構成要素s. The latter 問題/発行する may 含むs typelib とじ込み/提出するs to be known. So this 過程 要求するs inside 実施 knowledge of the 初期の 構成要素s, にもかかわらず the fact that you 普通は need not know how a service is 器具/実施するd. As a result of the bootstrapping 過程, it is possible to raise その上の 構成要素s without knowing any 実施 詳細(に述べる)s.
It is not ーするつもりであるd to define a general bootstrap 過程 here, if this is possible at all.
Although, we will 現在の a default 計画/陰謀 使用/適用s using
the C++ 実施s of base services from code module stoc.
It is part of the UNO language binding to 供給する a 機械装置 to bootstrap an 初期の
UNO system in a 明確な/細部 UNO runtime 環境.
初期の 反対する. First 反対する 供給するd by a UNO runtime 環境.
This may be necessary in の間の-過程 communication, if the 構成要素 loader needs to have a "special" 初期の 反対する like a service 経営者/支配人. The language binding has to define the 初期の communication 議定書 to get the 初期の 反対する.
Author:
Daniel Bölzle. ($Date: 2007/05/25 14:38:49 $) |


