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
100
Working with UNIX Process 6/7 Chapter
totzyuta
1
60
珈琲と僕
totzyuta
0
83
読んで理解するActiveRecordの設計とActiveSupport::Concern
totzyuta
4
1.5k
TDDとVimと
totzyuta
1
470
Git/GitHub入門-GitHubでたのしいチーム開発
totzyuta
0
290
Vimmer幼稚園
totzyuta
2
110
たのしいたーみなる
totzyuta
0
40
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
51
4.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
Designing for Performance
lara
604
68k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
3
370
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
790
Building an army of robots
kneath
302
42k
The Art of Programming - Codeland 2020
erikaheidi
51
13k
Navigating Team Friction
lara
183
14k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Making Projects Easy
brettharned
115
5.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
A Tale of Four Properties
chriscoyier
156
23k
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…