メドレー開発部TechLunch ORCAとCOBOLと WATASHI
by
MEDLEY, INC.
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
͋Γ͕ͱ͏͍͟͝·ͨ͠