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
410
人よりアウトプットができるようになるためのコツ
youliangdao
0
250
Next.jsから見る Webフロントエンドの歴史
youliangdao
1
1.3k
SaaSスタートアップで3ヶ月働いてみて感じた現実(リアル)
youliangdao
0
530
個人開発で挫折する人を救いたい
youliangdao
2
3.9k
Qiitaでバズりやすい記事の書き方を伝授する
youliangdao
0
4.8k
React って本当に使う意味あるの? 〜SPA と React の「キホン」の「キ」〜
youliangdao
1
280
PumaとUnicornって結局何なん!?
youliangdao
0
1.8k
"ぼくのかんがえたさいきょうの"勉強法
youliangdao
0
440
Other Decks in Programming
See All in Programming
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
300
高橋メソッドでCVE解説シリーズ 〜CVE-2026-112816〜
hakkadaikon
0
230
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
250
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
190
Getting Started with Vibe Coding
miccheng
0
190
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
300
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.2k
[DroidKnights 2026] Workflow AX: From Auto-Documented Policies to E2E Testing
raeminkang
0
540
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
420
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
160
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
160
Featured
See All Featured
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Optimizing for Happiness
mojombo
378
71k
Ethics towards AI in product and experience design
skipperchong
2
460
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
680
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
910
Utilizing Notion as your number one productivity tool
mfonobong
4
640
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
470
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
370
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 おわりに
低レイヤを知れば 世界が広がる!!