Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
モテる!筋肉コンパイラ自作入門 - 草食男子からの卒業
Search
Yuta Totz
October 22, 2015
0
420
モテる!筋肉コンパイラ自作入門 - 草食男子からの卒業
Yuta Totz
October 22, 2015
Tweet
Share
More Decks by Yuta Totz
See All by Yuta Totz
ウガンダでXcodeをアップデートする方法
totzyuta
0
120
Working with UNIX Process 6/7 Chapter
totzyuta
1
62
珈琲と僕
totzyuta
0
97
読んで理解するActiveRecordの設計とActiveSupport::Concern
totzyuta
4
1.5k
TDDとVimと
totzyuta
1
490
Git/GitHub入門-GitHubでたのしいチーム開発
totzyuta
0
300
Vimmer幼稚園
totzyuta
2
110
たのしいたーみなる
totzyuta
0
41
Featured
See All Featured
Scaling GitHub
holman
459
140k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
430
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Navigating Team Friction
lara
183
15k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Speed Design
sergeychernyshev
27
810
Facilitating Awesome Meetings
lara
52
6.2k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Visualization
eitanlees
146
15k
Transcript
ϞςΔʂ ےίϯύΠϥࣗ࡞ೖ ʙ৯உࢠ͔Βͷଔۀʙ
ࣗݾհ
ށ௩༎ଠ (@totzyuta) גࣜձࣾ OneBox ίʔώʔΛᔸΕ͍͍ͯͨ ݉ CTO (ಡΈ: ࡶ༻)
ΈΜͳ͕Ұߟ͑Δ
Ϟς͍ͨ…
͚ͩͲͲ͏͢Ε…
ίϯύΠϥʂ
ίϯύΠϥͬͯͭ͘ΕΔͷ…ʁ
ͭͬͯ͘ҙຯͳͦ͞͏…
ίϯύΠϥΛͭ͘Ζ͏
ίϯύΠϥΛͭ͘Δͱ… 1. ܭࢉػ͕ߴڃݴޠΛͲͷΑ͏ʹղऍ͍ͯ͘͠ ͷ͔ཧղ͢Δ͜ͱ͕Ͱ͖Δ 2. ܭࢉػࣗମOSͷΈʹ͍ͭͯߟ͑ΕΔɹ => ϞςΔʂ
ίϯύΠϥ͕ͯ͠Δ͜ͱ
ίϯύΠϥ • ࣈ۟ղੳث => τʔΫϯΓग़͠ • ߏจղੳث => γϯλοΫενΣοΫ •
ҙຯղੳ => ܕͷνΣοΫɺະఆٛมɺؔ • ࠷దԽ => ΑΓޮతͳॲཧɺϝϞϦ༻ • ίʔυੜ => λʔήοτϓϩάϥϜੜ
ίϯύΠϥ • ࣈ۟ղੳث => τʔΫϯΓग़͠ • ߏจղੳث => γϯλοΫενΣοΫ •
ҙຯղੳ => ܕͷνΣοΫɺະఆٛมɺؔ • ࠷దԽ => ΑΓޮతͳॲཧɺϝϞϦ༻ • ίʔυੜ => λʔήοτϓϩάϥϜੜ άάͬͯͶὑ
ίϯύΠϧͷྲྀΕ ιʔεϓϩάϥϜ τʔΫϯྻ ߏจ தؒޠ ΦϒδΣΫτίʔυ ࣈ۟ղੳ ߏจղੳ ߏจղੳ ࠷దԽ
ίʔυੜ
ίϯύΠϧͷྲྀΕ ιʔεϓϩάϥϜ τʔΫϯྻ ߏจ தؒޠ ΦϒδΣΫτίʔυ ࣈ۟ղੳ ߏจղੳ ߏจղੳ ࠷దԽ
ίʔυੜ άάͬͯͶὑ
࣮
ίϯύΠϥΛ࡞Δखॱ 1. ʢݴޠΛఆٛ͢Δʣ 2. ࣈ۟ղੳثΛͭ͘Δ 3. ߏจղੳثΛͭ͘Δ (1) ԋࢉࢠॱҐߏจղੳ (2)
࠶ؼԼ߱ܕߏจղੳ 4. ࠷దԽʢͭΒ͍ʣ 5. ίʔυੜॲཧ෦Λͭ͘Δ
ศརͳπʔϧ
ࣈ۟ղੳث & ߏจղੳث ࣗಈੜπʔϧ
lex & yacc
͜ΕΛ͑ ͬͱ؆୯ͩ!! ͬͨ͊͊͊͊
yacc / lex ͳ͠Ͱ࡞ͬͯΈΔ
…ےͰ࡞Βͳ͍ͱϞςͳ͍ʂ
ࣈ۟ղੳثΛͭ͘Δ • දۦಈܕΦʔτϚϯ => ऴه߸ɺඇऴه ߸ɺੜنଇɺग़ൃه߸Ͱߏ • ߏମͰঢ়ଶભҠදΛఆٛͯ͠ঢ়ଶΛભҠ͢Δ • τʔΫϯͷλΠϓΛఆٛ͢Δ
• Ғେͳݴޠେࣗ࡞
ߏจղੳثΛͭ͘Δ • ԋࢉࢠॱҐߏจղੳ • ελοΫΛͬͯٯϙʔϥϯυه๏Ͱग़ྗ • ೋΛͬͯࢉज़͚ࣜͩͷߏจΛੜ • ϙΠϯλΛͬͯϊʔυΛදݱ
ߏจղੳثΛͭ͘Δ • ࠶ؼԼ߱ܕߏจղੳ • จ๏نଇͻͱͭʹ͖ͭղੳؔΛͻͱͭ༻ҙ • ޙΓ: ಄෦͕ڞ௨͢Δจ๏͕͋Δͱ͖ʹͲͪΒͷੜ نଇʹै͑ྑ్͍͔த·ͰΘ͔Βͳ͍ =>
ຐज़: จ๏ Λมߋ or ےͰ͘͘Γͩ͠ • ࠨ࠶ؼ => আڈΞϧΰϦζϜʹैͬͯจ๏Λมߋͯ͠আڈ (ݴޠΛॻ্͘Ͱͷมߋͳ͠ʹมߋͰ͖Δ)
͍Ζ͍Ζେมͳ͜ͱ͋Δ
ҰےͰ࡞Ζ͏ʂ
ίϯύΠϥΛͭ͘Ζ͏ʂ https://github.com/totzyuta/espresso
ߏจղੳث QBSTFSD ίϯύΠϧͷྲྀΕʢespressoʣ ιʔε ϓϩάϥϜ τʔΫϯྻ ߏจ NBJOD ࣈ۟ղੳث MFYFSD
ίʔυੜ HFOD ߏจղੳ ࣈ۟ղੳ ΦϒδΣΫτίʔυ ίʔυੜ τʔΫϯྻ ߏจ ΦϒδΣΫτίʔυ τʔΫϯྻ ߏจ ΦϒδΣΫτίʔυ
ߟ͑ͨ͜ͱ • શͯͷղੳث͕໌֬ͳׂΛ͖࣋ͭ • ࡉԽ͞Εͨؔ • ϑΝΠϧׂେ͖ͳϑΥʔΧεͷϞδϡʔϧׂ • Ӎ߱ͬͯݻ·Δ =>
࠷ॳݴޠ༷ݻΊ͗͢ͳ͍ํ ͕ޙͰࢮͳͳ͍ • είʔϓͷখ͍͞Τϥʔग़ྗ (ಛʹߏจղੳث)
ίϯύΠϥΛ࡞ͬͯΈͯ… • ܭࢉػ͕ߴڃݴޠΛͲͷΑ͏ʹղऍ͍ͯ͘͠ͷ͔ͪΐͬͱཧղ ͢Δ͜ͱ͕Ͱ͖ͨ • ϞςΔ • ܭࢉػࣗମOSͷΈʹ͍ͭͯߟ͑ͨ • ίϯϐϡʔλαΠΤϯεͬͯ͜ΜͳΜ…ͯͳΔ͕ͦͷಈͰͳ
Μ͔ͬͱ͖ʹͳΔ • ϞςΔ
ॻ੶ • ίϯύΠϥʔݪཧɾٕ๏ɾπʔϧʢA.V.ΤΠϗ ଞʣα ΠΤϯεࣾ • 2िؒͰͰ͖ΔʂεΫϦϓτݴޠͷ࡞Γํʢઍ༿ ࣎ʣ • ;ͭ͏ͷίϯύΠϥΛͭ͘Ζ͏ʢ੨
ๆʣιϑτό ϯΫΫϦΤΠςΟϒ • ̓ͭͷݴޠ ̓ͭͷੈքʢBruce A. Tateʣ
OSSͳίϯύΠϥ • Ruby • github.com/ruby/ruby • Golang • https://github.com/golang/go •
8cc • github.com/rui314/8cc
ָ͍͠ϞςϥΠϑΛʂ
fine…