Changes between Version 14 and Version 15 of Eiffel FAQ


Ignore:
Timestamp:
Aug 2, 2007, 12:22:00 AM (17 years ago)
Author:
Tatsukawa, Akimichi
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Eiffel FAQ

    v14 v15  
    77What is it with openEHR and Eiffel?
    88
    9 openEHRはEiffel言語を使っていることを知っている人は多いけれども,どうしてEiffelでopenEHRが記述される必要があるのか,EiffelがopenEHRでどのような特別な役割をはたしているのか不思議に思っているでしょう。Eiffelは公開の場で定義された言語であり,Eiffelに対する国際的な非営利コンソーシアム(国際的なユーザーグループ)とECMAが公式な標準化プロセスを担っています。数多くの商用実装があり([http://www.eiffel.com/ ISE], [http://www.object-tools.com/ Object Tools])があり,[http://smarteiffel.loria.fr/ 公式オープンソースコンパイラ]("!SmartEiffel")と数多くのライブラリがあります。
     9多くの人はopenEHRがEiffel言語を使っていることを知っているが,どうしてEiffelでopenEHRが記述される必要があるのか,EiffelがopenEHRでどのような特別な役割をはたしているのか不思議に思っているでしょう。Eiffelは公開の場で定義された言語であり,Eiffelに対する国際的な非営利コンソーシアム(国際的なユーザーグループ)とECMAが公式な標準化プロセスを担っています。数多くの商用実装があり([http://www.eiffel.com/ ISE], [http://www.object-tools.com/ Object Tools])があり,[http://smarteiffel.loria.fr/ 公式オープンソースコンパイラ]("!SmartEiffel")と数多くのライブラリがあります。
    1010
    1111Many people have noticed that openEHR uses the Eiffel language, and wonder whether openEHR needs to be written in Eiffel, or whether Eiffel is in some way special in openEHR. By way of background, Eiffel is an openly defined language, has its own Non-profit International Consortium for Eiffel (an international user group) and ECMA formal standardisation process. It has a number of commercial implementations (ISE, Object Tools), an official open source compiler ("!SmartEiffel") and large numbers of libraries.
    1212
    13 EiffelはopenEHRでは最初のCASEツールとして使われています。どうしてプログラミング言語をCASEツールとして使うのか,どのように使っているのか,少し奇妙に感じるかもしれません。事実として,Eiffelは他のプログラミング言語とは少し違うところがあります。まず,型付けが完全になされていることと完全なオブジェクト指向言語です。C++以外でUMLのすべてのセマンティクス(特に「総称」(genericity)クラスや多重継承,ポリモルフィズム,selective export)を実装できる唯一の生産的言語でもあります。しかしながら,C++とはことなりメモリ構造のような実装の詳細には拘束されません。さらに,利用できる他の生産的言語とは異なり,OCL(OMG Object Constraint Language)と同等の実装がなされています。「同等」というのは,OCLが存在する15年も前からEiffelが実現していたことですから。openEHRに関係のあるOCLの重要な特徴は「アサーション(言明)」とよばれるもので,事前条件,事後条件とクラスアサーションを含みます。これらの命令文によりクラスモデルの状態を正確に定義することができます。
     13EiffelはopenEHRでは主にCASEツールとして使われています。どうしてプログラミング言語をCASEツールとして使うのか,どのように使っているのか,少し奇妙に感じるかもしれません。実際には,Eiffelは他のプログラミング言語とは少し違うところがあります。まず,型付けが完全になされていることと完全なオブジェクト指向言語です。それはUMLのすべてのセマンティクス(特に「総称」(genericity)クラスや多重継承,ポリモルフィズム,selective export)を実装できるという意味で生産性の高い言語であり、C++を除いて唯一の言語です。しかしながら,C++とは異なり、メモリ構造のような実装の詳細には拘束されません。さらに,他に普及している生産的な言語とは異なり,OCL(OMG Object Constraint Language)と同等の実装がなされています。「同等」というのは,OCLが誕生する15年も前からEiffelが実現していたことですから。openEHRに関係のあるOCLの重要な特徴は「アサーション(言明)」とよばれるもので,事前条件,事後条件とクラスアサーションを含みます。これらの命令文によりクラスモデルの状態を正確に定義することができます。
    1414
    1515Eiffel is used in openEHR as its primary CASE tool. This may sound a little strange - why use a programming language as a CASE tool; how? In truth, Eiffel is a little bit different from other programming languages. Firstly, it is a fully formal, fully object-oriented language, the only production language apart from C++ which implements all the semantics of UML (in particular, genericity (i.e. 'template' classes), multiple inheritance, polymorphism, selective export). However, unlike C++, it has no connection with implementation details, such as memory structures. In addition, unlike any other production language available, it implements the equivalent of OCL, the OMG Object Constraint Language. "Equivalent" because Eiffel did this 15 years ago, long before OCL came into existence. The key features of OCL which are relevant to openEHR are called "assertions", which include function pre-conditions, post-conditions, and class assertions. These statements allow us to define the correctness conditions of a class model.
    1616
    1717これらの特徴はopenEHRの仕様として利用されてきた種類の形式クラスモデルを表現する言語として,アサーションを含めて完全に検証されています。
     18
     19これらの特徴によって Eiffel言語は、openEHRの仕様にて用いられてきた形式クラスモデルを表現し、それらをアサーションを含めて完全に検証することができるのです。
    1820
    1921These features allow it to be used as a language for expressing formal class models, of the kind used in the specifications written by openEHR, and to completely validate them, including assertions.
     
    2325Does openEHR have to be implemented in Eiffel?
    2426
    25 そんなことはありません。言語の選択は開発者の属する組織次第で決まるものですし,その言語に関する人的資源などが利用できるかに通常は関連しています。openEHRにはJavaやC#.net,Oracle, VB.netで実装されたものがあり,将来的にはPythonや他の言語での実装もされるでしょう。
     27そんなことはありません。言語の選択は開発者の属する組織次第で決まるものですし,通常は利用可能な人的資源などの条件に一層強く依存しています。openEHRにはJavaやC#.net,Oracle, VB.netで実装されたものがあり,将来的にはPythonや他の言語での実装もされるでしょう。
    2628
    2729No, it doesn't. The choice of language is completely up to the developer organisation, and usually relates more strongly to available human resources and so on. There are parts of openEHR being developed in Java, C#.net, Oracle, VB.net, and in the future, it is expected that Python will be used, among others.