LoginSignup
3
0

【COBOL:Java対応チートシート】Java開発者が読み解くCOBOL

Last updated at Posted at 2023-10-28

はじめに

Javaの開発者がCOBOL開発者と会話する際の共通言語を整理したい
「COBOLのコレはJavaでいうとコレだよね」みたいな説明をする。

想定読者

  • Javaの技術研修を受けたのに、COBOLの現場にアサインされた方
  • COBOL->Javaのマイグレーション案件にアサインされたJava経験者の方
  • JavaもCOBOLも扱う現場担当。両方の現場担当とコミュニケーションをとる方

お願い🙏

  • 実務経験者のみなさま
    • 間違いや改善についてお気づきの点がございましたら、コメントいただけると嬉しいです
    • それぞれの言語の専門家からのご意見をお待ちしています
  • COBOLの学習が必要な方
    • こういうカテゴリでもまとめてほしいなど、コメントいただけると嬉しいです
    • 順次、追加していきたいと思います

COBOLとは

COBOLは、ビジネスアプリケーションを目的としたプログラミング言語の一つです。

どのような背景から登場したのか?

COBOLは1959年にアメリカ国防総省の支援を受けて開発されました。
当時、ビジネスデータ処理に特化したプログラミング言語が不足していたため、そのニッチを埋めるべく設計されました。

COBOLの利用用途

  • 金融業界での取引処理
  • 公共セクター(税金計算、社会保障など)
  • 在庫管理

COBOLは既存のビジネスシステムで広く使用されており、その維持・運用の開発者は引き続き需要があります。しかし、新規のプロジェクトではあまり選ばれない傾向にあります。

COBOL:Java対応チートシート

基本用語

用語 カテゴリ COBOLにおける説明 Javaでいうと
Division コード構造 COBOLプログラムの主要なセクション (例: Identification Division, Procedure Division) クラスとメソッド
File Section データ構造 ファイルのデータ構造を定義するセクション ファイルI/Oクラス
Working-Storage メモリ 一時的なデータを格納する領域 ローカル変数
MOVE 命令 データを一つの場所から別の場所へ移動する 変数代入
PERFORM 制御構造 指定された範囲のCOBOLステートメントを実行する for/whileループ
COPYBOOK モジュール 共通のデータ構造や手続きを外部ファイルとして定義 インターフェース/クラス
DISPLAY 出力 コンソールやファイルにテキストを出力する System.out.println
ACCEPT 入力 コンソールやファイルからデータを読み取る Scannerクラス
CALL 関数呼び出し 外部プログラムまたは内部プロシージャを呼び出す メソッド呼び出し
SORT アルゴリズム データを指定されたキーでソートする Collections.sort
READ ファイル操作 ファイルからレコードを読み込む FileReader
WRITE ファイル操作 ファイルにレコードを書き込む FileWriter
INDEXED ファイル形式 キーによってアクセスできるレコード形式のファイル データベース/HashMap
COMP データ型 2進数で表現された数値型 int/byte/short
PIC データ型 データの形式を定義する(例:PIC 9(3)は、最大3桁の数値) プリミティブ型

COBOLの周辺ツール、ミドルウェアなど

用語 カテゴリ COBOLにおける説明 Javaでいうと
JCL (Job Control Language) バッチ処理 メインフレームでのバッチジョブのスケジューリングと制御に使用 Jp1
CICS (Customer Information Control System) ミドルウェア オンライントランザクションを処理するためのミドルウェア JTA/JTS
VSAM (Virtual Storage Access Method) データストレージ インデックス付きやシーケンシャルなデータストレージのためのファイルシステム データベース/ファイルI/O
EBCDIC 文字エンコーディング 主にIBMのメインフレームで使用される文字エンコーディング形式 ASCII/UTF-8
RM/COBOL コンパイラ Micro Focusによって提供されるCOBOLコンパイラ Oracle JDK, OpenJDK
IMS (Information Management System) データベース 階層型データベースおよびトランザクションモニター JDBC/ORMフレームワーク
DB2 データベース IBMによって開発されたリレーショナルデータベース Oracle, MySQL, PostgreSQL
TSO (Time Sharing Option) オペレーティングシステム 複数のユーザーが同時にメインフレームにアクセスできるようにするオプション Linuxのマルチユーザ環境
ISPF (Interactive System Productivity Facility) ユーザーインターフェース メインフレームでプログラムを開発、管理するためのテキストベースのUI IDE(Eclipse, IntelliJ)
SPUFI (SQL Processing Using File Input) データベースツール SQLクエリをDB2データベースに対して実行するためのユーザーインターフェース SQLクライアント

COBOLの開発者環境に関する用語集

用語 カテゴリ COBOLにおける説明 Javaでいうと
z/OS オペレーティングシステム IBMのメインフレーム用のオペレーティングシステム Linux, Windows, macOS
TSO/ISPF IDE メインフレーム上でのテキストベースの開発環境 Eclipse, IntelliJ IDEA
Endevor バージョン管理 COBOLソースコードのライフサイクル管理とバージョン管理 Git, SVN
RDz (Rational Developer for z Systems) IDE IBMによるEclipseベースのメインフレーム開発環境 Eclipse
CobolUnit テストフレームワーク COBOLのユニットテスティングフレームワーク JUnit
Abend デバッグ 異常終了のこと。デバッグ中によく遭遇する問題 Exception
JES (Job Entry Subsystem) バッチ処理 バッチジョブのキューイングとスケジューリングを担当 Batch Processing Frameworks
SYSLIB ライブラリ COBOLプログラムで使用される共有ライブラリやCOPYBOOKを格納するディレクトリ Classpath
Assembler 言語 COBOLと一緒にメインフレームでよく使用される低レベルプログラミング言語 Assembly, JNI
SDSF (System Display and Search Facility) モニタリング メインフレーム上のリソースとジョブを監視するツール Monitoring Tools

COBOLのUIに関する用語集

用語 カテゴリ COBOLにおける説明 Javaでいうと
BMS (Basic Mapping Support) UIフレームワーク CICSと一緒に使用される、画面設計とマッピングのためのツール JavaFX, Swing
3270 Terminal ユーザーインターフェース IBMメインフレームに接続するためのテキストベースの端末エミュレータ Terminal, Command Prompt
MAPSET UIコンポーネント BMSで使用される、一連の画面マップ(UI)を含む集合体 UI Component Set
SEND MAP UI操作 画面マップ(UI)を端末に送信するCICSコマンド UI Rendering
RECEIVE MAP UI操作 端末から入力データを受信するCICSコマンド Event Listener
PF Key UI操作 プログラム可能なファンクションキー(PFキー)を使用して、特定の操作を行う Keyboard Shortcut
Attention Identifier UIイベント ユーザーが特定のキー(例:Enter、PFキー)を押したときに生成されるイベント Key Event
CWA (Common Work Area) UIデータ CICSトランザクション間でデータを共有する領域 Shared Data Model

COBOLのDBに関する用語集

用語 カテゴリ COBOLにおける説明 Javaでいうと
VSAM (Virtual Storage Access Method) データストレージ インデックスやシーケンシャルなデータストレージのためのファイルシステム データベース/ファイルI/O
IMS DB データベース 階層型データベースシステム JDBC/ORMフレームワーク
DB2 データベース IBMによって開発されたリレーショナルデータベース Oracle, MySQL, PostgreSQL
SQLCODE エラーハンドリング SQL操作後の結果やエラーを示すコード SQLException
EXEC SQL SQL組み込み COBOLプログラム内で直接SQLクエリを実行するための構文 JDBC
DCLGEN コード生成 DB2テーブル定義からCOBOL用のデータ構造を生成するツール ORMツール
Cursor データ操作 複数の行を順次処理するためのDB2のオブジェクト ResultSet
COMMIT トランザクション データベースの変更を確定する commit()
ROLLBACK トランザクション データベースの変更を取り消す rollback()
Plan SQL実行計画 DB2でSQLクエリを効率的に実行するためのプラン Query Execution Plan

COBOLのファイル連携に関する用語

用語 カテゴリ COBOLにおける説明 Javaでいうと
FD (File Description) ファイル定義 データファイルのレコード構造を定義するセクション File Class, POJO
SELECT Clause ファイルマッピング プログラムと外部ファイルとの関連付けを行う FileInputStream, FileChannel
OPEN ファイル操作 ファイルを開くためのCOBOLステートメント File.open()
CLOSE ファイル操作 ファイルを閉じるためのCOBOLステートメント File.close()
READ ファイル操作 ファイルからレコードを読み込む BufferedReader.read()
WRITE ファイル操作 ファイルにレコードを書き込む BufferedWriter.write()
REWRITE ファイル操作 既存のレコードを更新する RandomAccessFile.write()
DELETE ファイル操作 レコードを削除する --
Sequential File ファイル形式 レコードが一定の順序で格納されたファイル Text File
Indexed File ファイル形式 キーによってアクセスできるレコード形式のファイル Database, HashMap
Relative File ファイル形式 相対的な位置(レコード番号)でアクセスするファイル Array, List
Record Layout ファイル構造 ファイル内の各レコードのフィールド構造 Data Class, DTO
ORGANIZATION Clause ファイル属性 ファイルの種類(SEQUENTIAL, INDEXED, RELATIVE)を指定する File Metadata
ACCESS MODE ファイルアクセス ファイルにどのようにアクセスするか(SEQUENTIAL, RANDOM, DYNAMIC)を指定 File Access Mode

COBOLの責務配置に関する用語

用語 カテゴリ COBOLにおける説明 Javaでいうと
Environment Division コードセクション ファイルやデバイスとプログラムとの関連付けを定義するセクション コンフィギュレーションファイル
INPUT-OUTPUT SECTION コードセクション Environment Division内で、ファイル操作に関連する設定を行うセクション I/O設定
SELECT-ASSIGN ファイル設定 プログラム内で使用するファイルと実際の物理ファイルとのマッピング File Path設定
FILE-CONTROL ファイル設定 ファイルのオープン、クローズ、読み書きに関する動作を制御するための設定 File Operations設定
EXTERNAL ファイル属性 複数のプログラムからアクセス可能なファイルを指定 共有リソース
RELATIVE ORGANIZATION ファイル構造 レコードが相対的な位置に配置されているファイル形式 配列、リスト
LOCK MODE ファイルアクセス ファイルに対する同時アクセスを制御するためのロックモード Locking Mechanism
OPTIONAL ファイル存在 ファイルが存在しなくてもエラーにならないようにするキーワード Optional File
Multiple File Tape データストレージ 単一のテープに複数のファイルを格納する方式 マルチパートファイル
Record Blocking ファイル最適化 複数のレコードを一つのブロックとしてディスクに保存するための最適化 Buffered Writing
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0