EGL(プログラミング言語)

コンテンツへジャンプ
フリー百科事典『ウィキペディア』より
EGL
(エンタープライズ生成言語)
開発者IBM
ライセンスEclipseパブリックライセンス
Webサイトwww.eclipse.org/edt/

EGL(エンタープライズ生成言語)は、もともとIBMによって開発され、現在はEclipse Public License (EPL)の下でEDT(EGL開発ツール) [ 1 ] オープンソースプロジェクトとして利用可能であり、言語、フレームワーク、ランタイムプラットフォーム間で共通の言語とプログラミングモデルを提供することで、現代のマルチプラットフォームアプリケーション開発の課題に対応するように設計されたプログラミング技術です。

概要

[編集]

この言語は、 JavaCOBOLCなどの静的型付け言語を使用する人にとって馴染みのある概念を借用しています。ただし、静的型付けプログラミング言語では通常見られない、統一モデリング言語(UML)のステレオタイプの概念を借用しています。簡単に言えば、EGLは高水準の汎用アプリケーション開発言語です。

EGLは他の一般的な言語と構文が類似しているため、同様のプログラミング経験を持つアプリケーション開発者であれば習得可能です。EGLアプリケーション開発の抽象化により、プログラマーはシステムやミドルウェアの技術インターフェースから解放され、ビジネス機能の構築に集中できます。EGLアプリケーションとサービスは、EGLソースレベルで記述、テスト、デバッグされ、十分な機能テストが完了すると、COBOL、Java、またはJavaScriptコードにコンパイルされ、以下の環境で実行可能なビジネスアプリケーションの展開をサポートします。

コード例

[編集]

プログラム

[編集]

EGLプログラムパーツは、1つのエントリーポイントを持つ生成可能なロジックパーツです。各プログラムパーツには、プログラム起動時に実行されるロジックを表すmain()関数が含まれています。プログラムは他の関数を組み込んだり、プログラム外部の関数にアクセスしたりできます。関数main()は、これらの他の関数を呼び出すことができます。プログラム関数は、EGL文、変数、および定数のセットで構成されます。

HelloWorldプログラム const GREETING文字列= "こんにちは" ;      関数main () myName 文字= " John " ;   sayHello (私の名前) ;終わり関数sayHello ( name String in )   SysLib.writeStdOut ( GREETING +名前+ " ! " ) ;    終わり終わり

記録

[編集]

EGLレコードパーツは、データ要素のセットを定義します。この例では、CustomerRecordという名前のレコードが6つのフィールドで定義されています。

レコードCustomerRecordタイプBasicRecord customerNumber INT ; customerName STRING ; customerAddr1 STRING ; customerAddr2 STRING ; customerAddr3 STRING ; customerBalance MONEY ; end          

EGL には、リレーショナル データベースとデータを交換するために使用される、 SQLRecordと呼ばれる特殊なタイプのレコードがあります。

レコード従業員タイプ sqlRecord { tableNames =[["Employee"]], keyItems =[EMPNO]} EMPNUMBER 文字列{列 = "EMPNO", maxLen = 6}; FIRSTNME 文字列{sqlVariableLen = yes、maxLen = 12}; MIDINIT 文字列{isSqlNullable = yes、maxLen = 1}; LASTNAME 文字列{sqlVariableLen = yes、maxLen = 15}; DEPT 文字列{列 = "WORKDEPT", isSqlNullable = yes, maxLen = 3}; PHONENO 文字列{isSqlNullable = yes、maxLen = 4}; 採用日{isSqlNullable = yes};終わり
  • この例では、レコードEmployee はEmployeeという名前のテーブル (またはビュー) にバインドされます

サービス

[編集]

EGLサービスパーツには、他のアプリケーションやシステムからアクセスすることを目的としたパブリック関数が含まれています。この例では、2つの関数を持つサービスが定義されています。

パッケージcom . mycompany . services ; サービス従業員サービス  関数getEmployees ()は( Employee [])を返します。   records Employee [ 0 ] ; // 空のレコード配列を定義する   レコードを取得; // データベースからレコードを取得する   return ( records ) ; // レコードを返す    終わり  関数addEmployee ( emp Employee in )は( boolean )を返します      試す rempを追加します  戻り値( true ) ;  onException (例: AnyException )   戻り値( false ) ;  終わり 終わり終わり
  • EGLでは、コードはパッケージに編成されます(Java(プログラミング言語)のように)
  • 最初の関数getEmployees は、データベース内のレコードから生成されたレコードの配列を返します。
  • 2 番目の関数addEmployee は、データベースに新しいレコードを追加し、レコードが正常に追加されたかどうかに応じて true または false を返します。

RUIハンドラー

[編集]

リッチUIアプリケーションの主要コンポーネントは、リッチUIハンドラー部分です。これらの部分はJavaScriptで生成されます。

パッケージcom . mycompany . ui ; com . mycompany . services . Employeeをインポートします com.mycompany.services.EmployeeServiceインポートます dojo.widgets.DojoGridインポートます dojo.widgets.DojoGridColumnインポートます ハンドラーEmployeeViewRUIhandler { initialUI = [ grid ],           onConstructionFunction =開始    cssファイル= "main.css" }    グリッドDojoGrid {動作= [ ],ヘッダー動作= [ ],= [              新しいDojoGridColumn { displayName = "名" name = "FIRSTNAME" },          新しいDojoGridColumn { displayName = "姓" name = "LASTNAME" },          新しいDojoGridColumn { displayName = "給与" name = "給与" }          ] };  関数開始()  svc従業員サービス{ };    svc.getEmployees ()呼び出しdisplayEmployees戻ります      終わり 関数displayEmployees ( retResult Employee [ ] in )      グリッド.data = retResult をany [ ]として返します。       終わり 終わり

EGLを使用したWeb 2.0

[編集]

2008年12月、IBMはWeb 2.0スタイルのリッチWebアプリケーションの作成を簡素化する新しいテクノロジー、EGL Rich UIを発表しました。このテクノロジーは、 AjaxJavaScriptRESTSOAPの複雑さを開発者から隠蔽することで開発を簡素化し、開発者が基盤となるテクノロジーではなくビジネス要件に集中できるようにします。

市販製品

[編集]

EGLプログラミングツールはEclipseベース[ 2 ]の商用製品であるRational Business Developerとして提供されており、またRational Developer for System zのEGLエディションとしても提供されています

EGL は、手続き型言語や従来の第 4 世代言語との言語セマンティクスの親和性により、レガシー アプリケーションの最新化のターゲット言語です

  • Rational Business Developer製品内で利用可能な一連の変換ツールは、古い安定したIBMおよびInformix 第4世代言語からの変換を自動化します。
  • IBM のサービス オファリングと補完製品 (Rational Migration Extension for Natural、Rational Migration Extension for System i、Rational Migration Extension for CA 製品) のセットは、Software AG NaturalIBM RPG、CA Cool:Gen、および CA Ideal/Datacom から EGL に変換する機能を提供します。

大規模なEGLコードベースを検索し、個々のEGLファイルの変更を比較し、重複したコードを検出するツールは、Semantic Designs [ 3 ]から入手可能である。

参考文献

[編集]
  1. ^ EDT (EGL開発ツール)
  2. ^ エクリプス
  3. ^ 「セマンティックデザイン」 。 2011年7月16日時点のオリジナルよりアーカイブ2010年8月13日閲覧。

さらに読む

[編集]
[編集]
    EGL
    (エンタープライズ生成言語)
    開発者IBM
    ライセンスEclipseパブリックライセンス
    Webサイトwww.eclipse.org/edt/

    EGL(エンタープライズ生成言語)は、もともとIBMによって開発され、現在はEclipse Public License (EPL)の下でEDT(EGL開発ツール) [1] オープンソースプロジェクトとして利用可能であり、言語、フレームワーク、ランタイムプラットフォーム間で共通の言語とプログラミングモデルを提供することで、現代のマルチプラットフォームアプリケーション開発の課題に対応するように設計されたプログラミング技術です。

    概要

    この言語は、 JavaCOBOLCなどの静的型付け言語を使用する人にとって馴染みのある概念を借用しています。ただし、静的型付けプログラミング言語では通常見られない、統一モデリング言語(UML)のステレオタイプの概念を借用しています。簡単に言えば、EGLは高水準の汎用アプリケーション開発言語です。

    EGLは他の一般的な言語と構文が類似しているため、同様のプログラミング経験を持つアプリケーション開発者であれば習得可能です。EGLアプリケーション開発の抽象化により、プログラマーはシステムやミドルウェアの技術インターフェースから解放され、ビジネス機能の構築に集中できます。EGLアプリケーションとサービスは、EGLソースレベルで記述、テスト、デバッグされ、十分な機能テストが完了すると、COBOL、Java、またはJavaScriptコードにコンパイルされ、以下の環境で実行可能なビジネスアプリケーションの展開をサポートします。

    コード例

    プログラム

    EGLプログラムパーツは、1つのエントリーポイントを持つ生成可能なロジックパーツです。各プログラムパーツには、プログラム起動時に実行されるロジックを表すmain()関数が含まれています。プログラムは他の関数を組み込んだり、プログラム外部の関数にアクセスしたりできます。関数main()は、これらの他の関数を呼び出すことができます。プログラム関数は、EGL文、変数、および定数のセットで構成されます。

    HelloWorldプログラム const GREETING文字列= "こんにちは" ;      関数main () myName 文字= " John " ;   sayHello (私の名前) ;終わり関数sayHello ( name String in )   SysLib.writeStdOut ( GREETING +名前+ " ! " ) ;    終わり終わり

    記録

    EGLレコードパーツは、データ要素のセットを定義します。この例では、CustomerRecordという名前のレコードが6つのフィールドで定義されています。

    レコードCustomerRecordタイプBasicRecord customerNumber INT ; customerName STRING ; customerAddr1 STRING ; customerAddr2 STRING ; customerAddr3 STRING ; customerBalance MONEY ; end          

    EGL には、リレーショナル データベースとデータを交換するために使用される、 SQLRecordと呼ばれる特殊なタイプのレコードがあります。

    レコード従業員タイプ sqlRecord { tableNames =[["Employee"]], keyItems =[EMPNO]} EMPNUMBER 文字列{列 = "EMPNO", maxLen = 6}; FIRSTNME 文字列{sqlVariableLen = yes、maxLen = 12}; MIDINIT 文字列{isSqlNullable = yes、maxLen = 1}; LASTNAME 文字列{sqlVariableLen = yes、maxLen = 15}; DEPT 文字列{列 = "WORKDEPT", isSqlNullable = yes, maxLen = 3}; PHONENO 文字列{isSqlNullable = yes、maxLen = 4}; 採用日{isSqlNullable = yes};終わり
    • この例では、レコードEmployee はEmployeeという名前のテーブル (またはビュー) にバインドされます

    サービス

    EGLサービスパーツには、他のアプリケーションやシステムからアクセスすることを目的としたパブリック関数が含まれています。この例では、2つの関数を持つサービスが定義されています。

    パッケージcom . mycompany . services ; サービス従業員サービス  関数getEmployees ()は( Employee [])を返します。   records Employee [ 0 ] ; // 空のレコード配列を定義する   レコードを取得; // データベースからレコードを取得する   return ( records ) ; // レコードを返す    終わり  関数addEmployee ( emp Employee in )は( boolean )を返します      試す rempを追加します  戻り値( true ) ;  onException (例: AnyException )   戻り値( false ) ;  終わり 終わり終わり
    • EGLでは、コードはパッケージに編成されます(Java(プログラミング言語)のように)
    • 最初の関数getEmployees は、データベース内のレコードから生成されたレコードの配列を返します。
    • 2 番目の関数addEmployee は、データベースに新しいレコードを追加し、レコードが正常に追加されたかどうかに応じて true または false を返します。

    RUIハンドラー

    リッチUIアプリケーションの主要コンポーネントは、リッチUIハンドラー部分です。これらの部分はJavaScriptで生成されます。

    パッケージcom . mycompany . ui ; com . mycompany . services . Employeeをインポートします com.mycompany.services.EmployeeServiceインポートます dojo.widgets.DojoGridインポートます dojo.widgets.DojoGridColumnインポートます ハンドラーEmployeeViewRUIhandler { initialUI = [ grid ],           onConstructionFunction =開始    cssファイル= "main.css" }    グリッドDojoGrid {動作= [ ],ヘッダー動作= [ ],= [              新しいDojoGridColumn { displayName = "名" name = "FIRSTNAME" },          新しいDojoGridColumn { displayName = "姓" name = "LASTNAME" },          新しいDojoGridColumn { displayName = "給与" name = "給与" }          ] };  関数開始()  svc従業員サービス{ };    svc.getEmployees ()呼び出しdisplayEmployees戻ります      終わり 関数displayEmployees ( retResult Employee [ ] in )      グリッド.data = retResult をany [ ]として返します。       終わり 終わり

    EGLを使用したWeb 2.0

    2008年12月、IBMはWeb 2.0スタイルのリッチWebアプリケーションの作成を簡素化する新しいテクノロジー、EGL Rich UIを発表しました。このテクノロジーは、 AjaxJavaScriptRESTSOAPの複雑さを開発者から隠蔽することで開発を簡素化し、開発者が基盤となるテクノロジーではなくビジネス要件に集中できるようにします。

    市販製品

    EGLプログラミングツールは、Eclipseベース[2]の商用製品であるRational Business Developerとして提供されており、またRational Developer for System zのEGLエディションでも提供されています。

    EGL は、手続き型言語や従来の第 4 世代言語との言語セマンティクスの親和性により、レガシー アプリケーションの最新化のターゲット言語です

    • Rational Business Developer製品内で利用可能な一連の変換ツールは、古い安定したIBMおよびInformix 第4世代言語からの変換を自動化します。
    • IBM のサービス オファリングと補完製品 (Rational Migration Extension for Natural、Rational Migration Extension for System i、Rational Migration Extension for CA 製品) のセットは、Software AG NaturalIBM RPG、CA Cool:Gen、および CA Ideal/Datacom から EGL に変換する機能を提供します。

    大規模なEGLコードベースを検索し、個々のEGLファイルの変更を比較し、重複したコードを検出するツールは、Semantic Designs [3]から入手可能である。

    参考文献

    1. ^ EDT (EGL開発ツール)
    2. ^ エクリプス
    3. ^ “セマンティックデザイン”. 2011年7月16日時点のオリジナルよりアーカイブ2010年8月13日閲覧。

    さらに読む

    Retrieved from "https://en.wikipedia.org/w/index.php?title=EGL_(programming_language)&oldid=1329975923"
    Original text
    Rate this translation
    Your feedback will be used to help improve Google Translate