Slide 1

Slide 1 text

Ί΋Γʔ +7.ͷ࢓૊ΈΛཧղͯ͠ 1)1Ͱ࣮૷ͯ͠ΈΑ͏ /FYUCFBU5FDI#BSɿ+BWB+7.ࡇΓ 1

Slide 2

Slide 2 text

Ί΋Γʔ NNS ෳ਺ͷϕϯνϟʔاۀ΍ελʔτ Ξοϓاۀɼ্৔اۀͰιϑτ΢Σ ΞΤϯδχΞ΍$50ͱͯ͠׆ಈɻ ීஈ͸3VCZͱ5ZQF4DSJQUॻ͍ͯ ·͢ɻ 2 NNS NNS

Slide 3

Slide 3 text

3 NEW!

Slide 4

Slide 4 text

1)1Ͱ+7.ͷ࣮૷ !1)1FS,BJHJ 4 1)1Ͱ3VCZ7.ͷ࣮૷ !3VCZ,BJHJ աڈͷ࡞඼ʜ

Slide 5

Slide 5 text

7.ʢ7JSUVBM.BDIJOFʣͷ࢓૊Έ +7.ͷ࣮૷ํ๏ 1)1Ͱͷ࣮૷ํ๏ %&.0 5 ͋͐͡Μͩ

Slide 6

Slide 6 text

஫ҙࣄ߲ 6

Slide 7

Slide 7 text

࣮૷ͷ͠΍͢͞ͷ؍఺Ͱ+%,Λڭࡐͱ͠·͢ ίϯύΠϥʹ͍ͭͯ͸࿩͠·ͤΜ 1)1 +BWBͷॻ͖ํʹ͍ͭͯ͸࿩͠·ͤΜ +7.4QFDJ fi DBUJPOͷৄ͍͠ಡΈํʹ͍ͭͯ͸ 7 ஫ҙࣄ߲ ࿩͠·ͤΜ

Slide 8

Slide 8 text

8 ϦϙδτϦͷ͝঺հ IUUQTHJUIVCDPNQIQKBWBQIQKBWB

Slide 9

Slide 9 text

ଟ͘ͷਓ͕֤ʑͷ޷͖ͳݴޠͰ +7.Λ࣮૷͢Δ͜ͱ͕ྲྀߦΓ·ͨ͠Ͷ ʢ೥લʣ 9

Slide 10

Slide 10 text

ࠓ͸--.΋͋Γɼੲ΄Ͳ࣮૷ʹ ۤ৺͠ͳ͍ͩΖ͏ͱࢥ͍·͢ɻ  ϓϩάϥϛϯάॳ৺ऀͷํ΋௅ઓ͕Ͱ͖Δ ͱͯ΋ྑ͍࣌୅͕౸དྷ͖ͯ͠·ͨ͠ɻ 10

Slide 11

Slide 11 text

ͷͰͥͻ௅ઓͯ͠ΈͯͶʂ 11

Slide 12

Slide 12 text

7. 7JSUVBM.BDIJOF ʹ͍ͭͯ 12

Slide 13

Slide 13 text

 +7.Λ࣮૷͢Δʹ͋ͨͬͯ7.ͷཧղ͸ඇৗʹॏཁͰ͢ɻ  7.͸7JSUVBM.BDIJOFͱ͍͍ɼͦͷίϯϐϡʔλͷಈ࡞Λιϑτ΢ΣΞ্Ͱ࠶ݱ ͢Δ΋ͷͰ͢ɻ  ྫ͑͹7JSUVBM#PYͳͲ͕Πϝʔδʹ͍ۙΜ͡Όͳ͍Ͱ͠ΐ͏͔ɻ  ͨͩɼ͜ΕΒͷ΄ͱΜͲ͸ɼ+7.ͷΑ͏ͳ7.ͱ͸গ͠ҟͳΓ·͢ɻ 13 7. 7JSUVBM.BDIJOF ʹ͍ͭͯ

Slide 14

Slide 14 text

 ҰํͰɼ+7.ʢ+BWB7JSUVBM.BDIJOFʣ΍;FOE7. 1)1༻ͷ7JSUVBM.BDIJOF ɼ 3VCZ7.ͳͲ͸શ͘ҟͳΓ·͢ɻ  ઌ΄Ͳͷྫ͸ϋʔυ΢ΣΞϨϕϧͷ΋ͷͰ͕͢ɼ͜ΕΒ͸ΞϓϦέʔγϣϯϨϕϧ ͷ΋ͷͰ͢ɻ  7.ͱॻ͍͍ͯͯ΋ɼ͍͔ͭ͘छྨ͕͋ΔΜͩɼͱ͓΅͓͖͑ͯ·͠ΐ͏ɻ  ࣍ʹྫͷਤΛࣔ͠·͢ɻ 14 7. 7JSUVBM.BDIJOF ʹ͍ͭͯ

Slide 15

Slide 15 text

15 7. 7JSUVBM.BDIJOF ʹ͍ͭͯ macOS VirtualBox (VM) JVM Java ϓϩάϥϜ JVM Java ϓϩάϥϜ Zend VM PHPϓϩάϥϜ

Slide 16

Slide 16 text

 ͦͯ͠ɼ΄ͱΜͲͷΞϓϦέʔγϣϯϨϕϧͷ7.͸ελοΫϚγϯʹ͍͔ۙͨͪͰ ࣮ͯ͠૷͞Ε͍ͯ·͢ʢ%BMWJLͳͲ͸আ͘ʣɻ  ΋ͪΖΜ+7.΋3VCZ7.΋ελοΫϚγϯͷΑ͏ͳܗͰɼ$16ͷ΄ͱΜͲ ʢY͸ʣ͸ϨδελϚγϯͰ͢ɻ  ελοΫϚγϯͱ͸ɼࢦఆ͞Ε͍͔ͨͭ͘ͷϨδελ্ʹԿ͔Λ֨ೲ͢ΔͷͰ͸ͳ ͘ɼσʔλΛελοΫʢੵΈ্͛ʣͳ͕Βɼॲཧ͍ͯ͘͠ํ๏Ͱ͢ɻ  ҰํϨδελϚγϯ͸ɼ͋Β͔͡ΊܾΊΒΕͨϨδελͱݺ͹ΕΔྖҬʹ஋Λ֨ೲ ͯ͠ܭࢉΛߦ͍ͬͯ͘΋ͷͰ͢ɻ 16 7. 7JSUVBM.BDIJOF ʹ͍ͭͯ

Slide 17

Slide 17 text

 ϨδελϚγϯͷݩΛ֞ؒݟ͍ͨͷͰ͋Ε͹ɼΞηϯϒϦݴޠΛॻ͍ͯɼ֤$16ʹ ࠷దԽ͞ΕͨܗͰτϥϯεύΠϧ͢Ε͹ɼ͋Δఔ౓ཧղͰ͖ΔΜ͡Όͳ͍͔ͳͱࢥ͍ ·͢ɻ  ༨ஊͰ͕͢ɼελοΫϚγϯ͸Ұ෦ͷϨδελϚγϯͷ࢓૊ΈΛऔΓೖΕ͍ͯΔ͜ͱ ΋͋Γ·͢ɻ 17 7. 7JSUVBM.BDIJOF ʹ͍ͭͯ

Slide 18

Slide 18 text

ελοΫϚγϯ ʙ  Λٙࣅ໋ྩηοτͰܭࢉ͢Δʙ 18

Slide 19

Slide 19 text

  Λٙࣅ໋ྩηοτͰܭࢉ͢Δ 19 7. 7JSUVBM.BDIJOF ʹ͍ͭͯ constadd (operand: 1) constadd (operand: 2) constadd (operand: 3) plus plus output - constadd ໋ྩ͸ 1 ͭͷΦϖϥϯυΛऔΓɼͦΕΛελοΫ ʹϓογϡ͢Δ໋ྩ - plus ͸ελοΫ͔Β 2 ͭ஋Λϙοϓ͠ɼͦΕΛՃࢉͨ͠΋ͷ ΛελοΫʹϓογϡ͢Δ໋ྩ - output ͸ελοΫ͔ΒҰͭϙοϓ͠ग़ྗ͢Δ໋ྩ - ্هͷ 3 ͭͷ໋ྩͰ࣮ݱՄೳͰ͢ɻ͜ͷҰ࿈ͷྲྀΕΛ໋ྩ γʔέϯεͱݴͬͨΓ͠·͢ɻ

Slide 20

Slide 20 text

  Λٙࣅ໋ྩηοτͰܭࢉ͢Δ 20 7. 7JSUVBM.BDIJOF ʹ͍ͭͯ constadd (operand: 1) constadd (operand: 2) constadd (operand: 3) plus plus output ελοΫ 1 ελοΫʹ 1 Λϓογϡ

Slide 21

Slide 21 text

  Λٙࣅ໋ྩηοτͰܭࢉ͢Δ 21 7. 7JSUVBM.BDIJOF ʹ͍ͭͯ constadd (operand: 1) constadd (operand: 2) constadd (operand: 3) plus plus output ελοΫ 1 ελοΫʹ 2 Λϓογϡ 2

Slide 22

Slide 22 text

  Λٙࣅ໋ྩηοτͰܭࢉ͢Δ 22 7. 7JSUVBM.BDIJOF ʹ͍ͭͯ constadd (operand: 1) constadd (operand: 2) constadd (operand: 3) plus plus output ελοΫ 1 2 ͭͷσʔλΛϙοϓ 2 3 Ճࢉͨ݁͠ՌΛϓογϡ

Slide 23

Slide 23 text

  Λٙࣅ໋ྩηοτͰܭࢉ͢Δ 23 7. 7JSUVBM.BDIJOF ʹ͍ͭͯ constadd (operand: 1) constadd (operand: 2) constadd (operand: 3) plus plus output ελοΫ 3 ελοΫʹ 3 Λϓογϡ 3

Slide 24

Slide 24 text

  Λٙࣅ໋ྩηοτͰܭࢉ͢Δ 24 7. 7JSUVBM.BDIJOF ʹ͍ͭͯ constadd (operand: 1) constadd (operand: 2) constadd (operand: 3) plus plus output ελοΫ 3 2 ͭͷσʔλΛϙοϓ 3 6 Ճࢉͨ݁͠ՌΛϓογϡ

Slide 25

Slide 25 text

  Λٙࣅ໋ྩηοτͰܭࢉ͢Δ 25 7. 7JSUVBM.BDIJOF ʹ͍ͭͯ constadd (operand: 1) constadd (operand: 2) constadd (operand: 3) plus plus output ελοΫ 6 1 ͭͷσʔλΛϙοϓ

Slide 26

Slide 26 text

ϨδελϚγϯͷ࢓૊Έ͸ $16ʹΑͬͯҟͳΔͷͰׂѪ͠·͢ 26

Slide 27

Slide 27 text

+7.ͷ࣮૷ํ๏ 27

Slide 28

Slide 28 text

 7.ͷ࣮૷ํ๏͕֓ͶΘ͔Γ·ͨ͠ͶɻͰ͸ɼ࣮ࡍʹ+7.ͷ࣮૷ํ๏ʹ͍ͭͯཧղ ΛਂΊ͍͖ͯ·͠ΐ͏ɻ  +7.͸DMBTTϑΝΠϧͱݺ͹ΕΔσʔλߏ଄ͷू߹Λ໋ྩͱղऍͯ͠ಈ࡞ͤ͞ΔΞ ϓϦέʔγϣϯϨϕϧͷ7.Ͱ͢ɻ  DMBTTϑΝΠϧ͸ɼ+7.ͷن໿ʹଇΓɼҰൠతʹ͸+BWBϓϩάϥϜ͔ΒίϯύΠϧ ͞Ε·͢ɻ  ͋Δ͍͸ɼ,PUMJO 4DBMBͷΑ͏ͳ+7.ݴޠͱݺ͹ΕΔϓϩάϥϜ΍ɼ΋ͪΖΜ ίϯύΠϥΛࣗ࡞ͯ͠+7.ݴޠͱ͢Ε͹ɼࣗ෼ࣗ਎ͷ޷͖ͳ΋ͷ΋ؚΈ·͢ɻ 28 +7.ͷ࣮૷ํ๏

Slide 29

Slide 29 text

 ͦͯ͠ɼ͜ΕΒ͸+7.4QFD 5IF +BWBš7JSUVBM.BDIJOF 4QFDJ fi DBUJPO ͱݺ͹ΕΔɼυΩϡϝϯτ͕ΦϯϥΠϯͰެ։͞Ε͓ͯΓɼ+7. Λࣗ࡞͢ΔڭՊॻͱ΋ͳΓ·͢ɻ  +%,͔Βɼจࣈྻॲཧͷ࠷దԽͳͲ͕͋Γ࣮૷͕൥ࡶʹͳΔͨΊɼखܰʹ΍Δ ͨΊʹ͸+%,Λਪ঑͠·͢ɻ  +%,͕͍͍ײ͡ʹಈ͍ͨΒɼ+%,ͳͲʹγϑτ͍ͯ͘͜͠ͱΛ͓͢͢Ί͠ ·͢ɻ  υΩϡϝϯτ͸ͪ͜ΒIUUQTEPDTPSBDMFDPNKBWBTFTQFDTKWNTTFIUNM 29 +7.ͷ࣮૷ํ๏

Slide 30

Slide 30 text

ͱ͸͍͑ʜ 30

Slide 31

Slide 31 text

 ௚ۙͰ͸--.΋ൃల͖͍ͯͯ͠ΔͷͰɼ$IBU(15ɼ$MBVEFɼ(FNJOJͳͲΛύʔτ φʔͱͯ͠ɼ࣮૷͢Δ΋શવ͋ΓͰ͢ɻ  ྫ͑͹ɼDMBTTϑΝΠϧͷࠜఈͷσʔλߏ଄͸$MBTT'JMF4USVDUVSFͱݺ͹ΕΔ΋ͷ Ͱ͕͢ɼ$IBU(15PͰ΋ద੾ͳճ౴Λग़ͯ͘͠Ε·͢ɻ 31 +7.ͷ࣮૷ํ๏

Slide 32

Slide 32 text

32 +7.ͷ࣮૷ํ๏ +7.4QFDΛ௚઀ಡΜͰ͍͘৔߹ IUUQTEPDTPSBDMFDPNKBWBTFTQFDTKWNTTFIUNM KWNTIUNMKWNT  $IBU(15ͱҰॹʹ࡞͍ͬͯ͘

Slide 33

Slide 33 text

ͦͯ͠$IBU(15ͱ͍ͬ͠ΐʹ ࡞͍ͬͯ͘৔߹͸ྫ΋ࣔͯ͘͠Ε·͢ 33

Slide 34

Slide 34 text

34 +7.ͷ࣮૷ํ๏ $IBU(15ͱҰॹʹ࡞͍ͬͯ͘ͱʜ

Slide 35

Slide 35 text

 $MBTT'JMF4USVDUVSF͸DMBTTϑΝΠϧͷߏ଄Λఆٛ͢Δॏཁͳσʔλߏ଄Ͱ͢ɻ 㙽ʹ΋֯ʹ΋͜ͷ࢓૊ΈΛ஌Βͳ͚Ε͹ɼଞݴޠͰ࣮૷Ͱ͖·ͤΜɻ  ຊࢿྉΛࢀߟʹ࣮૷தʹ͍᪴ͨ৔߹͸ɼͥͻ--.ʹฉ͖ͳ͕Β΍ͬͯ΋Β͑Δͱ εϜʔζ͔ͳͱࢥ͍·͢ɻ  Ͱ͸ɼ$MBTT'JMF4USVDUVSFΛಡΈࠐΉ࢓૊Έ1)1Ͱ࣮૷ͭͭ͠ɼࠓճ͸ )FMMP8PSMEͷग़ྗΛΰʔϧͱ࣮ͯ͠૷·Ͱ΍ͬͯΈ·͠ΐ͏ɻ  )FMMP8PSMEͷग़ྗͰ͋Ε͹ɼ+7.4QFDʹهࡌ͞Ε͍ͯΔ಺༰͢΂ͯΛɼ ద੾ʹཧղ࣮ͯ͠૷͢Δඞཁ΋ͳ͍ͷͰɼָ࣮͘͠૷Ͱ͖Δ͜ͱؒҧ͍ͳ͠Ͱ͢ɻ 35 +7.ͷ࣮૷ํ๏

Slide 36

Slide 36 text

1)1Ͱͷ࣮૷ํ๏ 36

Slide 37

Slide 37 text

1)1ͰόΠφϦΛಡΉʹ͸ʜʁ 37

Slide 38

Slide 38 text

 1)1ʹ΋όΠφϦΛಡΈࠐΉํ๏͕ఏ ڙ͞Ε͍ͯ·͢ɻ͜͏͍ͬͨέʔεͰ ͸GPQFO GSFBE VOQBDLͳͲ͕ ศརͰ͢ɻ  DMBTTϑΝΠϧ͸σʔλߏ଄ͱ͸͍͑ɼ +40/ͷΑ͏ʹϚγϯϦʔμϒϧͰ΋ ώϡʔϚϯϦʔμϒϧͰ΋ͳ͘ɼόΠ φϦͰ͢ɻ 38 1)1ͰόΠφϦΛಡΉʹ͸ʜʁ

Slide 39

Slide 39 text

όΠφϦΛಡΈࠐΜͰ͍͘ྲྀΕ 39

Slide 40

Slide 40 text

40 όΠφϦΛಡΈࠐΜͰ͍͘ྲྀΕ ClassFile Structure ΛಡΈࠐΉ Constant Pool ΛಡΈࠐΉ ϝιουͷ৘ใΛಡΈࠐΉ Code Attribute ΛಡΈࠐΉ ΦϖίʔυΛ࣮ߦ͢Δ ΦϖίʔυʢϓϩάϥϜʣΛ࣮ߦ͢ΔͨΊͷ
 લॲཧ

Slide 41

Slide 41 text

$MBTT'JMF4USVDUVSF 41

Slide 42

Slide 42 text

 $MBTT'JMF4USVDUVSF͸DMBTTϑΝΠϧ ͷϝλ৘ใͳͲ͕֨ೲ͞Ε͍ͯΔσʔλ ߏ଄Ͱ͢ɻ  ྫ͑͹ɼίϯύΠϧ࣌ʹ༻͍ΒΕͨ +BWBͷόʔδϣϯɼ͜ͷ͋ͱղઆ͢ Δ+7.Λ࣮૷͢ΔࡍͷίΞͱͳΔ $POTUBOU1PPMɼϑΟʔϧυͷ৘ใɼ ϝιουͷ৘ใͳͲͰ͢ɻ 42 $MBTT'JMF4USVDUVSF

Slide 43

Slide 43 text

43 $MBTT'JMF4USVDUVSF  $MBTT'JMF4USVDUVSF͸DMBTTϑΝΠϧ ͷϝλ৘ใͳͲ͕֨ೲ͞Ε͍ͯΔσʔλ ߏ଄Ͱ͢ɻ  ྫ͑͹ɼίϯύΠϧ࣌ʹ༻͍ΒΕͨ +BWBͷόʔδϣϯɼ͜ͷ͋ͱղઆ͢ Δ+7.Λ࣮૷͢ΔࡍͷίΞͱͳΔ $POTUBOU1PPMɼϑΟʔϧυͷ৘ใɼ ϝιουͷ৘ใͳͲͰ͢ɻ

Slide 44

Slide 44 text

$POTUBOU1PPM 44

Slide 45

Slide 45 text

45 $POTUBOU1PPM  $POTUBOU1PPM͸$MBTT'JMF 4USVDUVSFͷσʔλߏ଄ͷҰ෦Ͱ +7.ʹͱͬͯಛʹίΞͱͳΔσʔλߏ଄ Ͱ͢ɻ  ੔਺ɼจࣈྻɼϝιου໊ʢҾ਺ؚ ΉʣͳͲͷσʔλ͕֨ೲ͞Ε͍ͯ·͢ɻ  ͜ΕΒΛऔΓग़͢͜ͱʹΑͬͯ)FMMP 8PSMEΛग़ྗ͢Δ͜ͱ͕Ͱ͖ΔΑ͏ ʹͳΓ·͢ɻ

Slide 46

Slide 46 text

ϝιου 46

Slide 47

Slide 47 text

47 ϝιου  ϝιου͸ɼ$MBTT'JMF4USVDUVSFͷ σʔλߏ଄ͷҰ෦ͰɼΞΫηεम০ࢠ ΍ɼҾ਺ͷ৘ใΛɼͲͷ$POTUBOU 1PPM͔Βࢀর͢Δ͔Λ͍ࣔͯ͠Δ΋ͷ Ͱ͢ɻ  ͜ΕΛಡΈࠐΉ͜ͱͰɼ)FMMP 8PSMEͷग़ྗ͕࣮૷͞Ε͍ͯΔ QVCMJDTUBUJDNBJO 4USJOH<> BSHT ͷ৘ใ͕औಘͰ͖·͢ɻ

Slide 48

Slide 48 text

$PEF"UUSJCVUF 48

Slide 49

Slide 49 text

 $PEF"UUSJCVUF͸$MBTT'JMF4USVDUVSF Ͱఆٛ͞Ε͍ͯΔͷϝιουͷσʔλߏ଄ͷ Ұ෦Ͱ͢ɻ  ϝιουʹଐੑͱͯ͠ϓϩάϥϜͷ৘ใ͕ ෇ਵ͍ͯ͠·͢ɻ  $MBTT'JMF4USVDUVSFࣗମͷ"UUSJCVUFͱ ͯ͠ɼίʔυͷߦ਺Λ֨ೲ͍ͯ͠Δଐੑͷ ৘ใͳͲ͕͋Γ·͢ɻ 49 $PEF"UUSJCVUF

Slide 50

Slide 50 text

Φϖίʔυͷ࣮ߦ 50

Slide 51

Slide 51 text

 Φϖίʔυʢ0Q$PEF0QFSBUJPO$PEFʣ͸ɼ໋ྩΛ୹͘ϚγϯϦʔμϒϧʹදݱ͠ ͍ͯΔ΋ͷͰ͢ɻ·ͨҾ਺ͷ͜ͱΛΦϖϥϯυͱ͍͍·͢ɻ  $PEF"UUSJCVUFΛಡΈࠐΉ͜ͱͰɼ͜ͷ໋ྩΛऔಘͰ͖·͢ɻ 51 Φϖίʔυͷ࣮ߦ B2 00 02 12 03 B6 00 04 B1 getstatic ͷΦϖίʔυ getstatic ͷΦϖϥϯυ (Constant Pool ͷ2 ൪໨)

Slide 52

Slide 52 text

 ώϡʔϚϯϦʔμϒϧͰ͸ͳ͍ͷͰɼཧղ ͕೉͍͠Ͱ͕͢ɼ͜ΕΒΛώϡʔϚϯϦʔ μϒϧʹͨ͠΋ͷ͕͋ΓɼͦΕΒΛχʔϞ χοΫʢNOFNPOJDʣͱݺΜͩΓ͠· ͢ɻ  ΞηϯϒϦݴޠΛॻ͍ͨ͜ͱ͕͋Δਓ ͸ɼͳΜͱͳ͘Πϝʔδ͔ͭ͘ͳͱࢥ͍ ·͢ɻ  +BWB͸KBWBQDίϚϯυͰɼͲ͏͍͏ ίʔυ͔೷͚·͢ɻ 52 Φϖίʔυͷ࣮ߦ

Slide 53

Slide 53 text

͜ͷKBWBQίϚϯυͱ ಉ͡ΦϖίʔυΛ࣮૷͢Ε͹Α͍Ͱ͢ 53

Slide 54

Slide 54 text

54

Slide 55

Slide 55 text

KBWB-BOH4ZTUFN͸1)1ͷ OBNFTQBDFΛ͏·͘׆༻ͯ͠ʜ 55

Slide 56

Slide 56 text

56

Slide 57

Slide 57 text

%&.0 57 IUUQTHJTUHJUIVCDPNNNSEEDFBGFDFFBGCFDBBF

Slide 58

Slide 58 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 58