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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yusuke Inai
July 05, 2022
Programming
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
低レイヤへの誘い
Yusuke Inai
July 05, 2022
More Decks by Yusuke Inai
See All by Yusuke Inai
で、エンジニアになって1年経ったけどどう?
youliangdao
1
390
人よりアウトプットができるようになるためのコツ
youliangdao
0
230
Next.jsから見る Webフロントエンドの歴史
youliangdao
1
1.2k
SaaSスタートアップで3ヶ月働いてみて感じた現実(リアル)
youliangdao
0
520
個人開発で挫折する人を救いたい
youliangdao
2
3.9k
Qiitaでバズりやすい記事の書き方を伝授する
youliangdao
0
4.7k
React って本当に使う意味あるの? 〜SPA と React の「キホン」の「キ」〜
youliangdao
1
270
PumaとUnicornって結局何なん!?
youliangdao
0
1.7k
"ぼくのかんがえたさいきょうの"勉強法
youliangdao
0
440
Other Decks in Programming
See All in Programming
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.7k
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.3k
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
190
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
1.1k
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
9
5.8k
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
3.3k
FDEが実現するAI駆動経営の現在地
gonta
2
240
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
170
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
0
640
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
340
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
340
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
210
Featured
See All Featured
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Unsuck your backbone
ammeep
672
58k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
420
Why Our Code Smells
bkeepers
PRO
340
58k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
How to make the Groovebox
asonas
2
2.3k
Site-Speed That Sticks
csswizardry
13
1.4k
Chasing Engaging Ingredients in Design
codingconduct
0
250
How to Talk to Developers About Accessibility
jct
2
460
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Transcript
低レイヤへの誘い 2022.7/5 LT 杏寿郎、お前も 低レイヤの住人にならないか?
01 02 03 04 05 こんな仲間が欲しい! 自己紹介 低レイヤとは? Let's 低レイヤ!
おわりに 目次
自己紹介 01 01
01 自己紹介 ・稲井友亮 ・25歳 ・RUNTEQ34期生 ・医者目指してた ・低レイヤ大好き
自己紹介 01 自己紹介
02 02 こんな仲間が 欲しい!
02 こんな仲間が 欲しい! 以上 募集する仲間 低レイヤ プログラミング仲間 以上
03 03低レイヤとは?
03 低レイヤと は? ハードウェアに近い階層 =低レイヤ
「縁の下の力持ち」 03 低レイヤと は?
03 低レイヤと は?
03 低レイヤと は? ※引用元 https://qiita.com/no wnabe/items/47cc5d 95e8b4e01205a8
03 低レイヤと は? 低レイヤ風に説明 Rubyプログラム実行プロセス 01 01 02 02 03
03 04 04 まずRubyインタプリタ ( コ ー ド を 実 行 す る 際 に、rubyコマンドと打つ あれ)がプログラムを意 味のわかる最小単位にま で分解する 字句解析 構文解析 トークン列がどんな意味 のプログラムなのか理解 するために構文木と呼ば れるデータ構造に落とし 込む コード生成 構文木をコンパイルし、 Rubyを実行するために 設計された仮想マシンで あ る RubyVM 用 の 言 語 (バイトコード)に落と し込む 実行 RubyVMがバイトコード を実行
04 04 Let's 低レイヤ!
低レイヤがしていることを 実際に体験してみよう! 04 Let's 低レ イヤ!
04 Let's 低レ イヤ! 例題プログラム
低レイヤ Rubyプログラム実行プロセス 01 01 02 02 03 03 04 04
まずRubyインタプリタ ( コ ー ド を 実 行 す る 際 に、rubyコマンドと打つ あれ)がプログラムを意 味のわかる最小単位にま で分解する 字句解析 構文解析 トークン列がどんな意味 のプログラムなのか理解 するために構文木と呼ば れるデータ構造に落とし 込む コード生成 構文木をコンパイルし、 Rubyを実行するために 設計された仮想マシンで あ る RubyVM 用 の 言 語 (バイトコード)に落と し込む 実行 RubyVMがバイトコード を実行 04 Let's 低レ イヤ!
04 Let's 低レ イヤ! 低レイヤ Rubyプログラム実行プロセス 03 03 04 04
コード生成 構文木をコンパイルし、 Rubyを実行するために 設計された仮想マシンで あ る RubyVM 用 の 言 語 (バイトコード)に落と し込む 実行 RubyVMがバイトコード を実行 詳細を知りたい人は 「言語理論」「オートマトン 」 「文脈自由文法」「再帰下降構文解析」 辺りでググろう♪
04 Let's 低レ イヤ! 低レイヤ Rubyプログラム実行プロセス 03 03 04 04
コード生成 構文木をコンパイルし、 Rubyを実行するために 設計された仮想マシンで あ る RubyVM 用 の 言 語 (バイトコード)に落と し込む 実行 RubyVMがバイトコード を実行
04 Let's 低レ イヤ! 構文木 =データ構造
04 Let's 低レ イヤ! 低レイヤ Rubyプログラム実行プロセス 03 03 04 04
コード生成 構文木をコンパイルし、 Rubyを実行するために 設計された仮想マシンで あ る RubyVM 用 の 言 語 (バイトコード)に落と し込む 実行 RubyVMがバイトコード を実行 コンパイル ・言語を変換すること ・英語のcompileから来ており、元は編纂って意味 ・昔はコンピュータで仕事をする前、いろいろな書類 を綴じて(file)、紙挟み(folder)に入れることを compileと言っていました。
04 Let's 低レ イヤ! 低レイヤ Rubyプログラム実行プロセス 03 03 04 04
コード生成 構文木をコンパイルし、 Rubyを実行するために 設計された仮想マシンで あ る RubyVM 用 の 言 語 (バイトコード)に落と し込む 実行 RubyVMがバイトコード を実行
04 Let's 低レ イヤ! (Rubyを実行するために設計された仮想マシンで あるRubyVM用の)言語に落とし込む →「別の言語に置き換える」ということ RubyVMがバイトコードを実行 →「置き換わった言語を実行する」ということ
低レイヤ Rubyプログラム実行プロセス 03 03 04 04 コード生成 構文木をコンパイルし、 Rubyを実行するために 設計された仮想マシンで
あ る RubyVM 用 の 言 語 (バイトコード)に落と し込む 実行 RubyVMがバイトコード を実行 04 Let's 低レ イヤ! + ⬅️ 構文木を別の言語に置き 換えて処理して実行する
低レイヤ Rubyプログラム実行プロセス 04 Let's 低レ イヤ! ⬅️ 構文木をRubyで処 理して実行する 03
03 04 04 コード生成 構文木をコンパイルし、 Rubyを実行するために 設計された仮想マシンで あ る RubyVM 用 の 言 語 (バイトコード)に落と し込む 実行 RubyVMがバイトコード を実行 +
04 Let's 低レ イヤ! 例題プログラム
04 Let's 低レ イヤ! + + 3 1 2 今回の構文木
04 Let's 低レ イヤ! 木を配列で表現 木の表現方法 ・今回は[名前、左の木、右の木]の順番で配列に格納 ・ただしこれ以外にも方法は色々ある
04 Let's 低レ イヤ! + + 3 1 2 今回の構文木
04 Let's 低レ イヤ! Rubyに落とし込む
04 Let's 低レ イヤ! + + 3 1 2 今回の構文木
04 Let's 低レ イヤ! Rubyに落とし込む
04 Let's 低レ イヤ! アクセス方法
04 Let's 低レ イヤ! + + 3 1 2 今回の構文木
04 Let's 低レ イヤ! 実際にコードを書いて みよう! 皆さんも一緒に考えながらやっていただける と幸いです。
04 Let's 低レ イヤ! 例題プログラム
04 Let's 低レ イヤ! 木の処理方法 木の処理方法 ・木を処理する方法は名前の部分が値ならその値、値 でなければ左と右を処理して得られた値に「名前」 の処理を行う
04 Let's 低レ イヤ! + 1 2
04 Let's 低レ イヤ! + + 3 1 2 今回の構文木
04 Let's 低レ イヤ! 雛型を作成
04 Let's 低レ イヤ! + + 3 1 2 今回の構文木
04 Let's 低レ イヤ! 左側の処理
04 Let's 低レ イヤ! + + 3 1 2 今回の構文木
04 Let's 低レ イヤ! 右側の処理
04 Let's 低レ イヤ! + + 3 1 2 今回の構文木
04 Let's 低レ イヤ! 全体処理
04 Let's 低レ イヤ! 完成!!
04 Let's 低レ イヤ!
05 05 おわりに
低レイヤを知れば 世界が広がる!!