Slide 1

Slide 1 text

ORCAͱCOBOLͱ WATASHI

Slide 2

Slide 2 text

ࣗݾ঺հ • ஛಺ ਖ਼໌ • ΦϯϥΠϯපؾࣄయMEDLEYͷ։ൃ୲౰

Slide 3

Slide 3 text

ࠓ೔࿩͢͜ͱ • ORCAͱ͸Կ͔ʗϨηίϯͱ͸Կ͔ • ೔ϨηͷγεςϜߏ੒ʹ͍ͭͯ • COBOLͷجૅ

Slide 4

Slide 4 text

ORCAͱ͸Կ͔ʗϨηίϯͱ͸Կ͔

Slide 5

Slide 5 text

Ϩηϓτʹ͍ͭͯ • Ϩηϓτ - Wikipedia • ʮױऀ͕ड͚ͨอݥ਍ྍʹ͍ͭͯɺҩྍػ͕ؔอݥऀʢࢢொ ଜ΍݈߁อݥ૊߹౳ʣʹ੥ٻ͢Δҩྍใुͷ໌ࡉॻʯ

Slide 6

Slide 6 text

Ϩηίϯʹ͍ͭͯ • Ϩηϓτίϯϐϡʔλ - Wikipedia • ʮ໌ࡉॻͷ࡞੒ʹ͸ߴ౓ͳઐ໳஌ࣝͱෳࡶͳܭࢉ͕ඞཁʯͰ ͋ͬͨ • ҩྍػؔͷෛ୲ΛݮΒ͢໨తͰɺ1970೥୅ࠒ͔Βొ৔

Slide 7

Slide 7 text

վΊͯORCAͱ͸ • ORCAϓϩδΣΫτ • ORCA Projectɿ ORCAϓϩδΣΫτͷ֓ཁ • ʮҩࢣձ૯߹৘ใωοτϫʔΫߏ૝ʯͷߏ੒ཁૉͷͻͱͭ • ҩࢣɺҩྍػؔɺ୭Ͱ΋ແྉͰ࢖͑ΔOSSΛ഑෍

Slide 8

Slide 8 text

ORCAͷϨηίϯ • ORCAͷެ։͢ΔϨηίϯ=೔ҩඪ४Ϩηϓτιϑτ • ʮશࠃ໿10ສՕॴͷҩྍػؔͷׂ̔Ҏ্ʯ͕Ϩηίϯಋೖ • ߴ͍΋ͷ͕ଟ͍ • ֤ࣾσʔλͷޓ׵ੑ͕ͳ͍ • ʮҩྍ৘ใͷඪ४Խʯʮҩྍͷ࣭޲্ʯͷͨΊϨηίϯΛ։ ൃɺ഑෍

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

೔ϨηͷγεςϜߏ੒ʹ͍ͭͯ

Slide 12

Slide 12 text

ORCAʢ೔Ϩηʣͷٕज़৘ใ • ORCA Projectɿ ٕज़৘ใ • αʔόαΠυʢMONTSUQIʣ • ORCAͷ֩ͱͳΔۀ຿γεςϜߏஙϛυϧ΢ΣΞ • ΫϥΠΞϯταΠυʢglclientɺmonsiajʣ • ٕज़ελοΫ • Linux/C/COBOL/Postgresql/Java • ϛυϧ΢ΣΞͷϦχϡʔΞϧ༧ఆˠginbee • https://github.com/montsuqi/panda/tree/ginbee48

Slide 13

Slide 13 text

ORCAʢ೔ϨηʣͷγεςϜߏ੒

Slide 14

Slide 14 text

ORCAʢ೔Ϩηʣͷ࢓૊ΈΛཧղ͍ͨ͠ • ҎԼʹ͍ͭͯɺཧղ͢Δඞཁ͕͋Δ • MONTSUQI • COBOL • ࠓճ͸COBOLͷجૅΛ঺հ • ୭͔MONTSUQIʢor ginbeeʣʹ͍ͭͯษڧͯ͠ڭ͑ͯͩ͘ ͍͞

Slide 15

Slide 15 text

COBOLͷجૅ

Slide 16

Slide 16 text

COBOL • COBOL - Wikipedia • Common Business Oriented Language • ࣄ຿ॲཧ༻ʹ1959೥ʹ։ൃ͞Εͨ • ʮࣗવݴޠͰ͋Δӳޠʹ͍ۙهड़ΛΊͨ͟͠ʯ • ։ൃऀ͸άϨʔεɾϗούʔ - Wikipedia • ΞϝϦΧւ܉ͷ܉ਓ͔ͭܭࢉػՊֶऀʢ࠷ऴ֊ڃ͸।কʣ

Slide 17

Slide 17 text

COBOLΛษڧͯ͠ΈΑ͏ • ։ൃ؀ڥˠDockerͰ४උ͢Δ • https://github.com/ise/cobol-sample • ࢀߟαΠτɿॻ͖ॳΊίʔσΟϯάʂ Docker + CGI + COBOLͳ؀ڥΛ࡞ͬͯԹނ஌৽

Slide 18

Slide 18 text

ίϯύΠϧʗ࣮ߦํ๏ # ίϯύΠϧ $ docker run --rm -v /Users/masaakitakeuchi/git_work/ise/cobol-sample:/cobol cobol cobc -x --free src/hoge.cob -o bin/exec # ίϯύΠϧΦϓγϣϯʹ͍ͭͯ # -xɿ࣮ߦϑΝΠϧΛ࡞੒͢Δ # --freeɿࣗ༝ܗࣜˠʮݻఆܗࣜ΍ՄมܗࣜͷҰ࿈൪߸ྖҬɺඪࣝྖҬ͕ແ͘ɺࣗ༝ʹهड़Ͱ͖·͢ɻʯͱͷ͜ͱ # https://plaza.rakuten.co.jp/u703331/diary/201103310000/ # http://software.aufheben.info/linux/freepascal.html # https://codezine.jp/article/detail/2303 # ͪͳΈʹʮ-CʯͰCݴޠͷιʔεΛు͖ग़ͯ͘͠ΕΔ # ࣮ߦ $ docker run -it --rm -v /Users/masaakitakeuchi/git_work/ise/cobol-sample:/cobol cobol bin/exec

Slide 19

Slide 19 text

Hello, COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO_WORLD. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. DISPLAY "Hello, COBOL". STOP RUN.

Slide 20

Slide 20 text

શମ૾ • ݟग़͠෦ʢIDENTIFICATION DIVISIONʣ • ϓϩάϥϜ໊΍࡞੒ऀ౳Λهड़ • ؀ڥ෦ʢENVIRONMENT DIVISIONʣ • ಡΈॻ͖͢ΔϑΝΠϧ৘ใ౳Λهड़ • σʔλ෦ʢDATA DIVISIONʣ • ϑΝΠϧϑΥʔϚοτɺม਺ʢσʔλ߲໨ʣ౳Λهड़ • खଓ͖෦ʢPROCEDURE DIVISIONʣ • ࣮ࡍͷॲཧΛهड़

Slide 21

Slide 21 text

ม਺ • ม਺ˠCOBOLͰ͸ʮσʔλ߲໨ʯΒ͍͠ *> 01͸Ϩϕϧ൪߸ *> CNT01͕ม਺໊ *> PIC͸PICTURE۟Ͱσʔλ߲໨Λఆٛ͢ΔͨΊͷจ๏ *> 9(1)͸਺ࣈҰܻ *> VALUEͰॳظ஋ઃఆ DATA DIVISION. WORKING-STORAGE SECTION. 01 CNT01 PIC 9(1) VALUE 0.

Slide 22

Slide 22 text

഑ྻ • ഑ྻˠCOBOLͰ͸ʮςʔϒϧʯΒ͍͠ *> Ϩϕϧ൪߸͸ *> 1͕࠷্Ґͷ֊૚ͱͳΓɺ਺ࣈ͕૿͑Δ΄ͲԼҐͷ֊૚ͱͳΓ·͢ *> ͱͷ͜ͱ *> http://tallercolibri.com/archives/104 *> OCCURS͕۟഑ྻఆٛ༻ͷจ๏ DATA DIVISION. WORKING-STORAGE SECTION. 01 TABLE01. 03 ELEM OCCURS 3. 05 VAL PIC 9(1).

Slide 23

Slide 23 text

͍Ζ͍Ζͳจ • DISPLAYจ • දࣔ • COMPUTEจ • ࢉज़ԋࢉ • COMPUTE CNT = 1 + 1Έ͍ͨͳײ͡ • MOVEจ • సه • ୅ೖ༻్ͬΆ͍͕ɺʮඪ४ܻدͤنଇͱݺ͹ΕΔϧʔϧ͕͋Γɺඇ਺ࣈ߲໨͸ࠨدͤʹసه͠ɺ༨Γͷ෦෼͸ ۭനจࣈͰิΘΕ·͢ʯͱͷ͜ͱ • http://www.atmarkit.co.jp/ait/articles/0906/11/news104_3.html • MOVE 0 TO CNT

Slide 24

Slide 24 text

෼ذ *> IF͸ׂΓͱී௨ IF A = B DISPLAY "ಉ͡" END-IF *> EVALUATE͸switchจ΍caseจΈ͍ͨͳײ͡ EVALUATE CNT WHEN 1 DISPLAY "ONE" WHEN 2 DISPLAY "TWO" END-EVALUATE.

Slide 25

Slide 25 text

܁Γฦ͠ • ͍Ζ͍Ζ͋Δ͚Ͳɺɺɺ *> ഑ྻELEMͷͦΕͧΕʹ1͔Β3Λ୅ೖ PERFORM VARYING CNT FROM 1 BY 1 UNTIL CNT > 3 MOVE CNT TO ELEM(CNT) END-PERFORM

Slide 26

Slide 26 text

ͦͯ͠ਓੜ͸ଓ͘ • ຾͍ • ؔ਺ఆٛɺݺͼग़͠ • ϑΝΠϧೖग़ྗ • ֎෦ϓϩάϥϜݺͼग़͠ • ாථ • …

Slide 27

Slide 27 text

FizzBuzzͷྫ • https://github.com/ise/cobol-sample/blob/master/src/fizzbuzz.cob IDENTIFICATION DIVISION. PROGRAM-ID. FIZZ_BUZZ. DATA DIVISION. WORKING-STORAGE SECTION. 01 CNT PIC 9(3) VALUE 0. 01 MOD3 PIC 9(1) VALUE 0. 01 MOD5 PIC 9(1) VALUE 0. PROCEDURE DIVISION. PERFORM VARYING CNT FROM 1 BY 1 UNTIL CNT > 100 COMPUTE MOD3 = FUNCTION MOD(CNT 3) COMPUTE MOD5 = FUNCTION MOD(CNT 5) IF MOD3 = 0 AND MOD5 = 0 DISPLAY "FizzBuzz" ELSE IF MOD3 = 0 DISPLAY "Fizz" ELSE IF MOD5 = 0 DISPLAY "Buzz" ELSE DISPLAY CNT END-IF END-PERFORM. • আࢉΛආ͚ΔྫˠFizzBuzz໰୊ - COBOLٕज़ऀͷ༕ᓔ

Slide 28

Slide 28 text

͓·͚ʢ̍ʣ • Ͳ͏ͯ͠΋ORCAͷίʔυΛಡΈ͍ͨਓ΁ • ࡶͳCOBOLίʔυҰཡ • https://github.com/ise/orca-jma-receipt-study/blob/ master/cobol.md

Slide 29

Slide 29 text

͓·͚ʢ̎ʣ • Ͳ͏ͯ͠΋ORCAͷίʔυΛಡΈ͍ͨਓ΁ # ϦϙδτϦऔಘ $ brew install cvs $ curl http://ftp.orca.med.or.jp/pub/data/receipt/tec/orcacvs > ~/bin/orcacvs $ chmod +x ~/bin/orcacvs $ cvs -d :ext:[email protected]:/cvs co jma-receipt

Slide 30

Slide 30 text

ࢀߟαΠτʢORCAʣ • ORCA Projectɿ ٕज़৘ใ • ORCA | ͓ͪ͝ΌΜͷࡶจ • ORCA࣍ظFW։ൃͷݱঢ় • ҩྍ෼໺ʹ͓͚ΔΦʔϓϯιʔειϑτ΢ΣΞͷ։ൃͱར༻ • http://www.opensquare.co.jp/seminar/document/19/3-OpenCOBOL • https://ftp.orca.med.or.jp/pub/data/news/orca-conference-2015-document-7-ginbee1.pdf • ORCAΧϯϑΝϨϯε2015ɹGinbee։ൃঢ়گʹ͍ͭͯ - ͓஌Βͤ • ೔ҩITઓུηογϣϯʙORCAɾ೔ҩೝূہͷࠓޙͷൃలʹ޲͚ͯʮ೔Ϩηͱ࿈ܞιϑτʢిࢠΧϧςͳͲʣͷ࠷৽৘ใʯ - ͓஌Βͤ • xenialORCA - ORCA ؆୯ Πϯετʔϧ • ORCAΧϯϑΝϨϯε2016 - ORCAϓϩδΣΫτ | Doorkeeper • ORCAΧϯϑΝϨϯε2015ɹ৽ͨͳ̖̥̞ʢ̧̝̖̤̞ʣʹ͍ͭͯ - ͓஌Βͤ • https://ftp.orca.med.or.jp/pub/data/news/orca-conference-2015-document-6-haori.pdf • ϔϧεέΞ͚ͩͰऴΘΒͤͳ͍ҩྍITʢ6ʣɿษڧձͰ໌Β͔ʹͳͬͨҩྍ޲͚OSSͷଟ༷ͳ׆༻๏ᴷᴷిࢠΧϧςɺྟচࢼݧσʔλղੳɺ೔ຊޠҩֶ༻ޠϓϥ οτϑΥʔϜɺը૾DB (1/4) - ˏIT • http://www.ssk.or.jp/seikyushiharai/gyomuflow/gyomuflow_01.html

Slide 31

Slide 31 text

ࢀߟαΠτʢCOBOLʣ • αϧͰ΋Θ͔ΔCOBOLೖ໳ ʲͻΑ͜άϛʳ • COBOLϓϩάϥϛϯάೖ໳ • COBOL - Getting Started - ˏIT • COBOLϓϩάϥϛϯά࿈ࡌҰཡɿCodeZineʢίʔυδϯʣ • COBOLެࣜαΠτ

Slide 32

Slide 32 text

·ͱΊ • ORCAͱCOBOLʹ͍ͭͯ঺հͨ͠ • COBOL໘ന͍Ͱ͢Ͷ • ͳΜ͔ͩ৺͕๛͔ʹͳΓ·ͨ͠Ͷ • Զͨͪͷઓ͍͸͜Ε͔Βͩ

Slide 33

Slide 33 text

͋Γ͕ͱ͏͍͟͝·ͨ͠