ますたーさん
聞き流しプログラミング言語学習
生成AIが作成した汎用的なプログラミング言語の知識を、聞き流しで学習するための音声コンテンツです。個人学習用として作成しています。音声:VOICEVOX(青山龍星)
Where to listen?
Podcasts in the app Replaio Radio Coming soonPodcasts are coming to the app soon. Install now and be the first to see a whole new take on podcasts
Episodes
Rust 136 メモリと判別子 - enumの内部表現 08.04.2026 11:53
第136章へようこそ。 第135章で、ジェネリクスとメモリの関係を見ました。 型パラメータが具体化されるとき、メモリレイアウトが確定する。 モノモーフィゼーションとは、メモリレイアウトの生成規則が具体的な形をとることでした。 今日のテーマは「メモリと判別子」です。enumの内部表現を掘り下げます。 第127章で、enumはタグとデータの組み合わせだと語りました。 タグが今どのバリアントかを表し、データがそのバリアントの...
Rust 135 メモリ具体化 - ジェネリクスが形を持つ瞬間 07.04.2026 9:33
第135章へようこそ。 第134章で、並行性とメモリの関係を見ました。 複数のスレッドが同じバイト列に触れるとき、型システムが安全を構造的に保証する。 今日のテーマは「メモリ具体化」です。ジェネリクスが形を持つ瞬間を見ます。 第7章でジェネリクスを学びました。 第120章で、ジェネリクスのゼロコスト抽象を語りました。 モノモーフィゼーション。コンパイル時に具体的な型で展開される。 今日の問いは、ジェネリクスがメモ...
コンピュータ基礎 031 メモリオーダリング - 書いた順に実行されるとは限らない 07.04.2026 6:54
前章まで、データ競合と同期の仕組みを見てきました。 複数のコアが同じアドレスに同時にアクセスすると、データが壊れる。 アトミック命令やミューテックスで保護する。 今日は、もう1つの問題を見ます。 プログラムに書いた命令の順序と、実際に実行される順序が異なる。 この問題を「メモリオーダリング」と呼びます。 メモリへの読み書きが、どの順序で観測されるかという問題です。
Rust 134 メモリと並行性 - 複数のスレッドが同じバイト列に触れるとき 06.04.2026 9:33
第134章へようこそ。 第133章で、借用チェッカーをメモリの視点で再訪しました。 不変参照の共有、可変参照の排他性、ライフタイムの検証。 すべてがメモリのバイト列を正しく読み書きするための規則でした。 しかし、第133章の議論には暗黙の前提がありました。 実行の流れが1つであるという前提です。 今日のテーマは「メモリと並行性」です。 実行の流れが複数ある場面を見ます。 第42章でSendとSyncを学びました。 第43章でMut...
コンピュータ基礎 030 同期 - データを守る仕組みとその代償 06.04.2026 7:20
前章で、データ競合の物理的な原因を見ました。 読み出しと書き戻しの間に隙間がある。 キャッシュコヒーレンシはこの隙間を保護できない。 今日は、この問題に対処する仕組みを見ます。 ハードウェアが提供するもの。その上にソフトウェアが構築するもの。 そして、対処の代償。
Rust 133 メモリアクセス規則 - 借用チェッカーの本質 05.04.2026 7:54
第133章へようこそ。 第132章まで、メモリの姿を見てきました。 型がバイト列になる姿。所有する型と借りる型のメモリ構造。ムーブと複製の実体。メモリの一生。アロケータの仕組み。 今日のテーマは「メモリアクセス規則」です。 メモリの物理的な姿が見えるようになった今、借用チェッカーを再訪します。 第1章で借用を学びました。 第107章で借用チェッカーの詳細を学びました。 第126章で借用を「メモリへのアクセス制御」と位...
コンピュータ基礎 029 データ競合 - なぜデータが壊れるのか 05.04.2026 8:02
前章の最後で、同じメモリアドレスのデータが 異なるコアのキャッシュに別々のコピーとして存在しうることを確認しました。 今日は、この構造の上で何が起きるかを見ます。 なぜデータが壊れるのか。物理的な原因を追います。
Rust 132 メモリ配分 - アロケータの仕組み 04.04.2026 7:44
第132章へようこそ。 第131章で、メモリの一生を追いました。 スタック上の値は、スコープを抜けるときにスタックポインタの巻き戻しで消える。 ヒープ上のあたいは、スコープを抜けるときにDropを通じてアロケータに返される。 ヒープの確保と解放のとき、「アロケータ」という言葉が登場しました。 今日のテーマは「メモリ配分」です。アロケータの仕組みを見ます。 Vecに要素を追加するとき、ヒープ上にメモリが確保される。 St...
コンピュータ基礎 028 スレッド - 1つのプロセスの中の複数の実行の流れ 04.04.2026 9:33
前章で、並行処理と並列処理を学びました。 1つのコアがコンテキストスイッチで複数のプロセスを交互に実行する。 複数のコアがあれば、複数のプロセスが物理的に同時に動く。 ここまで、複数の処理はすべて「複数のプロセス」でした。 第18章で学んだ通り、プロセスは別々のプログラムです。 ブラウザとテキストエディタ。それぞれが独立したメモリ空間を持つ。 今日は、1つのプロセスの中に複数の実行の流れを持つ仕組みを見ます...
Rust 131 メモリの一生 - 確保、使用、解放 03.04.2026 9:18
第131章へようこそ。 第130章まで、メモリの姿を見てきました。 第127章で、型がバイト列になる姿。 第128章で、所有する型がスタックとヒープにまたがる姿。 第129章で、借りる型がポインタとして存在する姿。 第130章で、あたいが移動するときのバイト列の複製。 これらはメモリの構造と動きの話でした。 今日のテーマは「メモリの一生」です。メモリの時間の話をします。 値が生まれるとき、メモリが確保される。 値が使われて...
コンピュータ基礎 027 並行と並列 - 複数の処理が動くとは何か 03.04.2026 8:08
第22章から第26章まで、IOを具体的に見てきました。 マウスが動いたとき、CPUは割り込みが来るまで別の仕事をしていた。 ディスクにデータを要求したとき、プロセスは待機中になり、CPUは別のプロセスを動かしていた。 「別の仕事をしていた」「別のプロセスを動かしていた」 この言葉を何度も使ってきました。 しかし、複数の処理が同時に動くとはどういうことなのか。 まだ正面から見ていません。 今日はこの問いに答えます。
Rust 130 メモリの移動 - ムーブとコピーの正体 02.04.2026 9:02
第130章へようこそ。 第128章で、所有する型のメモリ構造を見ました。 第129章で、借りる型のメモリ構造を見ました。 今日のテーマは「メモリの移動」です。ムーブとコピーの正体を見ます。 第1章で所有権を学んだとき、ムーブを学びました。 値の所有権が別の変数に移る。元の変数はもう使えない。 第2章でCopyトレイトを学びました。 ムーブの代わりに複製が行われる型。元の変数も引き続き使える。 これらの動作は、メモリの中...
コンピュータ基礎 026 ルーティング - データが宛先に届くまで 02.04.2026 8:11
前章で、データが自分のコンピュータから送り出されるまでを見ました。 プロセスのデータにヘッダが層ごとに付き、フレームとして組み立てられ、 NICが差動信号に変換してケーブルに送り出した。 データはコンピュータの外に出た。 ケーブルの先にある機器から、次の機器へ。 データはどうやって目的地にたどり着くのか。
Rust 129 メモリ上の参照 - 借りるとはポインタを持つこと 01.04.2026 9:46
第129章へようこそ。 第128章で、所有する型のメモリ構造を見ました。 Vec、String、Box、Rc。 スタック上のヘッダがヒープ上のデータを指す。所有者がデータの生死を握る。 今日のテーマは「メモリ上の参照」です。所有しない側を見ます。 参照。スライス。 第1章で借用を学びました。値を所有せずに、一時的にアクセスする仕組み。 第126章で、借用を「メモリへのアクセス許可」と見直しました。 この「アクセス許可」は、メモリ...
コンピュータ基礎 025 ネットワーク - データが線に乗るまで 01.04.2026 7:45
マウスでは、デバイスからCPUへデータが届く流れを見ました。 ディスクでは、プロセスの要求がディスクに届き、データが戻る流れを見ました。 どちらもコンピュータの内部、あるいはすぐ隣の話でした。 今日は、データがコンピュータの外に出る話です。 あるコンピュータから別のコンピュータへ、データを送る。 当たり前のように使っているが、その裏で何が起きているのか。 今日は、データが自分のコンピュータから送り出される...
Rust 128 メモリ構造 - スタックとヒープの所有モデル 31.03.2026 10:10
第128章へようこそ。 第127章で、型がメモリ上でどのような姿になるかを見ました。 プリミティブ型のサイズ、アライメント、構造体のパディング、enumのタグとデータ。 これらはすべて、サイズがコンパイル時に確定する型の話でした。 第94章で学んだSized。コンパイル時にサイズが分かる型。 今日のテーマは「メモリ構造」です。スタックとヒープの所有モデルを見ます。 String、Vec、Box。 これらの型は、スタックとヒープの両方...
コンピュータ基礎 024 ディスク - 読み込み要求が届くまで 31.03.2026 10:04
前章で、マウスの動きを追いかけました。 物理的な動作がセンサーで検出され、USBバスを通り、 割り込みでCPUに届き、OSがプロセスにイベントを届ける。 外の世界から内側への流れでした。 今日は、逆方向を追いかけます。 プログラムが「ファイルを読みたい」と要求する。 この要求が、ソフトウェアの層を下り、ハードウェアに届き、 物理的な動作が起き、データが逆の道を戻ってくる。 内側から外へ、そして外から内へ。往復です...
Rust 127 メモリレイアウト - 型がバイト列になるとき 30.03.2026 10:22
第127章へようこそ。 第126章で、型はメモリのレイアウトと解釈規則であると語りました。 同じバイト列でも型が違えば値が変わる。 今日のテーマは「メモリレイアウト」です。型がメモリ上でどのような姿になるかを具体的に見ていきます。 コードの中に整数を書いたとき、メモリの中には何があるのか。 構造体を定義したとき、フィールドはどう並んでいるのか。 enumを使ったとき、バリアントはどう表現されているのか。 これらを...
コンピュータ基礎 023 マウス - 1ミリの移動で何が起きているか 30.03.2026 14:01
前章で、IOの原理を学びました。 CPUと外界の速度差。割り込み。DMA。 今日は、これらが実際にどう動いているかを見ます。 マウスを1ミリ動かす。 手の動きは一瞬。しかしその裏で、物理、画像処理、バス通信、 割り込み、OS処理が連鎖している。 1つのデバイスの動作を、物理層からソフトウェア層まで追いかけます。
Rust 126 メモリという現実 - すべての制約はここに帰る 29.03.2026 10:43
第126章へようこそ。 今日のテーマは「メモリという現実」です。 メモリは、これまでの章で何度も登場してきました。 第1章で所有権を学んだとき、「データの所有者は常に1人」と語りました。 第20章でスタックとヒープを学んだとき、二つのメモリ領域の性質の違いを語りました。 第71章でキャッシュと局所性を学んだとき、メモリの物理的な速度差を語りました。 しかし、これらは断片です。 所有権の章でメモリに触れ、スタックの...
コンピュータ基礎 022 入出力 - CPUと外界の速度差 29.03.2026 8:14
ここまで、CPUとメモリの世界を学んできました。 ソースコードが機械語になり、メモリに配置され、CPUが命令を実行する。 この流れは完結している。 しかし、これだけではコンピュータは閉じた箱のままです。 キーボードからの入力を受け取る。画面に結果を表示する。 ディスクにデータを保存する。ネットワークで通信する。 これらはすべて「入出力」、IOです。 今日は、CPUが外の世界とやり取りするとき、 何が起きていて、何が...
コンピュータ基礎 021 リンクとロード - 部品から動くプログラムへ 28.03.2026 6:41
前章で、コンパイラがソースコードを機械語に変換することを学びました。 その出力はオブジェクトファイル。 機械語が入っている。しかし、まだ実行はできない。 アドレスが埋まっていない部品の状態。 部品があるだけでは、プログラムは動きません。 部品を結合し、足りないアドレスを埋め、メモリに配置し、CPUに実行を開始させる。 今日は、オブジェクトファイルが動くプログラムになるまでの過程を見ます。
Rust 125 パニック - プログラムが自ら止まるとき 28.03.2026 10:27
第125章へようこそ。 第124章で、Rustがコンパイル時に保証できないものを実行時に検査することを語りました。 その中で、パニックを「回復すべきでないバグの検出」と位置づけました。 今日のテーマは「パニック」です。 パニックとは何か。 なぜ存在するのか。 何が起きるのか。 そしてResultとの境界はどこにあるのか。
Rust 124 実行時の検査 - コンパイラが手放したもの 27.03.2026 11:11
第124章へようこそ。 第123章で、安全の境界を語りました。 Rustはunsafeというキーワードと型システムで、安全な領域と安全でない領域を分離する。 安全な領域では、コンパイラがメモリ安全とデータ競合の不在を保証する。 今日のテーマは「実行時の検査」です。コンパイラが手放したものを見ていきます。 Rustはコンパイル時に多くのことを保証する言語です。 所有権。借用。ライフタイム。型の整合性。スレッド安全性。 しかし...
コンピュータ基礎 020 コンパイル - ソースコードから機械語へ 27.03.2026 7:26
第14章で、コンパイラが高級言語を機械語に変換することを学びました。 第19章で、プログラムがシステムコールを通じてOSに頼みごとをすることを学びました。 では、ソースコードが機械語になるまでに、何が起きているのか。 人間の言葉で書かれたプログラムを、CPUが実行できる0と1の列に変える。 この変換は、一瞬で終わるような単純なものではありません。 今日は、コンパイラの中で何が起きているのかを見ていきます。
Similar podcasts
Replaio is not a podcast publisher; show names, artwork and audio belong to their authors and are distributed through public RSS feeds.