インターネット時代の COBOLの技術・活用動向 COBOLコンソーシアム会長 今城 哲二 (JIS COBOL原案作成委員会 委員長) 1 All Rights Reserved,Copyright © 2001, COBOL Consortium 目 次 Ⅰ. COBOLコンソーシアムのご案内 Ⅱ. COBOLの現状と特長 Ⅲ. 新環境・新技術に対応するCOBOL Ⅳ.Web環境への対応 ーアプリケーションサーバ と Java連携ー Ⅴ.COBOL-XML連携機能 Ⅵ.COBOL標準化最新動向 Ⅶ. まとめ 2 All Rights Reserved,Copyright © 2001, COBOL Consortium Ⅰ.COBOLコンソーシアムのご案内 3 All Rights Reserved,Copyright © 2001, COBOL Consortium 「COBOLコンソーシアム」 設立目的: COBOLコンソーシアムは,COBOL言語を広く普及させると ともにCOBOLユーザの利益を守るために,2000年12月に設立 された非営利団体です。 会員企業: ゼータビッツ株式会社 株式会社 ドット研究所 日本アイ・ビー・エム株式会社 富士通株式会社 東京システムハウス株式会社 日本電気株式会社 株式会社 日立製作所 メラント株式会社 事業内容: CORBA,Java/EJB,XMLといった最新技術と融合したCOBOLの利用技術 や,2002年制定予定の次期規格仕様を活かしたCOBOLのコーディングノウハ ウなど,ユーザにとって有用な最新の知識や技術情報を,セミナー,メールマガ ジン,ホームページなどの媒体を通じて発信していきます。 ホームページ: http://www.cobol.gr.jp/ 4 All Rights Reserved,Copyright © 2001, COBOL Consortium Ⅱ.COBOLの現状と特長 5 All Rights Reserved,Copyright © 2001, COBOL Consortium ビジネスシステムの世界で 色あせないCOBOL インターネット/Webシステムを基盤とした新しいビジネスシステム の構築においても,大きな役割を担っている。 米国の統計でも,今も一番使われているのはCOBOL COBOL Visual BASIC 世界の プログラマ数 年間の プログラム開発量 C または C++ 300万人 160万人 110万人 35% 35% - 6 All Rights Reserved,Copyright © 2001, COBOL Consortium 売上げを伸ばすCOBOL COBOLが再評価され,「WS/PC版のCOBOL開発環境製品」の 国内出荷数も年々順調に伸びています。 70000 7万本 60000 6万本 5万本 50000 4万本 40000 3万本 30000 2万本 20000 1万本 10000 0 1996年 1997年 1998年 1999年 2000年(目標値) 出典: 日経システムプロバイダ 1999.10.15号 日経システムプロバイダ 2000.9.15号 WS/PC COBOLの市場が拡大,マスコミも注目 : 近年,各雑誌でもCOBOL関連の記事が増えてきました。 7 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL関連の記事/イベント 特集 Java普及に立ちふさがるCOBOL: 日経コンピュータ 2000年8月28日号 COBOL開発の最前線: 日経オープンシステム 2000年9月号 売れ行きチェック・ オープン系COBOL: 日経システムプロバイダ 2000年9月15日号 特集 あなたの知らない COBOLの世界: 日経ソフトウエア 2000年11月号 COBOL生誕40周年記念セミナー:20000年9月18日(日経BP社主催) COBOLの40年: 共立出版社 bit 2001年2月号 21世紀も,COBOLだね: 共立出版社 bit 2001年4月号 COBOLによるXMLサポートの実例: JavaWORLD 2001年6月号 インターネット環境への親和性高まり COBOLの有用性が再認識: 日経オープンシステムズ 2001年3月号 エムティーアイのリモート携帯電話販売システム 複数会社にわたるシステムで COBOLとJavaをリアルタイム連携: 日経オープンシステムズ 2001年5月号 サーバ対応へ進化 汎用機向け資産生かす: 日経産業新聞 2001年5月31日 8 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL言語の成熟度(C, Javaとの対比) 壮 年 期 COBOL 成青 年 熟期 度 C/C++ 幼 年 期 00 20 95 19 90 19 85 19 80 19 75 19 70 19 65 19 19 60 Java 9 All Rights Reserved,Copyright © 2001, COBOL Consortium プログラム言語の特徴・用途 (言語選択の基準) 言語 特長・用途 COBOL 事務処理に特化,基幹業務システム開発用 C/C++ 高級アセンブラ,基本ソフトウエアの開発用 (C++は,オブジェクト指向を取入れたベターC) Fortran Java Visual Basic 科学技術計算に特化,研究者・技術者向け 生まれはマイコンソフト開発用,インターネット環境で急激に普及 (言語仕様はシンプルだが,多くの関連知識が必要) Microsoft社が独自に開発, GUIアプリケーション開発用 10 All Rights Reserved,Copyright © 2001, COBOL Consortium 企業システムで「COBOL」が選ばれる理由(1) ●高い生産性 基幹業務に必要な機能(ビジネスロジックの記述)を言語仕様として装備し ているので,ビジネスアプリケーション開発の生産性が向上する。 手続き名や項目名に日本語が使用でき,読みやすいプログラムを作成できる。 ●安定した品質と高性能のプログラムを提供 ビジネスアプリケーションではC言語より速いプログラムが作成できる。 ●メインフレーム時代から長年蓄積されたシステム開発技法の活用 過去40年に渡ってCOBOL技術者の間に蓄積されてきたビジネスシステム開発 ノウハウを有効活用できる。また,開発現場で格闘してきたCOBOLプログラマ の経験・スキルを活かし, 信頼性の高いシステムを比較的安価に作成できる。 11 All Rights Reserved,Copyright © 2001, COBOL Consortium 企業システムで「COBOL」が選ばれる理由(2) ●多くのプラットフォームがサポートする標準規格があり将来も安心 COBOLは,30年以上も国際規格により上位互換性が守られてきた言語であ り,事務処理がなくならない限り生き続ける言語である。 現在も,2002年を目標に次期国際規格(COBOL2002)の制定作業が進められ ている。 今後も,メインフレームからオフコン,WS/PCまで共通して使用できる 言語として,プラットホームの変化・発展に柔軟に対応していく。 ●常に先端技術にも適応,今後も進化 データベース技術,分散オブジェクト技術,Webコンピューティング技術など の新しい技術にも常に積極的に対応し進化し続けている。 12 All Rights Reserved,Copyright © 2001, COBOL Consortium 長期のメンテナンスが必要な ビジネスロジック構築はCOBOLで プレゼンテーション層 HTML Java (スクリプト) COBOL スクリプト COBOL GUI 構築ツール Visual Basic アプリケーション層(ビジネスロジック) COBOL プログラム データ層 Oracle Microsoft SQL Server 各社DB 各社DB ・・・ ユーザインタフェース(プレゼンテーション層)は必要に応じて使い分け ビジネスロジックは資産・知識・経験が活かせるCOBOLで構築 13 All Rights Reserved,Copyright © 2001, COBOL Consortium Ⅲ. 新環境・新技術に対応する COBOL 14 All Rights Reserved,Copyright © 2001, COBOL Consortium 最新技術・最新環境にも適応 COBOLは,新しいITに積極的に対応し,進化している! データベース技術への対応 CODASYLデータベース,リレーショナルデータベース(SQL),ODBC OLTP技術(各社オンライン環境)への対応 各時代の新しいパラダイム(構造化プログラミング/オブジェクト 指向プログラミング)に対応 GUIアプリケーション(イベント駆動型) に対応 COBOL GUIアプリケーション構築ツール,VB連携機能 他言語(C等)インタフェースのサポート CORBAやDCOMなど,分散オブジェクト技術への対応 Webコンピューティングへの対応 CGIプログラム作成支援機能 COBOLスクリプト(COBOL言語ベースのWeb向けスクリプト言語) Webアプリケーションサーバ対応( Java/EJB連携機能) XML(eXtensible Markup Language)への対応 最新ハード環境(64ビット等)やVMへの対応 15 All Rights Reserved,Copyright © 2001, COBOL Consortium データベース技術への対応 SQLインタフェースをサポート ODBCインタフェース(Windowsプラットホーム) によるリレーショナルデータベースアクセス WindowsNT サーバ RDB UNIX サーバ゙ RDB メインフレーム RDB COBOLLソース (埋め込みSQL) : EXEC SQL FETCH ~ : : END-EXEC, : : 各種ODBCドライバ COBOL アプリケーション Windows 16 All Rights Reserved,Copyright © 2001, COBOL Consortium OLTP技術への対応 オンライン処理システムでは,各社のOLTPシステムの 下で動くアプリケーションがCOBOLで記述されている。 オンライン 端末 オンライン 端末 : : オンライン 端末 OLTP COBOL UAP COBOL UAP DB COBOL UAP 17 All Rights Reserved,Copyright © 2001, COBOL Consortium オブジェクト指向COBOL ●COBOLと完全上位互換 COBOLの経験とスキルを活かして, オブジェクト指向というプログラミングパラダイムでの COBOLプログラム作成が可能 オブジェクト指向COBOL COBOL クラス定義 呼び起こし カプセル化 多重継承 ポリモフィズム 適合 ●オブジェクト指向によるメリット ・差分プログラミング :継承機能により上位クラスと異なる部分だけ記述 ・カプセル化:内部データの隠蔽による保守性の向上 ・汎用機能のクラスライブラリ(コンポーネント)化によりプログラム作成量大幅減 COBOL GUI 構築ツール Windows 特有のイベント駆動型GUIアプリケーションも, 慣れたCOBOLのスキルで作成きる。 ・イベント手続きはCOBOLで記述 ・Window / GUI部品に対する アクセス もCOBOLで記述 既成の部品をフォームに貼りつけることで GUI画面が作成できる。 19 All Rights Reserved,Copyright © 2001, COBOL Consortium 分散オブジェクト環境に対応 CORBA 環境やDCOM環境で稼動するサーバアプリケーションを COBOLで開発できる。 サーバ COBOL 実行形式 (CORBAサーバ または OLEサーバ) COBOL コンパイラ COBOL ソース CORBA 国際的な標準化団体OMG(Object Management Group)が仕様 を定め,ISOも採用しているORBの仕様。 DCOM MS社が提唱しているOLE2をベースとする分散オブジェクト 環境の仕様。ORBはWindows の機能としてOSに内蔵される。 20 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOLでのDCOMアプリケーション開発 ・クライアントのプレゼンテーションは,EXCEL や VB を使用 ・サーバの業務ロジックやDBへのアクセスは,既存のCOBOLアプリケーションを活用 COBOLクライアント INVOKE OLE-HANDLE 'SUB' USING BY VALUE IN-KEY RETURNING COUNT1 COBOLサーバ プログラム (OLEサーバ) DB Set Obj1 = CreateObject("SRVSUB.CBLPrgmClass") COUNT1 = Obj1.SUB(IN-KEY) Excelのマクロ,Visual Basic 21 All Rights Reserved,Copyright © 2001, COBOL Consortium Ⅳ.Web環境への対応 ーアプリケーションサーバ と Java連携ー 22 All Rights Reserved,Copyright © 2001, COBOL Consortium Webシステムの構築形態 COBOL (CGI) COBOL (CGI) サーバ OLTP COBOL アプリケーション Java (Servlet) (JSP) Java COBOL アプリ (Servlet) (JSP) ケーション アプリケーション サーバ ① W e b サ | バ wwwブラウザ COBOL スクリプト ② クライアント ③ インターネット/ イントラネット ① WebサーバアプリケーションCGIをCOBOLで作成できる。 HTMLファイル中にCOBOLスクリプトを記述して,入力チェックなどの処理をブラウザ側で実行可能 ②Java-COBOL連携機能を使用すると,既存のOLTPシステムを容易にWeb化できる。 ③ Java-COBOL連携機能を使用すると, JavaからCOBOLアプリケーションを利用できる。 23 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL(CGI機能)によるWebアプリケーション作成 COBOLによる CGIプログラム作成を支援: フォーム情報の解析,HTMLコードの自動生成,HTMLファイルのCOBOL副プログラムへの変換) 入力情報 の解析 ブラウザから送信されるフォーム情報の形式 SEI=%93%FA%97%A7&MEI=%91%BE%98%59&SUBMIT=%91%97%90%4D COBOL CGI機能を使うと...。 PROCEDURE DIVISION. DATA-GET. CALL “CBLCGIINIT“ USING A COBOL CGIプログラム のコーディングが簡単 COBOL CGI機能を使わないと...。 PROCEDURE DIVISION. DATA-GET. ACCEPT PARAM FROM SYSIN. PERFORM VARYING ANPA-COUNT FROM 1 BY 1 UNTIL SW-1 NOT = 0 UNSTRING PARAM DELIMITED BY "&" INTO W-BOX-1-REC(ANPACOUNT) : END-UNSTRING END-PERFORM. フォーム情報の処理に, 煩雑なコーディングが必要 24 All Rights Reserved,Copyright © 2001, COBOL Consortium Webシステム構築の最新トレンド e-ビジネスを支えるWebアプリケーションシステムの 迅速 な構築は企業の競争力強化の必須条件 問題点: 従来のWebシステム構築方式(Webサーバ + CGI)では, 大規模化・高性能化の要求に対応が困難 最新トレンド: Webアプリケーションサーバで対応 ● 業界標準のエンタープライズJava(J2EE) をサポートした Javaベースのアプリケーションサーバの適用が活発化 - 多様なプラットホームに対応でき,プログラム資産の共用・流用 がしやすい。また,スケーラビリティも高い。 - Javaベース汎用共通部品(EJB)を活用できる。 COBOL資産の有効活用 Java技術者の不足が深刻 ● ビジネスロジックを担うCOBOL既存資産(プログラム資産, 人的資産) の有効活用が不可欠 25 All Rights Reserved,Copyright © 2001, COBOL Consortium Webアプリケーションサーバ Webアプリケーションシステムを容易かつ迅速に 開発・運用できる環境を提供 情報システムへのニーズ Webアプリケーションサーバ ◆いつでもどこからでも 利用者中心のサービスを 素早く提供 ◆Webベースのシステム バックエンドサービスの統合 コンポーネント組み合わせ開発/既存資産の利用 ◆クライアントAPの管理を軽減 ◆Webブラウザのみで実現 Webブラウザ アプリケーションサーバ W e b サ ー バ プレゼンテーション層 DB 業務AP (COBOL,他) アプリケーション層 データ層 26 All Rights Reserved,Copyright © 2001, COBOL Consortium Java-COBOL連携機能 Javaベースのアプリケーションサーバ環境で COBOL資産を有効活用する手段を提供 Java-COBOL連携機能によって,Javaアプリケーション(ServletやJSP)から COBOLプログラムをJavaBeans(EJB)として簡単に呼出せる。 既存の資産を活用 メインフレーム,オフコン, クライアント/サーバシステム等 アプリケーションサーバ COBOL プログラム -既存資産- 既存の COBOL プログラム 既存の COBOL プログラム Java-COBOL連携機能 (JavaBeans) Java (Servlet, JSP) Webサーバ 27 All Rights Reserved,Copyright © 2001, COBOL Consortium Java-COBOL連携による オンライントランザクション処理システム Webオンライン処理システムを迅速に構築可能: ・EJBのOLTP機能(セッション管理等)を活用して構築 ・使用実績のある既存のOLTPサーバ環境をそのまま活用して構築 Webアプリケーション サーバ Web クライアント : :: Web イ ン タ ー ネ ッ ト W e b サ | バ JSP/ Servlet JSP/ Servlet E J B Java Bean COBOL アプリケー ション Java Bean クライアント 既存の OLTPサーバ COBOL COBOL COBOL アプリケーション 既存の COBOL資 産を活用 28 All Rights Reserved,Copyright © 2001, COBOL Consortium マイクロソフト .NETフレームワークに対応 .NETの目標: アプリケーションとインターネットの融合 インターネット標準のプロトコル(HTTP, XML/SOAP)により,様々なデバイス, アプリケーション,サービス間のシームレスな連携 インターネット上の再利用可能なサービスの組み合わせによりシステムを構築 モバイル … 携帯電話 スマートカード 他のサービス 各サービス間の呼出しは,XML ベースの標準プロトコルSOAP (Simple Object Access Protocol)を使 用 インターネット (HTTP, XML/SOAP) △△ サービス (COBOL 他) ○○ システム (COBOL他) 共通 サービス (COBOL 他) 業種 サービス (COBOL他) その他 サービス (COBOL他) サービスプロバイダ プロバイダが提供するインターネット上の サービスや社内のサービスを組み合わせ, 新たなシステム/サービスを構築 29 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOLによる .NETアプリケーション開発 言語間のシームレスな連携により,それぞれの言語の特長や開発担当者の スキルを活かした言語選択が可能 フロント~バックまで,COBOLで一貫した開発が可能 ブラウザ フロントシステム ミドルシステム ASP.NET HTTP スマートクライアント (COBOL他) 他システム HTTP SOAP COM+ WebForms IIS WinForms HTTP SOAP イ ン タ ー ネ ッ ト COM+ (COBOL他) WebService 業務ロジック (COBOL) 業務ロジック COM+ (COBOL) 業務ロジック ADO.NET メインフレーム等 (COBOL) (COBOL他) SQL バックシステム SQL ADO.NET HTTP SOAP 他のWebサービス .NET フレームワーク 30 All Rights Reserved,Copyright © 2001, COBOL Consortium Ⅴ. COBOL-XML連携機能 -BtoB でのデータ交換などに適用- 31 All Rights Reserved,Copyright © 2001, COBOL Consortium XMLのメリット ●XML (Extensible Markup Language) は,W3Cの提唱する ドキュメント形式に関する規格で,拡張性に優れてる。 ・タグを自由に定義できる タグの意味付けが定義でき,ドキュメントの論理的・意味的な構造を明確にできる。 ・ 複雑な構造をもったデータも記述できる 帳票やテーブルのような比較的に単純,少量のデータばかりでなく, 論文やマニュアルのような複雑,多量のドキュメントをも記述できる。 ・ プラットフォームに依存しない柔軟な処理が可能である。 表面的には文字列データであり,プラットフォームに依存しない自由なデータ交換・ データ連携やデータ保存が実現できる。 今後,EDI(電子データ交換)やアプリケーション間通信のための 標準データフォーマットとして適用範囲が拡大 ●特に,e-ビジネスでの企業間相互接続のデータ交換技術として注目 ● 32 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOLーXML連携機能 ●XMLデータをCOBOLのレコードとして, COBOLプログラムから入出力ができる。 ・XMLデータの構造とCOBOLレコードの対応付けを行うCOBOL副プログラ ム(XMLアクルスルーチン)を自動的に生成 このCOBOL副プログラムをCALL文で呼出すだけでXMLデータを入出力 ・XMLデータの構造を意識した煩雑なプログラミングは不要 (DOMやSAXの知識が不要) DOM:Document Object Model,SAX: Simple API for XML 既存COBOL資産を活用し,慣れたCOBOLのノウハウ を活かして,XMLデータ処理アプリケーションのプログ ラミングができる。 33 All Rights Reserved,Copyright © 2001, COBOL Consortium XMLデータとCOBOLレコードとの対応例 XMLデータ <注文伝票> <商品> <商品名>洗顔石鹸</商品名> <注文数> 10</注文数> </商品> <商品> <商品名>シャンプ-</商品名> <注文数> 5</注文数> </商品> <商品> <商品名>リンス</商品名> <注文数> 5</注文数> </商品> </注文伝票> DTD(文書定義ファイル) COBOLアプリケーション COBOLレコード:注文伝票 商 商品名 XML アクセス ルーチン 品 注文数 洗顔石鹸 10 シャンプ- 5 リンス 5 COBOLレコード定義 01 注文伝票. 05 商品 OCCURS 10. 10 商品名 PIC N(10). 10 注文数 PIC 9(9). <!DOCTYPE 注文伝票 [ <!ELEMENT 注文伝票 (商品)*> <!ELEMENT 商品 (商品名, 注文数) > <!ELEMENT 商品名 (#PCDATA)> <!ELEMENT 注文数 (#PCDATA)> ]> 34 All Rights Reserved,Copyright © 2001, COBOL Consortium Ⅵ.COBOL標準化の最新動向 35 All Rights Reserved,Copyright © 2001, COBOL Consortium 次期規格(COBOL2002)を制定作業中 今までも 1968に誕生以来,’74(索引・相対ファイルなど),’85(構造化プログラミングなど)の 大改訂を経て現在まで30年間,ISO規格が存在し,高い互換性,移行性を維持。 今後も 最新の技術・環境に対応するべく,COBOL2002 規格を制定作業中。 全世界COBOLプログラマ 300万人のために ・ 21世紀にも安心して使用可能 ・ 安定した性能を提供 最新技術の取り込み ・ オブジェクト指向、国際化機能など 膨大な既存資産を継承する →完全互換 規格のオプション機能を廃止 → ベンダは全機能をサポート要 36 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOLの歴史: COBOLの誕生 最初のアイデア 英語でのプログラム作成 共通の言語仕様 最初のCOBOL仕様書 CODASYL (the Conference on Data Systems Languages) 1960/4 仕様書発行(COBOL-60) 37 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOLの歴史: 規格化 ANSI ISO 第1次 68 72 第2次 大改訂(相対・索引ファイル他) 74 第3次(COBOL 85) 大改訂(構造化プログラミング他) 第3.1次 小改訂(組込み関数) JIS 72 78 85 85 80 88 90 第4次(COBOL2002) 2002 大改訂 ・オブジェクト指向,マルチバイト など,100項目もの大小改訂 92 92 2002 2003 38 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002: 規格化のスケジュール 追加項目決定 (ISO) 1992/6 WD (作業草案) FCD 1995/3 (委員会最終案) 2001/2 DIS (国際規格草案) IS 2002/6 (国際規格) 2002/12 WD: Working Draft DIS: Draft International Standard FCD: Final Committee Draft IS: International Standard 39 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL 2002: 規格委員会の関係 ISO/IEC JTC1/SC22/WG4 (COBOL) 1回/年 ● 国際規格原案の作成・審議 SC22では他に FORTRAN,C,C++,Ada,BASIC,PASCAL,LISP,PROLOG,POSIX,言語共通、 国際化など ● メンバー:アメリカ(主査),カナダ,日本(ITSCJ),イギリス,ドイツ,オランダ (ANSI) NCITS J4 (旧 X3J4) 6回/年 ● 国際規格原案の作成(ISOからの委託) ● メンバー:Merant(議長), IBM, Unisys, Compaq, EDS, ITSCJ(日本), Fujitsu Software Corp. 他 情報処理学会 情報規格調査会 IPSJ/ITSCJ SC22/COBOL WG CODASYL 4回/年 ● 言語仕様の開発と保守 ● 1992年X3J4に吸収・ 合併 (1959~1992) + JIS COBOL作成委員会 ● 国際規格の審査 ● ISO/ANSI のCOBOL WGへの参加 ● メンバー:日立(主査),日電,沖,三菱,日本IBM, NHK,東芝, 富士通,日本ユニシス,日立ソフトウェアエンジニアリング, 奈良先端科学技術大学院大学 * メンバー欄はそれぞれ順不同 40 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主要機能 1. オブジェクト指向機能 2. 漢字等の多オクテット文字処理機能 3. 自由形式の正書法 4. コンパイラ指示機能 5. ビット操作機能 6. 浮動小数点データ操作機能 7. 利用者定義のデータ型機能 8. 利用者定義の関数機能 9. ファイルの共用と排他制御の機能 10. 画面処理機能 11. 例外割り込み処理機能 12. データの妥当性検査機能 13. 言語間連絡の拡張 14. ポインタ項目とアドレス付け機能 15. 標準算術演算と31桁への拡張 16. その他(POSIXのロケールに対応した地域・文化固有機能、 既存プログラムとの互換) 41 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主な新機能: オブジェクト指向機能 (1) オブジェクト指向技術による生産性/再利用性向上 オブジェクト指向言語の特徴を実現 カプセル化 (クラス定義/インターフェース定義) 継承(多重継承を含む) ポリモーフィズム 適合(コンパイル時/実行時 の型チェックの仕掛け) ガーベジ・コレクション(自動メモリ管理機構) 42 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主な新機能: オブジェクト指向機能 (2) オブジェクト参照データの定義 01 OR-1 USAGE OBJECT REFERENCE クラス名. 既存のプログラムを呼ぶ CALL "既存のプログラム名" オブジェクト指向のメソッドを呼ぶ INVOKE オブジェクト一意名 "メソッド名" 43 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主な新機能: オブジェクト指向機能 (3) クラス定義 オブジェクト 定義 メソッド定義 IDENTIFICATION DIVISION. CLASS-ID. 当座 INHERITS 預金. IDENTIFICATION DIVISION. OBJECT. DATA DIVISION. WORKIGN-STORAGE SECTION. 01 残高 PIC S9(9). PROCEDURE DIVISION. IDENTIFICATION DIVISION. METHOD-ID. 預け入れ. ・・・ END METHOD 預け入れ. END OBJECT. END CLASS 当座. 44 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主な新機能: 漢字(多バイト文字)を扱う機能 漢字などを多バイト文字として一般化 ユーザ定義語,注記,定数,内部処理(転記,比較), 入出力処理,1byte/2byte変換関数, POSIXのロケール機能(各国語対応にスイッチ), etc. 01 01 01 01 売上高 日本語 英語 各国語 PIC 9(9). PIC N(3) VALUE N"日本語". PIC X(7) VALUE "English". PIC N(3). ... MOVE 日本語 TO 各国語. WRITE 集計表 FROM タイトル. (1byte/2byte切替え用のシフトコードの自動挿入あり) 45 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主な新機能: 自由形式正書法 多バイト文字を扱うための前提 自由形式正書法 L++++++++1+++++++++2+++++++++3+++++ +++R 口座入金 SECTION. ADD 財布 TO 口座. *> 貯金が増える 固定形式正書法 (A/B領域がなくなる) L+++++CP+1+++++++++2+++++++++3+++++ +++R 000130 小遣い計算 SECTION. ・従来は8-11カラムで 始まって い : ないためエラー 000240 MOVE ZERO TO 財布. ・従来は8-11カラムから 始まって いるためエラー 46 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主な新機能: コンパイラ指令行 多バイト文字処理や例外処理等のスイッチング >> FLAG85 DIVIDE OFF (旧規格仕様警告) >> LISTING ON (ソースリスト出力指示) >> PAGE 次ページの先頭に印字されるコメント >> PROPAGATE ON (例外の伝播) >> SOURCE FORMAT IS FIXED (ソース形式 自由書式/固定書式) >> TURN EC-RANGE-PERFORM-VARYING CHECKING ON (発生する例外の指示) >> IMP <個々のコンパイラのオプション等> 47 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主な新機能: ビット・ブールサポート ビット列とブール演算を用いたプログラミング ビット・ブールを扱える機能 データ型、定数、転記・比較、演算(AND, OR, NOT) 01 ビット1 PIC 1(5) VALUE B"10101". 01 ビット2 PIC 1(5) VALUE B"01010". 01 ビット3 PIC 1(5). COMPUTE ビット3 = ビット1 B-OR ビット2 48 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主な新機能:利用者定義型 型定義 と 型名によるデータ定義 と 型チェック 01 日付 05 年 05 月 05 日 IS TYPEDEF. PIC 9(4). PIC 9(2). PIC 9(2). 01 FILLER. 05 受注日 TYPE 日付. 05 納入日 TYPE 日付. 49 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主な新機能: 関数(1) 戻り値を伴う処理を関数として定義できる 組込み関数(1989年に規格化済) 機能 数学関数 関数名 ・SIN, COS,TAN等 日付に関する関数 ・CURRENT-DATE (4桁年号) ・DATE-OF-INTEGER等 文字に関する関数 ・CHAR ・LENGTH 等 使用例: COMPUTE A = LENGTH(S) – 4 50 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主な新機能: 関数(2) 利用者定義関数 戻り値を伴う処理を関数として定義できる IDENTIFICATION DIVISION. FUNCTION-ID. 最大公約数. DATA DIVISION. LINKAGE SECTION. 01 A PIC S9(9). 01 B PIC S9(9). 01 R PIC S9(9). PROCEDURE DIVISION USING A B RETURNING R. ... END FUNCTION 最大公約数. 関数の参照 *> 別のプログラムの中で --COMPUTE 結果 = 最大公約数(X Y) All Rights Reserved,Copyright © 2001, COBOL Consortium 51 COBOL2002の主な新機能:例外処理機能 COBOL 共通の例外処理機構 01 A PIC 99 VALUE 50. 01 B PIC 99 VALUE 60. PROCEDURE DIVISION DECLARATIVES. SIZE-OVERFLOW SECTION. USE AFTER EXCEPTION EC-SIZE-OVERFLOW ... END DECLARATIVES. ADD A TO B *> システムが例外発生を自動検出 ... IF A > 60 *>プログラムによって例外を発生させる RAISE EXCEPTION EC-SIZE-OVERFLOW 52 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主な新機能: データ妥当性検査機能 フィールド値チェックの自動化 01 入力日付. 05 年-1 PIC 9(4) DESTINATION IS 年-2. 88 VALID VALUE 1990 THRU 1999. 05 月-1 PIC 9(2) DESTINATION IS 月-2. 88 VALID VALUE 1 THRU 12. 05 日-1 PIC 9(2) DESTINATION IS 日-2. 88 VALID VALUE 1 THRU 31. 01 出力日付. 05 年-2 PIC 9(4). 05 月-2 PIC 9(2). 05 日-2 PIC 9(2). MOVE FUNCTION CURRENT-DATE TO 入力日付. VALIDATE 入力日付 <VALIDATE命令の処理イメージ> DISPLAY 出力日付 IF 年-1 >= 1990 And <= 1999 then MOVE 年-1 TO 年-2 else INITIALIZE 年-2 53 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主な新機能: プログラム間連絡機能の拡張 ユーザ関数の定義 プログラム/関数プロトタイプ宣言 他言語プログラムをプロトタイプ名で呼び出す (別名付け) プロトタイプによる引数の型チェック 呼出し規約(Call Convention)の指定 再帰呼出し可能なプログラムの導入 各種データ型の導入(ポインタ、真の2進数、 浮動小数点数、プログラムポインタ他) 他言語(特にC言語)との連絡を容易にする 54 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主な新機能:標準算術機能 どのコンパイラでも同一の算術演算結果 中間結果の持ち方による結果の相違をなくす A社 10 ÷ 3 = 3.0 B社 10 ÷ 3 = 3.3 標準中間結果項目 32桁 10進 浮動小数点項目 中間結果を標準中間結果項目に正規化 演算精度の標準化 PROGRAM-ID 段落に算術方式を指定 PROGRAM-ID. PROG1. OPTIONS. ARITHMETIC IS STANDARD. PROGRAM-ID. PROG2. OPTIONS. ARITHMETIC IS NATIVE. 55 All Rights Reserved,Copyright © 2001, COBOL Consortium COBOL2002の主な新機能:31桁の数字項目 桁数の不足を解消する 経済成長/インフレにより取扱い桁数の増加 ⇒ 19 桁以上必要 SQL3 との連携 (SQL3は,既に31桁数字項目をサポート) 01 VERY-HUGE-NUMBER PIC 9(31). 56 All Rights Reserved,Copyright © 2001, COBOL Consortium Ⅶ. ま と め 57 All Rights Reserved,Copyright © 2001, COBOL Consortium まとめ COBOLは,今でもビジネスコミュニティで 最もよく使用されている 最新技術,最新環境にも適応している Webコンピューテイング対応済み Java,XML対応済み 次期COBOL国際規格は,2002年に制定 COBOLは進化し続ける COBOLは,今後も長く,安心して ご使用いただけます。 58 All Rights Reserved,Copyright © 2001, COBOL Consortium ・CORBAは,Object Management Groupが提唱する分散処理環境アーキテクチャの名称です。 ・Java 及びすべてのJava関連の商標及びロゴは,米国及びその他の国における米国Sun Microsystems,Inc.の商標または登録商標です。 ・Lotus1-2-3は 米国Lotus Development Corp.の商品 名称です。 ・Microsoft Excel,Microsoft SQL Serverは 米国Microsoft, Corpの商品名称です。 ・OCXは,OLE2 Custum Controlの略称です。 ・ODBCは,Open DataBase Conectivity の略称です。 ・OLEは,米国Microsoft Corp.が開発したソフトウェア名称です。OLEはObject linking and embedingの略です。 ・UNIXは、X/Open Company Limited が独占的にライセンスしている米国ならびに他の国における登録商標です。 ・X/OpenはX/Open Company Limited が独占的にライセンスしている英国なたびに他の国における登録商標です。 ・Microsoft,Microsoft ACCESS, Visual Basic,Windows,Windows NT ,Windows 2000は米国及びその他の国における米国Microsoft, Corpの登録商標です。 ・Oracleは、米国Oracle Corporationの登録商標です。 •TUXEDOは,米国UNIX System Laboratories, Inc.の商品名称です ・CICSは,米国における米国International Business Machines Corp.の商標です。 ・その他の製品名称等の固有名詞は,一般に各社の登録商標,商標,あるいは商品名称です。 59 All Rights Reserved,Copyright © 2001, COBOL Consortium
© Copyright 2024 ExpyDoc