Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
低レイヤへの誘い
Search
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
400
人よりアウトプットができるようになるためのコツ
youliangdao
0
250
Next.jsから見る Webフロントエンドの歴史
youliangdao
1
1.2k
SaaSスタートアップで3ヶ月働いてみて感じた現実(リアル)
youliangdao
0
530
個人開発で挫折する人を救いたい
youliangdao
2
3.9k
Qiitaでバズりやすい記事の書き方を伝授する
youliangdao
0
4.7k
React って本当に使う意味あるの? 〜SPA と React の「キホン」の「キ」〜
youliangdao
1
280
PumaとUnicornって結局何なん!?
youliangdao
0
1.8k
"ぼくのかんがえたさいきょうの"勉強法
youliangdao
0
440
Other Decks in Programming
See All in Programming
Security issues being discussed on Web Platforms
petamoriken
0
1.3k
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1.1k
MCP Appsでつくるチャット駆動な地図アプリ
nakamori1024
0
110
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
580
iOSDC2026登壇資料.pdf
riofujimon
0
200
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.5k
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
130
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
390
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
200
AWSに止められる覚悟してますか?
morizo_1984
2
460
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.2k
iOSDCのペンライトを自動制御したい!
akkeylab
0
120
Featured
See All Featured
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
270
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5k
How to make the Groovebox
asonas
2
2.5k
Faster Mobile Websites
deanohume
310
32k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
370
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
390
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
950
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
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 おわりに
低レイヤを知れば 世界が広がる!!