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
PHP でアセンブリっぽく書く技術
Search
memory
PRO
September 25, 2024
Programming
1
110
PHP でアセンブリっぽく書く技術
低レイヤゆるっと LT 大会
memory
PRO
September 25, 2024
Tweet
Share
More Decks by memory
See All by memory
事業観点から見る技術的負債の返済
memory1994
PRO
4
810
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
180
How to implement a RubyVM with PHP?
memory1994
PRO
3
2.4k
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
8
2.5k
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
memory1994
PRO
1
750
令和最新版 PHP メモリ管理術
memory1994
PRO
6
4k
技術的負債が生まれる背景を理解して,アーリーからレイター向けの根本的なアプローチを考える
memory1994
PRO
23
9k
激辛のすゝめ
memory1994
PRO
1
550
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
memory1994
PRO
1
6.3k
Other Decks in Programming
See All in Programming
わたしの星のままで一番星になる ~ 出産を機にSIerからEC事業会社に転職した話 ~
kimura_m_29
0
140
42 best practices for Symfony, a decade later
tucksaun
1
140
AWS認定資格を勉強した先に何があったか
satoshi256kbyte
2
190
.NET 9アプリをCGIとして レンタルサーバーで動かす
mayuki
1
760
[FlutterKaigi2024] Effective Form 〜Flutterによる複雑なフォーム開発の実践〜
chocoyama
1
4k
暇に任せてProxmoxコンソール 作ってみました
karugamo
1
490
PipeCDの歩き方
kuro_kurorrr
4
140
新規学習のハードルを下げる方法とは?/ How to Make Learning Something New Easier?
nobuoooo
1
140
Vapor Revolution
kazupon
2
2.6k
事業成長を爆速で進めてきたプロダクトエンジニアたちの成功談・失敗談
nealle
3
1.3k
Cloudflare MCP ServerでClaude Desktop からWeb APIを構築
kutakutat
0
120
これでLambdaが不要に?!Step FunctionsのJSONata対応について
iwatatomoya
1
1.2k
Featured
See All Featured
Speed Design
sergeychernyshev
25
650
The World Runs on Bad Software
bkeepers
PRO
65
11k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
260
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.3k
Agile that works and the tools we love
rasmusluckow
328
21k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
27
2.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
BBQ
matthewcrist
85
9.3k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
900
Git: the NoSQL Database
bkeepers
PRO
427
64k
Done Done
chrislema
181
16k
Transcript
ΊΓʔ 1)1ͰΞηϯϒϦͬΆ͘ॻٕ͘ज़ ͖ͳݴޠͰ࡞ΔʂϨΠϠΏΔͬͱ-5େձ 1
ΊΓʔ NNS ෳͷϕϯνϟʔاۀελʔτΞοϓا ۀɼ্اۀͰιϑτΣΞΤϯδχΞ ࣥߦһ$50ͱͯ͠׆ಈɻ ݄ʹגࣜձࣾϋςϨϏδϣϯ ʹೖࣾ͠ɺͦͷ··ࢠձࣾͰ͋Δ-JJHBג ࣜձࣾͷ$50ʹबɻ 2 NFNPSZ
NNS
3
1)1Ͱ+7.ͷ࣮ !1)1FS,BJHJ 4 1)1Ͱ3VCZ7.ͷ࣮ !3VCZ,BJHJ աڈͷ࡞ʜ
1)1Ͱ04Λ࣮ 5 ৽࡞
1)1ॻ͍ͨ͜ͱ͋Δਓʙʂ 6
7
ΞηϯϒϦॻ͍ͨ͜ͱ͋Δਓʙʂ 8
9
ຊ1)1ͰΞηϯϒϦͬΆ͘ॻٕ͘ज़Λ ղઆ͠·͢ 10
ΞηϯϒϦʹ͍ͭͯ 1)1ͷ4ZOUBY 1)1ΛΞηϯϒϦͬΆ͘ॻ͘ 11 ࣍
ΞηϯϒϦʹ͍ͭͯ 12
ΞηϯϒϦݴޠʹ৭Μͳछྨ͕͋Γ·͢ɻྫ͑ɼ/"4. /FUXJEF"TTFNCMFS Λච಄ʹɼ("4"4 1PSUBCMF(/6"TTFNCMFS ͩͬͨΓɼ."4.ʢ.JDSPTPGU .BDSP"TTFNCMFSʣͳͲɻ ͦΕͧΕඍົʹํݴ͕ҧ͍·͕͢ɼ֓ͶϨδελʹରͯ͠ಡΈࠐΜͩΓॻ͖ࠐΜͩ
Γɼϧʔϓͤͨ͞ΓΈ͍ͨͳॲཧ΄ͱΜͲҰॹͰ͢ɻ ΞηϯϒϦͰNPWKNQ KNQFRVBMTKNQOPUFRVBMTؚ ͳͲ͕සग़ ͢Δ΄Ͳʹ༷ʑͳׂΛ୲ͬͯ͘Ε·͢ɻ 13 ΞηϯϒϦʹ͍ͭͯ
ͨͩΞηϯϒϦ1)1ͷΑ͏ͳߴڃݴޠΈ͍ͨʹมΛͨ͘͞ΜએݴͰ͖ͨΓɼJG จҰͭͰॻ͘ͷʹۤ࿑͠·͢͠ɼจࣈྻग़ྗ༰қͰ͋Γ·ͤΜɻ ϨδελʹݶΓ͕͋Γ·͢ɻมʹϥΠϑαΠΫϧͳΜͯଘࡏ͠ͳ͍͠ɼ1)1 Ͱ͍͏ͱ͜ΖͷάϩʔόϧมΛ͜Ͷ͘Γճͯ͠ɼจࣈྻग़ྗγεςϜίʔϧͳ͍ ͠#*04ׂΓࠐΈΛ༻͍ΔͳͲϨΠϠʔͳॲཧ͕ඞཁͰ͢ɻ ͰɼͦΜͳΞηϯϒϦΛ1)1ͰͦΕͬΆ͘ॻ͘ʹͲ͏ͨ͠Β͍͍Ͱ͠ΐ͏͔ɻ ·ͣ1)1ʹ
࠷ۙc ৮Εͯͳ͍ͱ͍͏ਓ͍Δͱࢥ͏ͷͰɼ͓͞Β͍Λ͠·͠ΐ ͏ɻ 14 ΞηϯϒϦʹ͍ͭͯ
1)1ͷ4ZOUBY 15
1)1ͷมఆٛWBSͷΑ͏ʹ͠·͢ɻ࠷ۙܕJOUWBSͷΑ͏ʹఆٛͰ͖ ΔΑ͏ʹͳΓ·ͨ͠ɻ ྫ͑1)1ͷؔఆٛԼਤͷΑ͏ʹ͠·͢ɻ 16 1)1ͷ4ZOUBY
ఆEF fi OF /".& WBS ͷΑ͏ʹ͠·͢ɻઌ΄ͲͷؔͷྫͰग़͍ͯͨɹ 1)1@&0-ఆͰ͋Γɼ༻࣌ʹಛʹϚʔΫΛඞཁͱ͠·ͤΜɻ ͱ͍͑ɼ͜Μͳ୯७ͳ4ZOUBYͰΞηϯϒϦͷΑ͏ʹݟ͑ͳ͍ͷͰɼ
1)1ΛΞηϯϒϦͷΑ͏ʹॻ͘ʹͻͱ͕ඞཁͰ͢ɻ ͰɼͲͷΑ͏ʹॻ͚Α͍Ͱ͠ΐ͏͔ɻݟ͍͖ͯ·͠ΐ͏ɻ 17 1)1ͷ4ZOUBY
1)1ΛΞηϯϒϦͬΆ͘ॻ͘ 18
1)1ͰΞηϯϒϦΛॻ͘ํ๏͍͔ͭ͋͘Γ·͢ɻ/"4.ͷΑ͏ͳͷΛ1)1 Ͱ࡞Εྑ͍ͷͰ͢ɻͰɼͦΜͳͷΰʔϧ͕ݟ͍͑ͯͯ໘ന͋͘Γ·ͤΜɻ 1)1ͷγϯλοΫε্ͱ͍͏ݶΒΕ੍ͨͷதͰۃྗΞηϯϒϦͷΑ͏ͳॻࣜʹۙ ͚ͮͯͦ͜ɼָ͍͠ͱ͍͏ͷͰ͢ɻ ͰɼͲ͏͍ͬͨํ๏͕͋ΔͰ͠ΐ͏͔ɻ 19 1)1ΛΞηϯϒϦͬΆ͘ॻ͘
1)1ͷ-FYFS1BSTFSΛΠδΔํ๏ ఆΛͬͯɼͦΕͬΆ͘ݟͤΔํ๏ 20 1)1ΛΞηϯϒϦͬΆ͘ॻ͘ ϚδͰͦΕͬΆ͘ॻ͘
1)1ͷ-FYFS1BSTFSΛΠδΔํ๏ 21
1)1ͷίʔυ͍ͬͨ͡ΒͦΓΌ ԿͰͰ͖ΔͰ͠ΐ 22
ͱ͍͏͜ͱͰ͜ͷҊηϧϑϦδΣΫτͰ͢ 23
ఆΛͬͯɼͦΕͬΆ͘ݟͤΔํ๏ 24
࠷ॳࠨͷΑ͏ͳײ͡ͰͦΕͬΆ͘ॻ͍ͯͨ TJBI BMͳͲ1)1ͷఆͰఆٛɻ 1)1ͷఆ࠶ೖͦ͜Ͱ͖ͳ͍͕ɼ ΦϒδΣΫτΛ͓͚࣋ͬͯΔͷͰɼΦϒδΣ ΫτͷதΛม͑ΔڍಈͰ࠶ݱɻ 25 ఆΛͬͯɼͦΕͬΆ͘ݟͤΔํ๏
ؔ ఆ ϥϕϧ
࠷ॳࠨͷΑ͏ͳײ͡ͰͦΕͬΆ͘ॻ͍ͯͨ TJBI BMͳͲ1)1ͷఆͰఆٛɻ 1)1ͷఆ࠶ೖͦ͜Ͱ͖ͳ͍͕ɼ ΦϒδΣΫτΛ͓͚࣋ͬͯΔͷͰɼΦϒδΣ ΫτͷதΛม͑ΔڍಈͰ࠶ݱɻ 26 ఆΛͬͯɼͦΕͬΆ͘ݟͤΔํ๏
ؔ ఆ ϥϕϧ ్த͔Βॻ͍ͯͯ ʮ໘ന͘ͳ͍ͳɼ͜ͷίʔυʯͱࢥ͏Α͏ʹͳ͖ͬͯͨɻ ୭Ͱॻ͚ͦ͏ͩ͠ɻ ͱ Ͱғ͏ͷμα͍͠ɻ
࠷ॳࠨͷΑ͏ͳײ͡ͰͦΕͬΆ͘ॻ͍ͯͨ TJBI BMͳͲ1)1ͷఆͰఆٛɻ 1)1ͷఆ࠶ೖͦ͜Ͱ͖ͳ͍͕ɼ ΦϒδΣΫτΛ͓͚࣋ͬͯΔͷͰɼΦϒδΣ ΫτͷதΛม͑ΔڍಈͰ࠶ݱɻ 27 ఆΛͬͯɼͦΕͬΆ͘ݟͤΔํ๏
ؔ ఆ ϥϕϧ HPUPจJGจΛ͏ͷഊײΛײ͡Δʢ୭ʹʁসʣ
ͬͱ໘ന͘Ͱ͖ͳ͍͔ͳʜ 28
29
ͦ͏͍͑1)1ͬͯؔʹ ܕࢦఆͰ͖ΔΑͳʜ 30
31
ͤʜʂ 32
33
34
ʢΰϛ͋Δ͚Ͳʣ ͦΕͬΆ͘ͳ͍Ͱ͔͢ʁ🤔 35
ϚδͰͦΕͬΆ͘ॻ͘ 36
@TUBSU@MPPQͷΑ͏ͳܗͰ ϥϕϧΛදݱɻ 1)1GVODUJPO \^ͷ ΘΓʹGO YͷΑ͏ͳ
දه͕Ͱ͖Δɻ 37 ϚδͰͦΕͬΆ͘ॻ͘ ϥϕϧ ϥϕϧ
1)1ͰҙͷΦϒδΣΫτͷ ܕΛҾ͖ड͚ΔΑ͏ʹܕΛॻ͚ Δɻ ͦͷܕΛχʔϞχοΫʹ͢ NPWͷΑ͏ͳͭΦϖϥϯυΛ Ҿ͖ड͚Δ߹ɼܕͳ͠ҾͰ ΦϖϥϯυͬΆ͘ݟͤΔ
38 ϚδͰͦΕͬΆ͘ॻ͘ NPWܕ ͭͷҾͰͦΕͬΆ͘
θϩ͔Β࢝·ΔมఆٛͰ͖ ͣ0x10ͱॻ͚ͳ͍ͷͰOx10 ͱθϩΛ0Ͱ͝·͔͢ Ҿͳ͕͠Ͱ͖ͳ͍ͷͰɼΦϖϥ ϯυͷͳ͍ͷ@Ͱදݱ 1)1Ͱಉ͡ม໊ΛෳҾͰ ࢦఆͰ͖ͳ͍ͷͰɼಉ໊͡લͷҾ
͕ൃੜ͢Δ߹ɼผͷؔͱ ͯ͠վΊͯఆٛ͢Δඞཁ͕͋Δɻ 39 ϚδͰͦΕͬΆ͘ॻ͘ Φϖϥϯυͳ͠ Y&Ͱͳ͘0Y& ಉ͡Ҿ໊Λ͏ͨΊʹ ผͷؔͱͯ͠ఆٛ
͍ͭͰʹΞηϯϒϦͷ؆қϥϯλΠϜ࣮͢Δ 40
41 ͪΌΜͱॻ͘ͱεϥΠυʹऩ·Γ͖Βͳ͍ͷͰ ίʔυΰϧϑͯ͠·͢
42
%&.0 43
3VCZͩͱ1)1ΑΓͦΕͬΆ͘ॻ͚·͢ 44
3VCZͩͬͨΒɼγϯλοΫεҧʹͳΒͣ ʹࠨଆͷॻࣜͰϚδͰͦΕͬΆ͔͚͘Δɻ ؆қϥϯλΠϜ༻ҙ͍ͯ͠ͳ͍͕ɼ͓ͦΒ ͘3VCZ7.*OTUSVDUJPO4FRVFODF͋ͨΓΛ ۦ͢Ε࣮Ͱ͖Δɻ ଞͷݴޠͷγϯλοΫεͲ͏Ͱ͠ΐ͏ ͔ʜʁΈͳ͞Μɼͥͻࢼͯ͠Έ͍ͯͩ͘͞
Ͷɻ 45 3VCZͩͱ1)1ΑΓͦΕͬΆ͘ॻ͚·͢
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 46