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
150
PHP でアセンブリっぽく書く技術
低レイヤゆるっと LT 大会
memory
PRO
September 25, 2024
Tweet
Share
More Decks by memory
See All by memory
JVM の仕組みを理解して PHP で実装してみよう
m3m0r7
PRO
1
300
コードゴルファー道
m3m0r7
PRO
0
400
ChatGPT とつくる PHP で OS 実装
m3m0r7
PRO
3
260
事業観点から見る技術的負債の返済
m3m0r7
PRO
4
1.2k
PHP でアセンブリ言語のように書く技術
m3m0r7
PRO
1
230
How to implement a RubyVM with PHP?
m3m0r7
PRO
3
2.8k
二郎系ラーメンのコールで学ぶ AST 解析
m3m0r7
PRO
8
2.9k
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
m3m0r7
PRO
1
920
令和最新版 PHP メモリ管理術
m3m0r7
PRO
7
4.8k
Other Decks in Programming
See All in Programming
学習を成果に繋げるための個人開発の考え方 〜 「学習のための個人開発」のすすめ / personal project for leaning
panda_program
1
110
CEDEC 2025 『ゲームにおけるリアルタイム通信への QUIC導入事例の紹介』
segadevtech
3
950
実践 Dev Containers × Claude Code
touyu
1
230
なぜ今、Terraformの本を書いたのか? - 著者陣に聞く!『Terraformではじめる実践IaC』登壇資料
fufuhu
4
640
ワープロって実は計算機で
pepepper
2
1.4k
Claude Codeで実装以外の開発フロー、どこまで自動化できるか?失敗と成功
ndadayo
2
730
GUI操作LLMの最新動向: UI-TARSと関連論文紹介
kfujikawa
0
1k
Dart 参戦!!静的型付き言語界の隠れた実力者
kno3a87
0
200
AI OCR API on Lambdaを Datadogで可視化してみた
nealle
0
160
Langfuseと歩む生成AI活用推進
licux
3
290
React 使いじゃなくても知っておきたい教養としての React
oukayuka
18
5.8k
コンテキストエンジニアリング Cursor編
kinopeee
1
680
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Unsuck your backbone
ammeep
671
58k
Scaling GitHub
holman
462
140k
Facilitating Awesome Meetings
lara
55
6.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
770
GitHub's CSS Performance
jonrohan
1031
460k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Building an army of robots
kneath
306
45k
Designing for humans not robots
tammielis
253
25k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
560
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