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
460
0
Share
モテる!筋肉コンパイラ自作入門 - 草食男子からの卒業
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
74
珈琲と僕
totzyuta
0
120
読んで理解するActiveRecordの設計とActiveSupport::Concern
totzyuta
4
1.7k
TDDとVimと
totzyuta
1
550
Git/GitHub入門-GitHubでたのしいチーム開発
totzyuta
0
320
Vimmer幼稚園
totzyuta
2
120
たのしいたーみなる
totzyuta
0
55
Featured
See All Featured
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Designing Experiences People Love
moore
143
24k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
340
Git: the NoSQL Database
bkeepers
PRO
432
67k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
670
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…