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
October 30, 2024
Programming
1
230
PHP でアセンブリ言語のように書く技術
PHP 勉強会 169
memory
PRO
October 30, 2024
Tweet
Share
More Decks by memory
See All by memory
JVM の仕組みを理解して PHP で実装してみよう
m3m0r7
PRO
1
290
コードゴルファー道
m3m0r7
PRO
0
390
ChatGPT とつくる PHP で OS 実装
m3m0r7
PRO
3
260
事業観点から見る技術的負債の返済
m3m0r7
PRO
4
1.2k
PHP でアセンブリっぽく書く技術
m3m0r7
PRO
1
150
How to implement a RubyVM with PHP?
m3m0r7
PRO
3
2.8k
二郎系ラーメンのコールで学ぶ AST 解析
m3m0r7
PRO
8
2.8k
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
m3m0r7
PRO
1
910
令和最新版 PHP メモリ管理術
m3m0r7
PRO
7
4.7k
Other Decks in Programming
See All in Programming
코딩 에이전트 체크리스트: Claude Code ver.
nacyot
0
990
DMMを支える決済基盤の技術的負債にどう立ち向かうか / Addressing Technical Debt in Payment Infrastructure
yoshiyoshifujii
4
590
Gemini CLIの"強み"を知る! Gemini CLIとClaude Codeを比較してみた!
kotahisafuru
2
150
テスターからテストエンジニアへ ~新米テストエンジニアが歩んだ9ヶ月振り返り~
non0113
2
240
テスト環境にCDを導入してみた
yasaigaoisi
0
100
フロントエンドのパフォーマンスチューニング
koukimiura
6
2.3k
ご注文の差分はこちらですか? 〜 AWS CDK のいろいろな差分検出と安全なデプロイ
konokenj
4
670
QA x AIエコシステム段階構築作戦
osu
0
130
Porting a visionOS App to Android XR
akkeylab
0
910
Claude Code で Astro blog を Pages から Workers へ移行してみた
codehex
0
150
NEWT Backend Evolution
xpromx
1
150
Rails Frontend Evolution: It Was a Setup All Along
skryukov
0
320
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
184
22k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
530
The Invisible Side of Design
smashingmag
301
51k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Faster Mobile Websites
deanohume
308
31k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
282
13k
Bash Introduction
62gerente
613
210k
Building an army of robots
kneath
306
45k
Transcript
ΊΓʔ 1)1ΛΞηϯϒϦݴޠͷΑ͏ʹ ॻٕ͘ज़ ୈճ1)1ษڧձ 1
ΊΓʔ NNS ෳͷϕϯνϟʔاۀελʔτΞοϓا ۀɼ্اۀͰιϑτΣΞΤϯδχΞ ࣥߦһ$50ͱͯ͠׆ಈɻ ݄ʹגࣜձࣾϋςϨϏδϣϯ ʹೖࣾ͠ɺͦͷ··ࢠձࣾͰ͋Δ-JJHBג ࣜձࣾͷ$50ʹबɻ 2 NFNPSZ
NNS
3
4 ৽͍͠ຊ͕ग़·͢
1)1Ͱ+7.ͷ࣮ !1)1FS,BJHJ 5 1)1Ͱ3VCZ7.ͷ࣮ !3VCZ,BJHJ աڈͷ࡞ʜ
ʮ1)1Ͱ04Λ࣮ʯ 1)1$POGFSFODF+BQBOͰൃද༧ఆͰ͢ 6 ৽࡞
1)1ॻ͍ͨ͜ͱ͋Δਓʙʂ 7
8
ΞηϯϒϦॻ͍ͨ͜ͱ͋Δਓʙʂ 9
10
ຊ1)1ͰΞηϯϒϦͬΆ͘ॻٕ͘ज़Λ ղઆ͠·͢ 11
ΞηϯϒϦʹ͍ͭͯ 1)1ͷ4ZOUBY 1)1ΛΞηϯϒϦͬΆ͘ॻ͘ 12 ࣍
ΞηϯϒϦʹ͍ͭͯ 13
ΞηϯϒϦݴޠʹ৭Μͳछྨ͕͋Γ·͢ɻྫ͑ɼ/"4. /FUXJEF"TTFNCMFS Λච಄ʹɼ("4"4 1PSUBCMF(/6"TTFNCMFS ͩͬͨΓɼ."4.ʢ.JDSPTPGU .BDSP"TTFNCMFSʣͳͲɻ ͦΕͧΕඍົʹํݴ͕ҧ͍·͕͢ɼ֓ͶϨδελʹରͯ͠ಡΈࠐΜͩΓॻ͖ࠐΜͩ
Γɼϧʔϓͤͨ͞ΓΈ͍ͨͳॲཧ΄ͱΜͲҰॹͰ͢ɻ ΞηϯϒϦͰNPWKNQ KNQFRVBMTKNQOPUFRVBMTؚ ͳͲ͕සग़ ͢Δ΄Ͳʹ༷ʑͳׂΛ୲ͬͯ͘Ε·͢ɻ 14 ΞηϯϒϦʹ͍ͭͯ
ͨͩΞηϯϒϦ1)1ͷΑ͏ͳߴڃݴޠΈ͍ͨʹมΛͨ͘͞ΜએݴͰ͖ͨΓɼJG จҰͭͰॻ͘ͷʹۤ࿑͠·͢͠ɼจࣈྻग़ྗ༰қͰ͋Γ·ͤΜɻ ϨδελʹݶΓ͕͋Γ·͢ɻมʹϥΠϑαΠΫϧͳΜͯଘࡏ͠ͳ͍͠ɼ1)1 Ͱ͍͏ͱ͜ΖͷάϩʔόϧมΛ͜Ͷ͘Γճͯ͠ɼจࣈྻग़ྗγεςϜίʔϧͳ͍ ͠#*04ׂΓࠐΈΛ༻͍ΔͳͲϨΠϠʔͳॲཧ͕ඞཁͰ͢ɻ ͰɼͦΜͳΞηϯϒϦΛ1)1ͰͦΕͬΆ͘ॻ͘ʹͲ͏ͨ͠Β͍͍Ͱ͠ΐ͏͔ɻ ·ͣ1)1ʹ
࠷ۙc ৮Εͯͳ͍ͱ͍͏ਓ͍Δͱࢥ͏ͷͰɼ͓͞Β͍Λ͠·͠ΐ ͏ɻ 15 ΞηϯϒϦʹ͍ͭͯ
1)1ͷ4ZOUBY 16
1)1ͷมఆٛWBSͷΑ͏ʹ͠·͢ɻ࠷ۙܕJOUWBSͷΑ͏ʹఆٛͰ͖ ΔΑ͏ʹͳΓ·ͨ͠ɻ ྫ͑1)1ͷؔఆٛԼਤͷΑ͏ʹ͠·͢ɻ 17 1)1ͷ4ZOUBY
ఆEF fi OF /".& WBS ͷΑ͏ʹ͠·͢ɻઌ΄ͲͷؔͷྫͰग़͍ͯͨɹ 1)1@&0-ఆͰ͋Γɼ༻࣌ʹಛʹϚʔΫΛඞཁͱ͠·ͤΜɻ ͱ͍͑ɼ͜Μͳ୯७ͳ4ZOUBYͰΞηϯϒϦͷΑ͏ʹݟ͑ͳ͍ͷͰɼ
1)1ΛΞηϯϒϦͷΑ͏ʹॻ͘ʹͻͱ͕ඞཁͰ͢ɻ ͰɼͲͷΑ͏ʹॻ͚Α͍Ͱ͠ΐ͏͔ɻݟ͍͖ͯ·͠ΐ͏ɻ 18 1)1ͷ4ZOUBY
1)1ΛΞηϯϒϦͬΆ͘ॻ͘ 19
1)1ͰΞηϯϒϦΛॻ͘ํ๏͍͔ͭ͋͘Γ·͢ɻ/"4.ͷΑ͏ͳͷΛ1)1 Ͱ࡞Εྑ͍ͷͰ͢ɻͰɼͦΜͳͷΰʔϧ͕ݟ͍͑ͯͯ໘ന͋͘Γ·ͤΜɻ 1)1ͷγϯλοΫε্ͱ͍͏ݶΒΕ੍ͨͷதͰۃྗΞηϯϒϦͷΑ͏ͳॻࣜʹۙ ͚ͮͯͦ͜ɼָ͍͠ͱ͍͏ͷͰ͢ɻ ͰɼͲ͏͍ͬͨํ๏͕͋ΔͰ͠ΐ͏͔ɻ 20 1)1ΛΞηϯϒϦͬΆ͘ॻ͘
1)1ͷ-FYFS1BSTFSΛΠδΔํ๏ ఆΛͬͯɼͦΕͬΆ͘ݟͤΔํ๏ 21 1)1ΛΞηϯϒϦͬΆ͘ॻ͘ ϚδͰͦΕͬΆ͘ॻ͘
1)1ͷ-FYFS1BSTFSΛΠδΔํ๏ 22
1)1ͷίʔυ͍ͬͨ͡ΒͦΓΌ ԿͰͰ͖ΔͰ͠ΐ 23
ͱ͍͏͜ͱͰ͜ͷҊηϧϑϦδΣΫτͰ͢ 24
ఆΛͬͯɼͦΕͬΆ͘ݟͤΔํ๏ 25
࠷ॳࠨͷΑ͏ͳײ͡ͰͦΕͬΆ͘ॻ͍ͯͨ TJBI BMͳͲ1)1ͷఆͰఆٛɻ 1)1ͷఆ࠶ೖͦ͜Ͱ͖ͳ͍͕ɼ ΦϒδΣΫτΛ͓͚࣋ͬͯΔͷͰɼΦϒδΣ ΫτͷதΛม͑ΔڍಈͰ࠶ݱɻ 26 ఆΛͬͯɼͦΕͬΆ͘ݟͤΔํ๏
ؔ ఆ ϥϕϧ
࠷ॳࠨͷΑ͏ͳײ͡ͰͦΕͬΆ͘ॻ͍ͯͨ TJBI BMͳͲ1)1ͷఆͰఆٛɻ 1)1ͷఆ࠶ೖͦ͜Ͱ͖ͳ͍͕ɼ ΦϒδΣΫτΛ͓͚࣋ͬͯΔͷͰɼΦϒδΣ ΫτͷதΛม͑ΔڍಈͰ࠶ݱɻ 27 ఆΛͬͯɼͦΕͬΆ͘ݟͤΔํ๏
ؔ ఆ ϥϕϧ ్த͔Βॻ͍ͯͯ ʮ໘ന͘ͳ͍ͳɼ͜ͷίʔυʯͱࢥ͏Α͏ʹͳ͖ͬͯͨɻ ୭Ͱॻ͚ͦ͏ͩ͠ɻ ͱ Ͱғ͏ͷμα͍͠ɻ
࠷ॳࠨͷΑ͏ͳײ͡ͰͦΕͬΆ͘ॻ͍ͯͨ TJBI BMͳͲ1)1ͷఆͰఆٛɻ 1)1ͷఆ࠶ೖͦ͜Ͱ͖ͳ͍͕ɼ ΦϒδΣΫτΛ͓͚࣋ͬͯΔͷͰɼΦϒδΣ ΫτͷதΛม͑ΔڍಈͰ࠶ݱɻ 28 ఆΛͬͯɼͦΕͬΆ͘ݟͤΔํ๏
ؔ ఆ ϥϕϧ HPUPจJGจΛ͏ͷഊײΛײ͡Δʢ୭ʹʁসʣ
ͬͱ໘ന͘Ͱ͖ͳ͍͔ͳʜ 29
30
ͦ͏͍͑1)1ͬͯؔʹ ܕࢦఆͰ͖ΔΑͳʜ 31
32
ͤʜʂ 33
34
35
ʢΰϛ͋Δ͚Ͳʣ ͦΕͬΆ͘ͳ͍Ͱ͔͢ʁ🤔 36
ϚδͰͦΕͬΆ͘ॻ͘ 37
@TUBSU@MPPQͷΑ͏ͳܗͰ ϥϕϧΛදݱɻ 1)1GVODUJPO \^ͷ ΘΓʹGO YͷΑ͏ͳ
දه͕Ͱ͖Δɻ 38 ϚδͰͦΕͬΆ͘ॻ͘ ϥϕϧ ϥϕϧ
1)1ͰҙͷΦϒδΣΫτͷ ܕΛҾ͖ड͚ΔΑ͏ʹܕΛॻ͚ Δɻ ͦͷܕΛχʔϞχοΫʹ͢ NPWͷΑ͏ͳͭΦϖϥϯυΛ Ҿ͖ड͚Δ߹ɼܕͳ͠ҾͰ ΦϖϥϯυͬΆ͘ݟͤΔ
39 ϚδͰͦΕͬΆ͘ॻ͘ NPWܕ ͭͷҾͰͦΕͬΆ͘
θϩ͔Β࢝·ΔมఆٛͰ͖ ͣ0x10ͱॻ͚ͳ͍ͷͰOx10 ͱθϩΛ0Ͱ͝·͔͢ Ҿͳ͕͠Ͱ͖ͳ͍ͷͰɼΦϖϥ ϯυͷͳ͍ͷ@Ͱදݱ 1)1Ͱಉ͡ม໊ΛෳҾͰ ࢦఆͰ͖ͳ͍ͷͰɼಉ໊͡લͷҾ
͕ൃੜ͢Δ߹ɼผͷؔͱ ͯ͠վΊͯఆٛ͢Δඞཁ͕͋Δɻ 40 ϚδͰͦΕͬΆ͘ॻ͘ Φϖϥϯυͳ͠ Y&Ͱͳ͘0Y& ಉ͡Ҿ໊Λ͏ͨΊʹ ผͷؔͱͯ͠ఆٛ
͍ͭͰʹΞηϯϒϦͷ؆қϥϯλΠϜ࣮͢Δ 41
42 ͪΌΜͱॻ͘ͱεϥΠυʹऩ·Γ͖Βͳ͍ͷͰ ίʔυΰϧϑͯ͠·͢
3VCZͩͱ1)1ΑΓͦΕͬΆ͘ॻ͚·͢ 43
࠷ۙࣄͰ1)1ΑΓ3VCZ͔ΓΛॻ ͍͍ͯΔʜ 3VCZͩͬͨΒɼγϯλοΫεҧʹͳΒͣ ʹࠨଆͷॻࣜͰϚδͰͦΕͬΆ͔͚͘Δɻ ؆қϥϯλΠϜ༻ҙ͍ͯ͠ͳ͍͕ɼ͓ͦΒ ͘3VCZ7.*OTUSVDUJPO4FRVFODF͋ͨΓΛ ۦ͢Ε࣮Ͱ͖Δɻ
44 3VCZͩͱ1)1ΑΓͦΕͬΆ͘ॻ͚·͢
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 45