Slide 1

Slide 1 text

ϞςΔʂ ے೑ίϯύΠϥࣗ࡞ೖ໳ ʙ૲৯உࢠ͔Βͷଔۀʙ

Slide 2

Slide 2 text

ࣗݾ঺հ

Slide 3

Slide 3 text

ށ௩༎ଠ (@totzyuta) גࣜձࣾ OneBox ίʔώʔΛᔸΕ͍͍ͯͨ ݉ CTO (ಡΈ: ࡶ༻)

Slide 4

Slide 4 text

ΈΜͳ͕Ұ౓͸ߟ͑Δ

Slide 5

Slide 5 text

Ϟς͍ͨ…

Slide 6

Slide 6 text

͚ͩͲͲ͏͢Ε͹…

Slide 7

Slide 7 text

ίϯύΠϥʂ

Slide 8

Slide 8 text

ίϯύΠϥͬͯͭ͘ΕΔͷ…ʁ

Slide 9

Slide 9 text

ͭͬͯ͘΋ҙຯͳͦ͞͏…

Slide 10

Slide 10 text

ίϯύΠϥΛͭ͘Ζ͏

Slide 11

Slide 11 text

ίϯύΠϥΛͭ͘Δͱ… 1. ܭࢉػ͕ߴڃݴޠΛͲͷΑ͏ʹղऍ͍ͯ͘͠ ͷ͔ཧղ͢Δ͜ͱ͕Ͱ͖Δ 2. ܭࢉػࣗମ΍OSͷ࢓૊Έʹ͍ͭͯ΋ߟ͑ΕΔɹ => ϞςΔʂ

Slide 12

Slide 12 text

ίϯύΠϥ͕ͯ͠Δ͜ͱ

Slide 13

Slide 13 text

ίϯύΠϥ • ࣈ۟ղੳث => τʔΫϯ੾Γग़͠ • ߏจղੳث => γϯλοΫενΣοΫ • ҙຯղੳ => ܕͷνΣοΫɺະఆٛม਺ɺؔ਺ • ࠷దԽ => ΑΓޮ཰తͳॲཧɺϝϞϦ࢖༻ • ίʔυੜ੒ => λʔήοτϓϩάϥϜੜ੒

Slide 14

Slide 14 text

ίϯύΠϥ • ࣈ۟ղੳث => τʔΫϯ੾Γग़͠ • ߏจղੳث => γϯλοΫενΣοΫ • ҙຯղੳ => ܕͷνΣοΫɺະఆٛม਺ɺؔ਺ • ࠷దԽ => ΑΓޮ཰తͳॲཧɺϝϞϦ࢖༻ • ίʔυੜ੒ => λʔήοτϓϩάϥϜੜ੒ άάͬͯͶὑ

Slide 15

Slide 15 text

ίϯύΠϧͷྲྀΕ ιʔεϓϩάϥϜ τʔΫϯྻ ߏจ໦ தؒޠ ΦϒδΣΫτίʔυ ࣈ۟ղੳ ߏจղੳ ߏจղੳ ࠷దԽ ίʔυੜ੒

Slide 16

Slide 16 text

ίϯύΠϧͷྲྀΕ ιʔεϓϩάϥϜ τʔΫϯྻ ߏจ໦ தؒޠ ΦϒδΣΫτίʔυ ࣈ۟ղੳ ߏจղੳ ߏจղੳ ࠷దԽ ίʔυੜ੒ άάͬͯͶὑ

Slide 17

Slide 17 text

࣮૷

Slide 18

Slide 18 text

ίϯύΠϥΛ࡞Δखॱ 1. ʢݴޠΛఆٛ͢Δʣ 2. ࣈ۟ղੳثΛͭ͘Δ 3. ߏจղੳثΛͭ͘Δ (1) ԋࢉࢠॱҐߏจղੳ (2) ࠶ؼԼ߱ܕߏจղੳ 4. ࠷దԽʢͭΒ͍ʣ 5. ίʔυੜ੒ॲཧ෦෼Λͭ͘Δ

Slide 19

Slide 19 text

ศརͳπʔϧ

Slide 20

Slide 20 text

ࣈ۟ղੳث & ߏจղੳث ࣗಈੜ੒πʔϧ

Slide 21

Slide 21 text

lex & yacc

Slide 22

Slide 22 text

͜ΕΛ࢖͑͹ ΋ͬͱ؆୯ͩ!! ΍ͬͨ͊͊͊͊

Slide 23

Slide 23 text

yacc / lex ͳ͠Ͱ࡞ͬͯΈΔ

Slide 24

Slide 24 text

…ے೑Ͱ࡞Βͳ͍ͱϞςͳ͍ʂ

Slide 25

Slide 25 text

ࣈ۟ղੳثΛͭ͘Δ • දۦಈܕΦʔτϚϯ => ऴ୺ه߸ɺඇऴ୺ه ߸ɺੜ੒نଇɺग़ൃه߸Ͱߏ੒ • ߏ଄ମͰঢ়ଶભҠදΛఆٛͯ͠ঢ়ଶΛભҠ͢Δ • τʔΫϯͷλΠϓΛఆٛ͢Δ • Ғେͳݴޠ͸େ఍ࣗ࡞

Slide 26

Slide 26 text

ߏจղੳثΛͭ͘Δ • ԋࢉࢠॱҐߏจղੳ • ελοΫΛ࢖ͬͯٯϙʔϥϯυه๏Ͱग़ྗ • ೋ෼໦Λ࢖ͬͯࢉज़͚ࣜͩͷߏจ໦Λੜ੒ • ϙΠϯλΛ࢖ͬͯϊʔυΛදݱ

Slide 27

Slide 27 text

ߏจղੳثΛͭ͘Δ • ࠶ؼԼ߱ܕߏจղੳ • จ๏نଇͻͱͭʹ͖ͭղੳؔ਺Λͻͱͭ༻ҙ • ޙ໭Γ: ๯಄෦෼͕ڞ௨͢Δจ๏͕͋Δͱ͖ʹͲͪΒͷੜ ੒نଇʹै͑͹ྑ్͍͔த·ͰΘ͔Βͳ͍ => ຐज़: จ๏ Λมߋ or ے೑Ͱ͘͘Γͩ͠ • ࠨ࠶ؼ => আڈΞϧΰϦζϜʹैͬͯจ๏Λมߋͯ͠আڈ (ݴޠΛॻ্͘Ͱͷมߋͳ͠ʹมߋͰ͖Δ)

Slide 28

Slide 28 text

͍Ζ͍Ζେมͳ͜ͱ΋͋Δ

Slide 29

Slide 29 text

Ұ౓͸ے೑Ͱ࡞Ζ͏ʂ

Slide 30

Slide 30 text

ίϯύΠϥΛͭ͘Ζ͏ʂ https://github.com/totzyuta/espresso

Slide 31

Slide 31 text

ߏจղੳث QBSTFSD ίϯύΠϧͷྲྀΕʢespressoʣ ιʔε ϓϩάϥϜ τʔΫϯྻ ߏจ໦ NBJOD ࣈ۟ղੳث MFYFSD ίʔυੜ੒ HFOD ߏจղੳ ࣈ۟ղੳ ΦϒδΣΫτίʔυ ίʔυੜ੒ τʔΫϯྻ ߏจ໦ ΦϒδΣΫτίʔυ τʔΫϯྻ ߏจ໦ ΦϒδΣΫτίʔυ

Slide 32

Slide 32 text

ߟ͑ͨ͜ͱ • શͯͷղੳث͕໌֬ͳ໾ׂΛ࣋ͭ΂͖ • ࡉ෼Խ͞Εͨؔ਺ • ϑΝΠϧ෼ׂ͸େ͖ͳϑΥʔΧεͷϞδϡʔϧ෼ׂ • Ӎ߱ͬͯ஍ݻ·Δ => ࠷ॳ͸ݴޠ࢓༷ݻΊ͗͢ͳ͍ํ ͕ޙͰࢮͳͳ͍ • είʔϓͷখ͍͞Τϥʔग़ྗ (ಛʹߏจղੳث)

Slide 33

Slide 33 text

ίϯύΠϥΛ࡞ͬͯΈͯ… • ܭࢉػ͕ߴڃݴޠΛͲͷΑ͏ʹղऍ͍ͯ͘͠ͷ͔ͪΐͬͱཧղ ͢Δ͜ͱ͕Ͱ͖ͨ • ϞςΔ • ܭࢉػࣗମ΍OSͷ࢓૊Έʹ͍ͭͯ΋ߟ͑ͨ • ίϯϐϡʔλαΠΤϯεͬͯ͜ΜͳΜ…ͯͳΔ͕ͦͷ൓ಈͰͳ Μ͔΋ͬͱ޷͖ʹͳΔ • ϞςΔ

Slide 34

Slide 34 text

ॻ੶ • ίϯύΠϥʔݪཧɾٕ๏ɾπʔϧʢA.V.ΤΠϗ ଞʣα ΠΤϯεࣾ • 2िؒͰͰ͖ΔʂεΫϦϓτݴޠͷ࡞Γํʢઍ༿ ࣎ʣ • ;ͭ͏ͷίϯύΠϥΛͭ͘Ζ͏ʢ੨໦ ๆ࿠ʣιϑτό ϯΫΫϦΤΠςΟϒ • ̓ͭͷݴޠ ̓ͭͷੈքʢBruce A. Tateʣ

Slide 35

Slide 35 text

OSSͳίϯύΠϥ • Ruby • github.com/ruby/ruby • Golang • https://github.com/golang/go • 8cc • github.com/rui314/8cc

Slide 36

Slide 36 text

ָ͍͠ϞςϥΠϑΛʂ

Slide 37

Slide 37 text

fine…