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
430
モテる!筋肉コンパイラ自作入門 - 草食男子からの卒業
Yuta Totz
October 22, 2015
Tweet
Share
More Decks by Yuta Totz
See All by Yuta Totz
ウガンダでXcodeをアップデートする方法
totzyuta
0
130
Working with UNIX Process 6/7 Chapter
totzyuta
1
70
珈琲と僕
totzyuta
0
110
読んで理解するActiveRecordの設計とActiveSupport::Concern
totzyuta
4
1.6k
TDDとVimと
totzyuta
1
520
Git/GitHub入門-GitHubでたのしいチーム開発
totzyuta
0
310
Vimmer幼稚園
totzyuta
2
120
たのしいたーみなる
totzyuta
0
48
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
What's in a price? How to price your products and services
michaelherold
246
12k
Typedesign – Prime Four
hannesfritz
42
2.7k
Designing for humans not robots
tammielis
253
25k
The Language of Interfaces
destraynor
158
25k
Adopting Sorbet at Scale
ufuk
77
9.5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1k
Agile that works and the tools we love
rasmusluckow
329
21k
Practical Orchestrator
shlominoach
189
11k
Scaling GitHub
holman
460
140k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Into the Great Unknown - MozCon
thekraken
40
1.9k
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…