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
470
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
モテる!筋肉コンパイラ自作入門 - 草食男子からの卒業
Yuta Totz
October 22, 2015
More Decks by Yuta Totz
See All by Yuta Totz
ウガンダでXcodeをアップデートする方法
totzyuta
0
140
Working with UNIX Process 6/7 Chapter
totzyuta
1
81
珈琲と僕
totzyuta
0
120
読んで理解するActiveRecordの設計とActiveSupport::Concern
totzyuta
4
1.7k
TDDとVimと
totzyuta
1
560
Git/GitHub入門-GitHubでたのしいチーム開発
totzyuta
0
320
Vimmer幼稚園
totzyuta
2
120
たのしいたーみなる
totzyuta
0
60
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
560
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
280
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
270
Java REST API Framework Comparison - PWX 2021
mraible
34
9.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.1k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
780
Six Lessons from altMBA
skipperchong
29
4.4k
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…