メドレー開発部TechLunch ORCAとCOBOLと WATASHI
by
Medley Inc.
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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͕ม໊ *> PICPICTURE۟Ͱσʔλ߲Λఆٛ͢ΔͨΊͷจ๏ *> 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 *> EVALUATEswitchจ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
͋Γ͕ͱ͏͍͟͝·ͨ͠