SlideShare a Scribd company logo
COBOL技術者のためのJava勉強会
      場所:中部オフィス 大会議室

    開催日:2012年7月26日(木) 拠点会議の後∼1時間程度


Sunday, July 22, 12
「ホストもわかる」がアドバンテージ。

         はじめに。

         今まで慣れ親しんだCOBOLの開発環境。Javaになると何が
         変わるのか?

         Javaの文法はCOBOLに比べかなり簡素です。習得に時間は
         かかりません。

         あとはコーディングするだけ。見よう見まねでいい。
         そもそも「ホストもわかる」がアドバンテージ。

Sunday, July 22, 12
TSO
           Time Sharing Option
           移動: 案内, 検索
           Time Sharing Option(TSO, てぃーえすおー、たいむしぇありんぐおぷしょん)とは、MVS や OS/390 や z/OS のような IBM メインフレームコン
           ピュータのオペレーティングシステムで使われる相互対話式のコマンドラインインタープリタである。

           UNIX の Bourne Again Shell や Windows の cmd と同じ役割をする。TSO は、システム管理者やプログラマに使用される。


                                          エミュレータ(例 pcomm)を使ってISPFとかTSOをたたく




Sunday, July 22, 12
Shell
              シェル (shell) はオペレーティングシステム (OS) の機能の一部であり、ユーザーからの指示を受けて解釈し、プログラムの起動や制御などを行う
              プログラムである。
              シェルはUNIXで使用される呼称であり、より一般的にはコマンドインタプリタと呼ぶ。しかしUNIXの普及やMS-DOSなど他のOSでも使用された
              ことにより現在では一般的な名称となっている。

                       エミュレータ(例 TeraTerm)を使ってShellをたたく




                                                                 エミュレータ(例 pcomm)を使ってISPFとかTSOをたたく




Sunday, July 22, 12
MVSとUnix
    MVS (えむぶいえす、英語: Multiple Virtual Storage、多重仮想記憶)は、1974年に発表されたIBMのメインフレーム用オペレーティングシステムの1つ。前
    身はOS/360のMVTやOS/VS。当初の名称は「OS/VS2 R2」であったが、後に「OS/VS2 MVS」、更に「MVS」と呼ばれた。後継はOS/390とz/OSである。


     オペレーティングシステム MVS のインターフェースは主に、バッチ処理のインターフェースである JCL (Job Control Language)と、対話式のコマンド・ライ
     ン・インタープリタでタイムシェアリングシステムである TSO (Time Sharing Option)である。


              →JCLはシェルスクリプト、TSOはシェル。(たぶん)


     MVS 上で動く業務アプリケーション・プログラムは主にコボル(COBOL)で記述される。COBOLのプログラムは、伝統的に、IMS (Information Management
     System) や CICS (Customer Information Control System) のようなトランザクション処理システムで使われる。CICS で動くプログラムには、COBOL プログ
     ラムのソースコードに特別な EXEC CICS ステートメントが挿入される。プリプロセッサは、プログラムのコンパイルの前に、これらの EXEC CICS ステー
     トメントを、CICS をコールする COBOL のコードに変換する。DB2をコールする SQL の場合と似ている。


              →Unix上で動く業務アプリはJavaで記述されることが多い。(と思う)

              →CICSはJTA(JavaTransactionAPI)、DB2コールはJDBC


     MVSファイルシステム [編集]
     ファイルは、MVS では「データ・セット」と呼ばれる。これらのファイルは「カタログ」によって組織・系統が立てられる。MVS の本来の文字コードは
     ビッグ・エンディアン EBCDIC

            →レコード形式(RECFM)、ブロックサイズ(BLKSIZE)、レコード長(LRECL)、アクセス方法(QSAM、
            VSAM)とか物理装置のDASD、TAPEの概念はUnixには無い。RECFM=U・BLKSIZE=32760のデータ
            セットがUnixのファイルに似ている。(かも)

Sunday, July 22, 12
文字コード                                                                 UTF-8はソートが逆!

                                                                          →ABC・・・よりも123・・・が前です。
     EBCDIC (英語: Extended Binary Coded Decimal Interchange Code、エビシディッ
     ク、拡張二進化十進コード[1]) はIBMにより定義された8ビットのコード化文字セッ                           UTF-8は一文字3バイト!
     トである[2]。ASCII普及前の1963年に、BCD(Binary-coded decimal、二進化十進
     コード)を拡張する形で作られ、主にIBM系のメインフレームやオフィスコンピュー                              →半角カナ氏名(20文字)のエリアならCHAR(60)
     タなどで使用されている[3][4][5]。                                                で設計します。




                                                           UTF-8(ユーティーエフはち、ユーティーエフエイト)はISO/IEC 10646(UCS)とUnicode
                                                           で使える8ビット符号単位の文字符号化形式及び文字符号化スキーム。


                                                           UTF-8による符号化では、漢字や仮名などの表現に3バイトを要する。このように、東ア
                                                           ジアの従来文字コードではマルチバイト符号を用いて1文字2バイトで表現されていた
                                                           データが、1.5倍かそれ以上のサイズとなる。




Sunday, July 22, 12
ソースの出し入れ
                      CA-LIBRARIAN   SVN、CVS、Git
                      CA-PANVALET




Sunday, July 22, 12
ライブコーディング
    ✤    Eclipseってこんな感じ
    ✤    SVNにつないでみる。ソースを落としてみる。
    ✤    HelloWorldを実行してみる。
    ✤    プロパティファイルを読み込むコードを書いてみる。
    ✤    ステップ実行してみる。
    ✤    作ったソースをコミットしてみる。




Sunday, July 22, 12
自習に便利
            基礎)COBOL技術者のためのJava言語入門
            http://jp.fujitsu.com/solutions/sdas/technology/
            java-cobol/

            応用)Java技術によるWebアプリケーション開発入門
            http://jp.fujitsu.com/solutions/sdas/technology/web-apl/


            作ったプログラムの格納場所として自由に利用してください。
            http://subversion.assembla.com/svn/jelt/




Sunday, July 22, 12
統合開発環境(IDE)を使いこなす
         ・ctrl押しながら、メソッド名をクリック

         ・呼び出し階層を開く

         ・ファイル名で検索する(CTRL+Shift+r)

         ・中身の検索を使いこなす




Sunday, July 22, 12
統合開発環境(IDE)を使いこなす
         F5 ステップイン

         F6 ステップオーバー

         F7 ステップアウト

         F8 次のブレイクポイントまで一気に進める

         変数を見る色々な方法




Sunday, July 22, 12
現場で使うフレームワーク

          気になったら知ればいいけど、一応標準的。
          ・struts 画面(ブラウザ)と業務ロジックの橋渡し
          ・spring 業務ロジックのDI(Dependency Injection)
          ・ibatis  SQLをXMLファイルに記述する。
            <select id="getProduct"
                   parameterClass="java.lang.Long"
                   resultClass="com.example.Product">
                           select
                                    PRD_ID           as id,
                                    PRD_DESCRIPTION as description
                           from
                                    PRODUCT
                           where
                                    PRD_ID = #value#
            </select>




Sunday, July 22, 12
COBOLは静的。Javaは動的。
      2. 基本的に静的な言語である
      JavaやC#との最も大きな違いは、COBOLが徹底的にstaticな言語であることです。


      基本的にはCOBOLプログラムは、main()メソッドとstaticなメンバーのみを持ってい
      るJavaクラスみたいなものです。


      プログラムのロード時にメモリ領域が静的に確保され、その上での演算を1つのプロセ
      スに専念させることができます。


      このような実行形態は大量のバッチ処理を高速に実行するのに有利です。


      http://www.atmarkit.co.jp/fcoding/articles/cobol/01/cobol01b.html




Sunday, July 22, 12
文法で解決するCOBOL。
    ライブラリで解決するJava。
          3. 言語機能が構文によって実現されている


           COBOLは、非常に多くの機能を英語ライクな言語の文法でサポートしています。Javaや.NET言語では、コ
          ンパイラが構文解析する文法の要素はCOBOLに比べて非常に少ないです。


           言語としてのJavaやC#の基本文法は、パッケージやクラス、メソッドなどの宣言を行う基本的なプログラ
          ムの枠組みに、ループや条件分岐などの制御構造を表す構文、それに若干の既定義データ型(基本型)、これ
          がすべてです。にもかかわらずプログラマがシステム資源にアクセスするために豊富な手段を享受できるの
          は、文法以外に用意された膨大なクラスライブラリがあるからです。


           これに対して、COBOLは、時代の要求に応えるためにデータ処理に必要な機能を次々に言語に取り込んで
          発展し続けてきました。例えば、COBOLにはファイルのソートを行うSORT文、文字列の連結を行う
          STRING文などが文法としてサポートされています。


          http://www.atmarkit.co.jp/fcoding/articles/cobol/01/cobol01b.html




Sunday, July 22, 12
おわり。




Sunday, July 22, 12

More Related Content

What's hot (20)

セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2
Kentaro Mitsuyasu
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
Yuya Unno
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Hideki Takase
 
WebRTC と Native とそれから、それから。
WebRTC と Native とそれから、それから。 WebRTC と Native とそれから、それから。
WebRTC と Native とそれから、それから。
tnoho
 
Pythonでパケット解析
Pythonでパケット解析Pythonでパケット解析
Pythonでパケット解析
euphoricwavism
 
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモAnaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
ayohe
 
Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22
Keisuke Fukuda
 
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
Yasuhiro Yoshimura
 
LXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoyaLXC入門 - Osc2011 nagoya
LXC入門 - Osc2011 nagoya
Masahide Yamamoto
 
【Unity道場Houdini編】Houdini Engine とプロシージャル法
【Unity道場Houdini編】Houdini Engine とプロシージャル法【Unity道場Houdini編】Houdini Engine とプロシージャル法
【Unity道場Houdini編】Houdini Engine とプロシージャル法
UnityTechnologiesJapan002
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
NTT DATA Technology & Innovation
 
Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)
Hiroki Nakahara
 
【DL輪読会】Hierarchical Text-Conditional Image Generation with CLIP Latents
【DL輪読会】Hierarchical Text-Conditional Image Generation with CLIP Latents【DL輪読会】Hierarchical Text-Conditional Image Generation with CLIP Latents
【DL輪読会】Hierarchical Text-Conditional Image Generation with CLIP Latents
Deep Learning JP
 
Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太
Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太
Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太
Preferred Networks
 
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
Takayuki Shimizukawa
 
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをOSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
i_yudai
 
多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法多機能ボイチャを簡単に導入する方法
多機能ボイチャを簡単に導入する方法
Unity Technologies Japan K.K.
 
Cv20160205
Cv20160205Cv20160205
Cv20160205
Takanori Ogata
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
UnityTechnologiesJapan002
 
MariaDB Columnstore 使いこなそう
MariaDB Columnstore 使いこなそうMariaDB Columnstore 使いこなそう
MariaDB Columnstore 使いこなそう
KAWANO KAZUYUKI
 
セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2
Kentaro Mitsuyasu
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
Yuya Unno
 
Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界Nervesが開拓する「ElixirでIoT」の新世界
Nervesが開拓する「ElixirでIoT」の新世界
Hideki Takase
 
WebRTC と Native とそれから、それから。
WebRTC と Native とそれから、それから。 WebRTC と Native とそれから、それから。
WebRTC と Native とそれから、それから。
tnoho
 
Pythonでパケット解析
Pythonでパケット解析Pythonでパケット解析
Pythonでパケット解析
euphoricwavism
 
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモAnaconda navigatorのアップデートが終わらないときの対処方法メモ
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
ayohe
 
Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22
Keisuke Fukuda
 
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
Yasuhiro Yoshimura
 
【Unity道場Houdini編】Houdini Engine とプロシージャル法
【Unity道場Houdini編】Houdini Engine とプロシージャル法【Unity道場Houdini編】Houdini Engine とプロシージャル法
【Unity道場Houdini編】Houdini Engine とプロシージャル法
UnityTechnologiesJapan002
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
NTT DATA Technology & Innovation
 
Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)
Hiroki Nakahara
 
【DL輪読会】Hierarchical Text-Conditional Image Generation with CLIP Latents
【DL輪読会】Hierarchical Text-Conditional Image Generation with CLIP Latents【DL輪読会】Hierarchical Text-Conditional Image Generation with CLIP Latents
【DL輪読会】Hierarchical Text-Conditional Image Generation with CLIP Latents
Deep Learning JP
 
Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太
Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太
Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太
Preferred Networks
 
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
Takayuki Shimizukawa
 
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをOSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
i_yudai
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
UnityTechnologiesJapan002
 
MariaDB Columnstore 使いこなそう
MariaDB Columnstore 使いこなそうMariaDB Columnstore 使いこなそう
MariaDB Columnstore 使いこなそう
KAWANO KAZUYUKI
 

Viewers also liked (20)

没セッション 知識ゼロから学んだソフトウェアテスト
没セッション 知識ゼロから学んだソフトウェアテスト没セッション 知識ゼロから学んだソフトウェアテスト
没セッション 知識ゼロから学んだソフトウェアテスト
伸男 伊藤
 
悩める金融系SEの軌跡
悩める金融系SEの軌跡悩める金融系SEの軌跡
悩める金融系SEの軌跡
Fumiyasu Sumiya
 
20150717 これからプログラミングを勉強する人へ
20150717 これからプログラミングを勉強する人へ20150717 これからプログラミングを勉強する人へ
20150717 これからプログラミングを勉強する人へ
SEED310
 
はじめてのソフトウェアテスト
はじめてのソフトウェアテストはじめてのソフトウェアテスト
はじめてのソフトウェアテスト
Rina Fukuda
 
並列プログラミング 入門!&おさらい!
並列プログラミング入門!&おさらい!並列プログラミング入門!&おさらい!
並列プログラミング 入門!&おさらい!
道化師 堂華
 
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテストはてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
Yu Nobuoka
 
COBOL技術者のためのjava勉強会2
COBOL技術者のためのjava勉強会2COBOL技術者のためのjava勉強会2
COBOL技術者のためのjava勉強会2
naka hide
 
Web Strategy - Outreach Commission
Web Strategy - Outreach CommissionWeb Strategy - Outreach Commission
Web Strategy - Outreach Commission
St. Lukes UMC
 
NCA Back to School Market Research 2011
NCA Back to School Market Research 2011NCA Back to School Market Research 2011
NCA Back to School Market Research 2011
National Consumer Agency
 
Ringkasan Eksekutif PISA2000
Ringkasan Eksekutif PISA2000 Ringkasan Eksekutif PISA2000
Ringkasan Eksekutif PISA2000
Iwan Pranoto
 
Kalkulus 2A – minggu 6A
Kalkulus 2A – minggu 6AKalkulus 2A – minggu 6A
Kalkulus 2A – minggu 6A
Iwan Pranoto
 
Matek 1 minggu 3
Matek 1   minggu 3Matek 1   minggu 3
Matek 1 minggu 3
Iwan Pranoto
 
Homeschool magazine newest issue
Homeschool magazine newest issueHomeschool magazine newest issue
Homeschool magazine newest issue
Homeschool Newslink
 
Matek 1 - Minggu 5
Matek 1 - Minggu 5Matek 1 - Minggu 5
Matek 1 - Minggu 5
Iwan Pranoto
 
Week 3
Week 3Week 3
Week 3
Iwan Pranoto
 
Consumer empowerment and customer service in Ireland
Consumer empowerment and customer service in IrelandConsumer empowerment and customer service in Ireland
Consumer empowerment and customer service in Ireland
National Consumer Agency
 
Guru bergairah dan berpengetahuan
Guru bergairah dan berpengetahuanGuru bergairah dan berpengetahuan
Guru bergairah dan berpengetahuan
Iwan Pranoto
 
Menyemai kasmaran bersains di acara diskusi oleh Tempo-Kalbe
Menyemai kasmaran bersains di acara diskusi oleh Tempo-KalbeMenyemai kasmaran bersains di acara diskusi oleh Tempo-Kalbe
Menyemai kasmaran bersains di acara diskusi oleh Tempo-Kalbe
Iwan Pranoto
 
Week 2
Week 2Week 2
Week 2
Iwan Pranoto
 
没セッション 知識ゼロから学んだソフトウェアテスト
没セッション 知識ゼロから学んだソフトウェアテスト没セッション 知識ゼロから学んだソフトウェアテスト
没セッション 知識ゼロから学んだソフトウェアテスト
伸男 伊藤
 
悩める金融系SEの軌跡
悩める金融系SEの軌跡悩める金融系SEの軌跡
悩める金融系SEの軌跡
Fumiyasu Sumiya
 
20150717 これからプログラミングを勉強する人へ
20150717 これからプログラミングを勉強する人へ20150717 これからプログラミングを勉強する人へ
20150717 これからプログラミングを勉強する人へ
SEED310
 
はじめてのソフトウェアテスト
はじめてのソフトウェアテストはじめてのソフトウェアテスト
はじめてのソフトウェアテスト
Rina Fukuda
 
並列プログラミング 入門!&おさらい!
並列プログラミング入門!&おさらい!並列プログラミング入門!&おさらい!
並列プログラミング 入門!&おさらい!
道化師 堂華
 
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテストはてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
Yu Nobuoka
 
COBOL技術者のためのjava勉強会2
COBOL技術者のためのjava勉強会2COBOL技術者のためのjava勉強会2
COBOL技術者のためのjava勉強会2
naka hide
 
Web Strategy - Outreach Commission
Web Strategy - Outreach CommissionWeb Strategy - Outreach Commission
Web Strategy - Outreach Commission
St. Lukes UMC
 
Ringkasan Eksekutif PISA2000
Ringkasan Eksekutif PISA2000 Ringkasan Eksekutif PISA2000
Ringkasan Eksekutif PISA2000
Iwan Pranoto
 
Kalkulus 2A – minggu 6A
Kalkulus 2A – minggu 6AKalkulus 2A – minggu 6A
Kalkulus 2A – minggu 6A
Iwan Pranoto
 
Homeschool magazine newest issue
Homeschool magazine newest issueHomeschool magazine newest issue
Homeschool magazine newest issue
Homeschool Newslink
 
Matek 1 - Minggu 5
Matek 1 - Minggu 5Matek 1 - Minggu 5
Matek 1 - Minggu 5
Iwan Pranoto
 
Consumer empowerment and customer service in Ireland
Consumer empowerment and customer service in IrelandConsumer empowerment and customer service in Ireland
Consumer empowerment and customer service in Ireland
National Consumer Agency
 
Guru bergairah dan berpengetahuan
Guru bergairah dan berpengetahuanGuru bergairah dan berpengetahuan
Guru bergairah dan berpengetahuan
Iwan Pranoto
 
Menyemai kasmaran bersains di acara diskusi oleh Tempo-Kalbe
Menyemai kasmaran bersains di acara diskusi oleh Tempo-KalbeMenyemai kasmaran bersains di acara diskusi oleh Tempo-Kalbe
Menyemai kasmaran bersains di acara diskusi oleh Tempo-Kalbe
Iwan Pranoto
 

Similar to COBOL技術者のためのJava勉強会 (20)

Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
urasandesu
 
講座Java入門
講座Java入門講座Java入門
講座Java入門
Tokai University
 
夏だからJava再入門
夏だからJava再入門夏だからJava再入門
夏だからJava再入門
Katsumi Honda
 
Zマイスターとの新たな価値探求 Rational
Zマイスターとの新たな価値探求 RationalZマイスターとの新たな価値探求 Rational
Zマイスターとの新たな価値探求 Rational
IBMソリューション
 
from old Java to modern Java
from old Java to modern Javafrom old Java to modern Java
from old Java to modern Java
心 谷本
 
レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場
Hiroyuki Ohnaka
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
Akira Shimosako
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
NTT DATA Technology & Innovation
 
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
David Buck
 
PHPからJavaへ乗り換えた。そんな昔話をしよう
PHPからJavaへ乗り換えた。そんな昔話をしようPHPからJavaへ乗り換えた。そんな昔話をしよう
PHPからJavaへ乗り換えた。そんな昔話をしよう
優介 黒河
 
Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義
JPCERT Coordination Center
 
第2回勉強会スライド
第2回勉強会スライド第2回勉強会スライド
第2回勉強会スライド
koturn 0;
 
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011
Hiro Yoshioka
 
Programming camp code reading
Programming camp code readingProgramming camp code reading
Programming camp code reading
Hiro Yoshioka
 
JavaとRubyのすてきな関係
JavaとRubyのすてきな関係JavaとRubyのすてきな関係
JavaとRubyのすてきな関係
garden_tree
 
OSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentationOSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentation
Ryuichi Ueda
 
What is java_se_7
What is java_se_7What is java_se_7
What is java_se_7
TakumiIINO
 
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
Koichi Sakata
 
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
urasandesu
 
夏だからJava再入門
夏だからJava再入門夏だからJava再入門
夏だからJava再入門
Katsumi Honda
 
Zマイスターとの新たな価値探求 Rational
Zマイスターとの新たな価値探求 RationalZマイスターとの新たな価値探求 Rational
Zマイスターとの新たな価値探求 Rational
IBMソリューション
 
from old Java to modern Java
from old Java to modern Javafrom old Java to modern Java
from old Java to modern Java
心 谷本
 
レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場
Hiroyuki Ohnaka
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
Akira Shimosako
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
NTT DATA Technology & Innovation
 
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
JDK 13 New Features [MeetUp with Java Experts! @Gaienmae/Dojima 2019]
David Buck
 
PHPからJavaへ乗り換えた。そんな昔話をしよう
PHPからJavaへ乗り換えた。そんな昔話をしようPHPからJavaへ乗り換えた。そんな昔話をしよう
PHPからJavaへ乗り換えた。そんな昔話をしよう
優介 黒河
 
Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義Javaセキュアコーディングセミナー東京第3回講義
Javaセキュアコーディングセミナー東京第3回講義
JPCERT Coordination Center
 
第2回勉強会スライド
第2回勉強会スライド第2回勉強会スライド
第2回勉強会スライド
koturn 0;
 
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011
Hiro Yoshioka
 
Programming camp code reading
Programming camp code readingProgramming camp code reading
Programming camp code reading
Hiro Yoshioka
 
JavaとRubyのすてきな関係
JavaとRubyのすてきな関係JavaとRubyのすてきな関係
JavaとRubyのすてきな関係
garden_tree
 
OSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentationOSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentation
Ryuichi Ueda
 
What is java_se_7
What is java_se_7What is java_se_7
What is java_se_7
TakumiIINO
 
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
クリスマスを支える俺たちとJava(JJUG CCC 2015 Spring AB4)
Koichi Sakata
 

COBOL技術者のためのJava勉強会

  • 1. COBOL技術者のためのJava勉強会 場所:中部オフィス 大会議室 開催日:2012年7月26日(木) 拠点会議の後∼1時間程度 Sunday, July 22, 12
  • 2. 「ホストもわかる」がアドバンテージ。 はじめに。 今まで慣れ親しんだCOBOLの開発環境。Javaになると何が 変わるのか? Javaの文法はCOBOLに比べかなり簡素です。習得に時間は かかりません。 あとはコーディングするだけ。見よう見まねでいい。 そもそも「ホストもわかる」がアドバンテージ。 Sunday, July 22, 12
  • 3. TSO Time Sharing Option 移動: 案内, 検索 Time Sharing Option(TSO, てぃーえすおー、たいむしぇありんぐおぷしょん)とは、MVS や OS/390 や z/OS のような IBM メインフレームコン ピュータのオペレーティングシステムで使われる相互対話式のコマンドラインインタープリタである。 UNIX の Bourne Again Shell や Windows の cmd と同じ役割をする。TSO は、システム管理者やプログラマに使用される。 エミュレータ(例 pcomm)を使ってISPFとかTSOをたたく Sunday, July 22, 12
  • 4. Shell シェル (shell) はオペレーティングシステム (OS) の機能の一部であり、ユーザーからの指示を受けて解釈し、プログラムの起動や制御などを行う プログラムである。 シェルはUNIXで使用される呼称であり、より一般的にはコマンドインタプリタと呼ぶ。しかしUNIXの普及やMS-DOSなど他のOSでも使用された ことにより現在では一般的な名称となっている。 エミュレータ(例 TeraTerm)を使ってShellをたたく エミュレータ(例 pcomm)を使ってISPFとかTSOをたたく Sunday, July 22, 12
  • 5. MVSとUnix MVS (えむぶいえす、英語: Multiple Virtual Storage、多重仮想記憶)は、1974年に発表されたIBMのメインフレーム用オペレーティングシステムの1つ。前 身はOS/360のMVTやOS/VS。当初の名称は「OS/VS2 R2」であったが、後に「OS/VS2 MVS」、更に「MVS」と呼ばれた。後継はOS/390とz/OSである。 オペレーティングシステム MVS のインターフェースは主に、バッチ処理のインターフェースである JCL (Job Control Language)と、対話式のコマンド・ライ ン・インタープリタでタイムシェアリングシステムである TSO (Time Sharing Option)である。 →JCLはシェルスクリプト、TSOはシェル。(たぶん) MVS 上で動く業務アプリケーション・プログラムは主にコボル(COBOL)で記述される。COBOLのプログラムは、伝統的に、IMS (Information Management System) や CICS (Customer Information Control System) のようなトランザクション処理システムで使われる。CICS で動くプログラムには、COBOL プログ ラムのソースコードに特別な EXEC CICS ステートメントが挿入される。プリプロセッサは、プログラムのコンパイルの前に、これらの EXEC CICS ステー トメントを、CICS をコールする COBOL のコードに変換する。DB2をコールする SQL の場合と似ている。 →Unix上で動く業務アプリはJavaで記述されることが多い。(と思う) →CICSはJTA(JavaTransactionAPI)、DB2コールはJDBC MVSファイルシステム [編集] ファイルは、MVS では「データ・セット」と呼ばれる。これらのファイルは「カタログ」によって組織・系統が立てられる。MVS の本来の文字コードは ビッグ・エンディアン EBCDIC →レコード形式(RECFM)、ブロックサイズ(BLKSIZE)、レコード長(LRECL)、アクセス方法(QSAM、 VSAM)とか物理装置のDASD、TAPEの概念はUnixには無い。RECFM=U・BLKSIZE=32760のデータ セットがUnixのファイルに似ている。(かも) Sunday, July 22, 12
  • 6. 文字コード UTF-8はソートが逆! →ABC・・・よりも123・・・が前です。 EBCDIC (英語: Extended Binary Coded Decimal Interchange Code、エビシディッ ク、拡張二進化十進コード[1]) はIBMにより定義された8ビットのコード化文字セッ UTF-8は一文字3バイト! トである[2]。ASCII普及前の1963年に、BCD(Binary-coded decimal、二進化十進 コード)を拡張する形で作られ、主にIBM系のメインフレームやオフィスコンピュー →半角カナ氏名(20文字)のエリアならCHAR(60) タなどで使用されている[3][4][5]。 で設計します。 UTF-8(ユーティーエフはち、ユーティーエフエイト)はISO/IEC 10646(UCS)とUnicode で使える8ビット符号単位の文字符号化形式及び文字符号化スキーム。 UTF-8による符号化では、漢字や仮名などの表現に3バイトを要する。このように、東ア ジアの従来文字コードではマルチバイト符号を用いて1文字2バイトで表現されていた データが、1.5倍かそれ以上のサイズとなる。 Sunday, July 22, 12
  • 7. ソースの出し入れ CA-LIBRARIAN SVN、CVS、Git CA-PANVALET Sunday, July 22, 12
  • 8. ライブコーディング ✤ Eclipseってこんな感じ ✤ SVNにつないでみる。ソースを落としてみる。 ✤ HelloWorldを実行してみる。 ✤ プロパティファイルを読み込むコードを書いてみる。 ✤ ステップ実行してみる。 ✤ 作ったソースをコミットしてみる。 Sunday, July 22, 12
  • 9. 自習に便利 基礎)COBOL技術者のためのJava言語入門 http://jp.fujitsu.com/solutions/sdas/technology/ java-cobol/ 応用)Java技術によるWebアプリケーション開発入門 http://jp.fujitsu.com/solutions/sdas/technology/web-apl/ 作ったプログラムの格納場所として自由に利用してください。 http://subversion.assembla.com/svn/jelt/ Sunday, July 22, 12
  • 10. 統合開発環境(IDE)を使いこなす ・ctrl押しながら、メソッド名をクリック ・呼び出し階層を開く ・ファイル名で検索する(CTRL+Shift+r) ・中身の検索を使いこなす Sunday, July 22, 12
  • 11. 統合開発環境(IDE)を使いこなす F5 ステップイン F6 ステップオーバー F7 ステップアウト F8 次のブレイクポイントまで一気に進める 変数を見る色々な方法 Sunday, July 22, 12
  • 12. 現場で使うフレームワーク 気になったら知ればいいけど、一応標準的。 ・struts 画面(ブラウザ)と業務ロジックの橋渡し ・spring 業務ロジックのDI(Dependency Injection) ・ibatis  SQLをXMLファイルに記述する。 <select id="getProduct" parameterClass="java.lang.Long" resultClass="com.example.Product"> select PRD_ID as id, PRD_DESCRIPTION as description from PRODUCT where PRD_ID = #value# </select> Sunday, July 22, 12
  • 13. COBOLは静的。Javaは動的。 2. 基本的に静的な言語である JavaやC#との最も大きな違いは、COBOLが徹底的にstaticな言語であることです。 基本的にはCOBOLプログラムは、main()メソッドとstaticなメンバーのみを持ってい るJavaクラスみたいなものです。 プログラムのロード時にメモリ領域が静的に確保され、その上での演算を1つのプロセ スに専念させることができます。 このような実行形態は大量のバッチ処理を高速に実行するのに有利です。 http://www.atmarkit.co.jp/fcoding/articles/cobol/01/cobol01b.html Sunday, July 22, 12
  • 14. 文法で解決するCOBOL。 ライブラリで解決するJava。 3. 言語機能が構文によって実現されている  COBOLは、非常に多くの機能を英語ライクな言語の文法でサポートしています。Javaや.NET言語では、コ ンパイラが構文解析する文法の要素はCOBOLに比べて非常に少ないです。  言語としてのJavaやC#の基本文法は、パッケージやクラス、メソッドなどの宣言を行う基本的なプログラ ムの枠組みに、ループや条件分岐などの制御構造を表す構文、それに若干の既定義データ型(基本型)、これ がすべてです。にもかかわらずプログラマがシステム資源にアクセスするために豊富な手段を享受できるの は、文法以外に用意された膨大なクラスライブラリがあるからです。  これに対して、COBOLは、時代の要求に応えるためにデータ処理に必要な機能を次々に言語に取り込んで 発展し続けてきました。例えば、COBOLにはファイルのソートを行うSORT文、文字列の連結を行う STRING文などが文法としてサポートされています。 http://www.atmarkit.co.jp/fcoding/articles/cobol/01/cobol01b.html Sunday, July 22, 12