ますたーさん
聞き流しプログラミング言語学習
生成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 123 安全の境界 - 型とキーワードで引かれた線 26.03.2026 9:59
第123章へようこそ。 第122章で、式指向を語りました。 すべてがを返し、データの流れがコードの表面に見える。 今日のテーマは「安全の境界」です。 Rustは安全な言語だと言われます。 メモリ安全を保証し、データ競合を防ぐ。 しかし、Rustのすべてのコードが安全なわけではありません。 ハードウェアを直接操作する場面がある。 他の言語で書かれたコードを呼び出す場面がある。 コンパイラが検証できない不変条件を、人間が保...
コンピュータ基礎 019 システムコール - プログラムとOSの境界 26.03.2026 8:22
前章で、OSがプロセスを管理していることを学びました。 メモリ空間の用意、CPUの割り当て、プロセス間の隔離。 OSは多くのことをやっています。 では、プログラムはOSにどうやって頼みごとをするのか。 「ファイルを開きたい」 「メモリをもっと欲しい」 「データをネットワークに送りたい」 これらの要求を伝える仕組みが「システムコール」です。
Rust 122 式指向 - すべてが値を返す 25.03.2026 8:59
第122章へようこそ。 第121章で、明示性を語りました。 Rustは暗黙の動作を排除し、何が起きているかをコードに書かせる。 今日のテーマは「式指向」です。 多くの言語には「文」と「式」の区別があります。 文は、何かを実行する命令。値を持たない。 式は、何かを計算して、値を返す。 条件分岐を書くとき。 多くの言語では、if文は「文」です。 分岐の中で変数に代入するという命令を実行する。if文そのものは値を返さない。 Ru...
コンピュータ基礎 018 プロセス - 「動いているプログラム」の正体 25.03.2026 9:11
前章で、プログラムのメモリ空間がテキスト、データ、スタック、ヒープに 分かれていることを学びました。 でも、この「メモリ空間」は、誰が用意しているのでしょうか。 プログラムが起動してから終了するまで、誰が面倒を見ているのか。 答えは「OS」です。 オペレーティングシステム。 そしてOSがプログラムを管理する単位が「プロセス」です。 プロセスとは何か。 なぜこの仕組みが必要なのか。 今日はこれを掘り下げます。
コンピュータ基礎 017 スタックとヒープ - プログラムのメモリの使い分け 24.03.2026 10:14
第15章で、関数呼び出しのたびにスタックフレームが積まれることを学びました。 第16章で、キャッシュがCPUとメインメモリの速度差を埋めることを学びました。 今日は、もう少し視野を広げます。 プログラムが動いているとき、メモリはどのように区画されているのか。 どの領域に何が置かれ、誰がそれを管理しているのか。 プログラムが使うメモリには、性質の異なる領域があります。 その中でも特に重要な2つが「スタック」と「ヒ...
Rust 121 明示性 - 暗黙を拒否する言語 24.03.2026 10:36
第121章へようこそ。 第120章で、ゼロコスト抽象を語りました。 抽象化のコストがコンパイル時に消え、実行時に残らない。 そして、コストが発生する場面ではそれがコードに明示される。 今日のテーマは「明示性」です。 Rustを書いていると、他の言語では自動的に行われることを、自分の手で書かなければならない場面に出会います。 コピーが自動で起きない。cloneと書かなければならない。 型の変換が暗黙に起きない。変換関数を...
コンピュータ基礎 016 キャッシュ - なぜメモリは遅いのか 23.03.2026 9:01
第10章でメモリ階層について触れました。 レジスタは最速だが容量が小さい。メインメモリは大容量だが遅い。 今日はその間に入る存在、「キャッシュ」を掘り下げます。 CPUが命令を実行する速度と、メインメモリからデータを取得する速度。 この2つには、巨大な差があります。 CPUは1クロックで演算を終えることができる。 メインメモリからデータを取得するには、数十クロックから百クロック以上かかる。 この差を放置すると、CPU...
Rust 120 ゼロコスト抽象 - 抽象化しても遅くならないという約束 23.03.2026 12:58
第120章へようこそ。 第119章で、コンパイラとの協働を語りました。 コンパイラのエラーは設計へのフィードバックであり、エラーに従って設計を見直すと、コードは単純になる。 今日のテーマは「ゼロコスト抽象」です。 プログラミングにおいて、抽象化は強力な道具です。 共通の処理をまとめる。詳細を隠す。汎用的な部品を作る。 しかし、多くの言語では抽象化にはコストが伴います。 関数の呼び出しを抽象化すると、間接呼び出...
【Rust音声学習 第119章】コンパイラとの協働 ― 敵ではなく設計相手 22.03.2026 9:44
第119章へようこそ。 今日のテーマは「コンパイラとの協働」です。 Rustのコンパイラはよくエラーを出します。 借用チェッカーに弾かれる。ライフタイムが合わない。型が一致しない。 このエラーに対して、「コンパイラが邪魔をしている」と感じることがある。 書きたいコードが書けない。通したいコードが通らない。 しかし、Rustのコンパイラは検査官ではない。 設計の共同作業者です。 コンパイラのエラーは、コードの問題を指...
コンピュータ基礎 015 アセンブリ - 機械語を人間が読める形に 22.03.2026 6:14
前章で、機械語が0と1の列であることを学びました。 16進数で3バイトの並びが「2つのレジスタを足せ」という意味だと言われても、 すぐには理解できません。 人間が読みやすい形式が欲しい。 それが「アセンブリ言語」です。
【Rust音声学習 第118章】終焉の確定性 ― 破棄は構造に埋め込まれている 21.03.2026 8:20
第118章へようこそ。 今日のテーマは「終焉の確定性」です。 英語ではdeterministic destruction、デターミニスティックデストラクションと呼びます。 値はいつ消えるのか。 多くの言語では、この問いに対する答えは「わからない」です。 ガベージコレクタがいつか回収する。いつかはランタイムが決める。 Rustでは、答えは明確です。 所有者がスコープを出たとき、値は消える。 いつ消えるかが、コードの構造から確定している。...
コンピュータ基礎 014 機械語 - CPUが理解する唯一の言葉 21.03.2026 7:14
前章で、CPUが命令をフェッチ・デコード・実行することを学びました。 その「命令」は、0と1の並びです。 これが「機械語」。 CPUが直接理解できる唯一の言語。 今日は、機械語がどのように構成されているかを見ていきます。
【Rust音声学習 第117章】網羅性の強制 ― 考え漏らしを許さない 20.03.2026 8:37
第117章へようこそ。 今日のテーマは「網羅性の強制」です。 英語ではexhaustiveness、イグゾースティブネスと呼びます。 match式で全パターンを書かないと、コンパイルが通らない。 この仕組みは、分岐の書き方として学びました。 今日はその仕組みが持つ、もっと根本的な意味を考えます。 網羅性の強制とは、「考えられるすべての状態を列挙しろ」というコンパイラからの要求です。 これは分岐構文の話ではない。 思考の抜けをコ...
コンピュータ基礎 013 命令サイクル - フェッチ、デコード、実行 20.03.2026 6:43
CPUは命令を実行します。 1つずつ、延々と。 でも、「命令を実行する」とは具体的に何をしているのでしょうか。 今日は、CPUが1つの命令を処理する過程を追います。 フェッチ、デコード、実行。 この3つのステップを理解しましょう。
【Rust音声学習 第116章】合成可能性 ― 小さな部品を組み合わせる 19.03.2026 8:42
第116章へようこそ。 今日のテーマは「合成可能性」です。 英語ではcomposability、コンポーザビリティと呼びます。 小さな部品を組み合わせて、大きな振る舞いを作る。 これが合成可能性です。 Rustの標準ライブラリやエコシステムを見ると、この原則が繰り返し現れます。 イテレータのチェーン。トレイトの組み合わせ。Result/Optionの連鎖。型の組み合わせ。 大きな機能を一つの塊として作るのではなく、小さな部品を繋げて構築...
コンピュータ基礎 012 クロック - 心臓の鼓動、同期の仕組み 19.03.2026 6:41
ここまで、計算する回路と記憶する回路を見てきました。 でも、これらを「いつ」動かすのか。 どうやって全体を協調させるのか。 今日の主役は「クロック」です。 コンピュータの心臓の鼓動。 すべてを同期させる信号。
【Rust音声学習 第115章】コストの可視性 ― 暗黙の代償を排除する 18.03.2026 8:18
第115章へようこそ。 今日のテーマは「コストの可視性」です。 プログラムには、あらゆる操作にコストがあります。 メモリの確保、データのコピー、関数の呼び出し。 これらは時間とメモリを消費する。 Rustの設計原則の一つは、このコストをコード上で見えるようにすることです。 暗黙のコピーがない。暗黙のヒープ確保がない。暗黙の動的ディスパッチがない。 コストが発生する場所は、コードを読めばわかる。
コンピュータ基礎 011 アドレス - どうやって「場所」を指定するか 18.03.2026 7:04
前章で、メモリが行と列の格子状に配置されていることを学びました。 数十億個のセルがある中から、1つを選ぶ必要があります。 どうやって? 答えは「アドレス」です。 メモリの住所。 今日は、このアドレスの仕組みを深掘りします。 そして、現代のコンピュータに欠かせない「仮想メモリ」についても触れます。
【Rust音声学習 第114章】表現可能性の制限 ― 書けないことが設計を導く 17.03.2026 12:17
第114章へようこそ。 今日のテーマは「表現可能性の制限」です。 言語の特徴は、何が書けるかで語られることが多い。 しかしRustの特徴は、何が書けないかに色濃く現れます。 nullが書けない。継承が書けない。共有可変状態が書けない。自己参照が書けない。 これらは制限です。しかし、ただの制限ではない。 書けないことが、別の設計を強制する。 その強制された設計が、元の設計より明確になることがある。 今日は、Rustが禁じ...
コンピュータ基礎 010 メモリセル - 大量のビットをどう保持するか 17.03.2026 7:02
レジスタはフリップフロップで作られます。 でも、フリップフロップは部品数が多い。 1ビットあたり6個程度のトランジスタが必要です。 8ギガバイトのメモリを作るとなると、640億ビット。 6倍で3840億個のトランジスタ。 これでは大きすぎて、コストも高すぎます。 今日は、大容量メモリを実現する「メモリセル」の話です。
【Rust音声学習 第113章】効果の追跡 ― 何が起きるかを型に刻む 16.03.2026 9:24
第113章へようこそ。 今日のテーマは「効果の追跡」です。 英語ではeffect tracking、エフェクトトラッキングと呼びます。 「この関数は何を引き起こすか」。 Rustはこの問いに対して、型で答えます。 変更するかもしれない。失敗するかもしれない。値がないかもしれない。非同期かもしれない。 これらの「かもしれない」を、Rustは型のレベルで宣言させます。 隠れた副作用はない。何が起きうるかは、型を見ればわかる。 この設計...
コンピュータ基礎 009 レジスタ - CPUの中の小さな記憶 16.03.2026 6:46
前章では、1ビットを記憶するフリップフロップを学びました。 今日は、フリップフロップを並べて作る「レジスタ」の話です。 レジスタはCPUの内部にある、最も高速な記憶装置。 数も少なく、容量も小さい。 でも、計算の要となる存在です。
【Rust音声学習 第112章】線形性 ― あたいは一度だけ使われる資源である 15.03.2026 7:53
第112章へようこそ。 今日のテーマは「線形性」です。 英語ではlinearity、リニアリティと呼びます。 Rustでは、値を別の変数に代入すると、元の変数は使えなくなります。 これをムーブと呼ぶことは、すでに学んでいます。 今日はこのムーブの背後にある思想を掘ります。 ムーブは「効率のためにコピーを避ける」という話ではない。 「値は一度だけ使われる資源である」という世界観の表れです。 この世界観を、線形性と呼びます。
コンピュータ基礎 008 フリップフロップ - 1ビットを「覚えておく」とは 15.03.2026 7:10
ここまで「計算」を見てきました。 今日から「記憶」に入ります。 コンピュータは計算するだけでなく、結果を覚えておく必要があります。 計算したあたいを保存して、後で使う。 これがなければ、プログラムは動きません。 今日の主役は「フリップフロップ」。 1ビットを記憶する、最も基本的な回路です。
コンピュータ基礎 007 ALU - 足し算以外の演算はどうするか 14.03.2026 6:51
ここまでで、論理ゲートから加算器までを見てきました。 足し算はできるようになった。 引き算も、2の補数を使えばできる。 でも、コンピュータは足し算と引き算だけではありません。 AND、OR、XORといった論理演算もある。 比較もある。シフトもある。 これらをすべて別々の回路で作るのでしょうか。 今日の主役は「ALU」、Arithmetic Logic Unit。 算術論理演算装置です。
Similar podcasts
Replaio is not a podcast publisher; show names, artwork and audio belong to their authors and are distributed through public RSS feeds.