ますたーさん

聞き流しプログラミング言語学習

生成AIが作成した汎用的なプログラミング言語の知識を、聞き流しで学習するための音声コンテンツです。個人学習用として作成しています。音声:VOICEVOX(青山龍星)

Author

ますたーさん

Category

Technology

Podcast website

podcasters.spotify.com

Latest episode

Jul 8, 2026

Where to listen?

Podcasts in the app Replaio Radio Coming soon

Podcasts are coming to the app soon. Install now and be the first to see a whole new take on podcasts

Get it on Google Play Install for free Android 5M+ downloads · 4.8 rating iOS soon

Episodes

Rust 123 安全の境界 - 型とキーワードで引かれた線 26.03.2026

第123章へようこそ。 第122章で、式指向を語りました。 すべてがを返し、データの流れがコードの表面に見える。 今日のテーマは「安全の境界」です。 Rustは安全な言語だと言われます。 メモリ安全を保証し、データ競合を防ぐ。 しかし、Rustのすべてのコードが安全なわけではありません。 ハードウェアを直接操作する場面がある。 他の言語で書かれたコードを呼び出す場面がある。 コンパイラが検証できない不変条件を、人間が保...

コンピュータ基礎 019 システムコール - プログラムとOSの境界 26.03.2026

前章で、OSがプロセスを管理していることを学びました。 メモリ空間の用意、CPUの割り当て、プロセス間の隔離。 OSは多くのことをやっています。 では、プログラムはOSにどうやって頼みごとをするのか。 「ファイルを開きたい」 「メモリをもっと欲しい」 「データをネットワークに送りたい」 これらの要求を伝える仕組みが「システムコール」です。

Rust 122 式指向 - すべてが値を返す 25.03.2026

第122章へようこそ。 第121章で、明示性を語りました。 Rustは暗黙の動作を排除し、何が起きているかをコードに書かせる。 今日のテーマは「式指向」です。 多くの言語には「文」と「式」の区別があります。 文は、何かを実行する命令。値を持たない。 式は、何かを計算して、値を返す。 条件分岐を書くとき。 多くの言語では、if文は「文」です。 分岐の中で変数に代入するという命令を実行する。if文そのものは値を返さない。 Ru...

コンピュータ基礎 018 プロセス - 「動いているプログラム」の正体 25.03.2026

前章で、プログラムのメモリ空間がテキスト、データ、スタック、ヒープに 分かれていることを学びました。 でも、この「メモリ空間」は、誰が用意しているのでしょうか。 プログラムが起動してから終了するまで、誰が面倒を見ているのか。 答えは「OS」です。 オペレーティングシステム。 そしてOSがプログラムを管理する単位が「プロセス」です。 プロセスとは何か。 なぜこの仕組みが必要なのか。 今日はこれを掘り下げます。

コンピュータ基礎 017 スタックとヒープ - プログラムのメモリの使い分け 24.03.2026

第15章で、関数呼び出しのたびにスタックフレームが積まれることを学びました。 第16章で、キャッシュがCPUとメインメモリの速度差を埋めることを学びました。 今日は、もう少し視野を広げます。 プログラムが動いているとき、メモリはどのように区画されているのか。 どの領域に何が置かれ、誰がそれを管理しているのか。 プログラムが使うメモリには、性質の異なる領域があります。 その中でも特に重要な2つが「スタック」と「ヒ...

Rust 121 明示性 - 暗黙を拒否する言語 24.03.2026

第121章へようこそ。 第120章で、ゼロコスト抽象を語りました。 抽象化のコストがコンパイル時に消え、実行時に残らない。 そして、コストが発生する場面ではそれがコードに明示される。 今日のテーマは「明示性」です。 Rustを書いていると、他の言語では自動的に行われることを、自分の手で書かなければならない場面に出会います。 コピーが自動で起きない。cloneと書かなければならない。 型の変換が暗黙に起きない。変換関数を...

コンピュータ基礎 016 キャッシュ - なぜメモリは遅いのか 23.03.2026

第10章でメモリ階層について触れました。 レジスタは最速だが容量が小さい。メインメモリは大容量だが遅い。 今日はその間に入る存在、「キャッシュ」を掘り下げます。 CPUが命令を実行する速度と、メインメモリからデータを取得する速度。 この2つには、巨大な差があります。 CPUは1クロックで演算を終えることができる。 メインメモリからデータを取得するには、数十クロックから百クロック以上かかる。 この差を放置すると、CPU...

Rust 120 ゼロコスト抽象 - 抽象化しても遅くならないという約束 23.03.2026

第120章へようこそ。 第119章で、コンパイラとの協働を語りました。 コンパイラのエラーは設計へのフィードバックであり、エラーに従って設計を見直すと、コードは単純になる。 今日のテーマは「ゼロコスト抽象」です。 プログラミングにおいて、抽象化は強力な道具です。 共通の処理をまとめる。詳細を隠す。汎用的な部品を作る。 しかし、多くの言語では抽象化にはコストが伴います。 関数の呼び出しを抽象化すると、間接呼び出...

【Rust音声学習 第119章】コンパイラとの協働 ― 敵ではなく設計相手 22.03.2026

第119章へようこそ。 今日のテーマは「コンパイラとの協働」です。 Rustのコンパイラはよくエラーを出します。 借用チェッカーに弾かれる。ライフタイムが合わない。型が一致しない。 このエラーに対して、「コンパイラが邪魔をしている」と感じることがある。 書きたいコードが書けない。通したいコードが通らない。 しかし、Rustのコンパイラは検査官ではない。 設計の共同作業者です。 コンパイラのエラーは、コードの問題を指...

コンピュータ基礎 015 アセンブリ - 機械語を人間が読める形に 22.03.2026

前章で、機械語が0と1の列であることを学びました。 16進数で3バイトの並びが「2つのレジスタを足せ」という意味だと言われても、 すぐには理解できません。 人間が読みやすい形式が欲しい。 それが「アセンブリ言語」です。

【Rust音声学習 第118章】終焉の確定性 ― 破棄は構造に埋め込まれている 21.03.2026

第118章へようこそ。 今日のテーマは「終焉の確定性」です。 英語ではdeterministic destruction、デターミニスティックデストラクションと呼びます。 値はいつ消えるのか。 多くの言語では、この問いに対する答えは「わからない」です。 ガベージコレクタがいつか回収する。いつかはランタイムが決める。 Rustでは、答えは明確です。 所有者がスコープを出たとき、値は消える。 いつ消えるかが、コードの構造から確定している。...

コンピュータ基礎 014 機械語 - CPUが理解する唯一の言葉 21.03.2026

前章で、CPUが命令をフェッチ・デコード・実行することを学びました。 その「命令」は、0と1の並びです。 これが「機械語」。 CPUが直接理解できる唯一の言語。 今日は、機械語がどのように構成されているかを見ていきます。

【Rust音声学習 第117章】網羅性の強制 ― 考え漏らしを許さない 20.03.2026

第117章へようこそ。 今日のテーマは「網羅性の強制」です。 英語ではexhaustiveness、イグゾースティブネスと呼びます。 match式で全パターンを書かないと、コンパイルが通らない。 この仕組みは、分岐の書き方として学びました。 今日はその仕組みが持つ、もっと根本的な意味を考えます。 網羅性の強制とは、「考えられるすべての状態を列挙しろ」というコンパイラからの要求です。 これは分岐構文の話ではない。 思考の抜けをコ...

コンピュータ基礎 013 命令サイクル - フェッチ、デコード、実行 20.03.2026

CPUは命令を実行します。 1つずつ、延々と。 でも、「命令を実行する」とは具体的に何をしているのでしょうか。 今日は、CPUが1つの命令を処理する過程を追います。 フェッチ、デコード、実行。 この3つのステップを理解しましょう。

【Rust音声学習 第116章】合成可能性 ― 小さな部品を組み合わせる 19.03.2026

第116章へようこそ。 今日のテーマは「合成可能性」です。 英語ではcomposability、コンポーザビリティと呼びます。 小さな部品を組み合わせて、大きな振る舞いを作る。 これが合成可能性です。 Rustの標準ライブラリやエコシステムを見ると、この原則が繰り返し現れます。 イテレータのチェーン。トレイトの組み合わせ。Result/Optionの連鎖。型の組み合わせ。 大きな機能を一つの塊として作るのではなく、小さな部品を繋げて構築...

コンピュータ基礎 012 クロック - 心臓の鼓動、同期の仕組み 19.03.2026

ここまで、計算する回路と記憶する回路を見てきました。 でも、これらを「いつ」動かすのか。 どうやって全体を協調させるのか。 今日の主役は「クロック」です。 コンピュータの心臓の鼓動。 すべてを同期させる信号。

【Rust音声学習 第115章】コストの可視性 ― 暗黙の代償を排除する 18.03.2026

第115章へようこそ。 今日のテーマは「コストの可視性」です。 プログラムには、あらゆる操作にコストがあります。 メモリの確保、データのコピー、関数の呼び出し。 これらは時間とメモリを消費する。 Rustの設計原則の一つは、このコストをコード上で見えるようにすることです。 暗黙のコピーがない。暗黙のヒープ確保がない。暗黙の動的ディスパッチがない。 コストが発生する場所は、コードを読めばわかる。

コンピュータ基礎 011 アドレス - どうやって「場所」を指定するか 18.03.2026

前章で、メモリが行と列の格子状に配置されていることを学びました。 数十億個のセルがある中から、1つを選ぶ必要があります。 どうやって? 答えは「アドレス」です。 メモリの住所。 今日は、このアドレスの仕組みを深掘りします。 そして、現代のコンピュータに欠かせない「仮想メモリ」についても触れます。

【Rust音声学習 第114章】表現可能性の制限 ― 書けないことが設計を導く 17.03.2026

第114章へようこそ。 今日のテーマは「表現可能性の制限」です。 言語の特徴は、何が書けるかで語られることが多い。 しかしRustの特徴は、何が書けないかに色濃く現れます。 nullが書けない。継承が書けない。共有可変状態が書けない。自己参照が書けない。 これらは制限です。しかし、ただの制限ではない。 書けないことが、別の設計を強制する。 その強制された設計が、元の設計より明確になることがある。 今日は、Rustが禁じ...

コンピュータ基礎 010 メモリセル - 大量のビットをどう保持するか 17.03.2026

レジスタはフリップフロップで作られます。 でも、フリップフロップは部品数が多い。 1ビットあたり6個程度のトランジスタが必要です。 8ギガバイトのメモリを作るとなると、640億ビット。 6倍で3840億個のトランジスタ。 これでは大きすぎて、コストも高すぎます。 今日は、大容量メモリを実現する「メモリセル」の話です。

【Rust音声学習 第113章】効果の追跡 ― 何が起きるかを型に刻む 16.03.2026

第113章へようこそ。 今日のテーマは「効果の追跡」です。 英語ではeffect tracking、エフェクトトラッキングと呼びます。 「この関数は何を引き起こすか」。 Rustはこの問いに対して、型で答えます。 変更するかもしれない。失敗するかもしれない。値がないかもしれない。非同期かもしれない。 これらの「かもしれない」を、Rustは型のレベルで宣言させます。 隠れた副作用はない。何が起きうるかは、型を見ればわかる。 この設計...

コンピュータ基礎 009 レジスタ - CPUの中の小さな記憶 16.03.2026

前章では、1ビットを記憶するフリップフロップを学びました。 今日は、フリップフロップを並べて作る「レジスタ」の話です。 レジスタはCPUの内部にある、最も高速な記憶装置。 数も少なく、容量も小さい。 でも、計算の要となる存在です。

【Rust音声学習 第112章】線形性 ― あたいは一度だけ使われる資源である 15.03.2026

第112章へようこそ。 今日のテーマは「線形性」です。 英語ではlinearity、リニアリティと呼びます。 Rustでは、値を別の変数に代入すると、元の変数は使えなくなります。 これをムーブと呼ぶことは、すでに学んでいます。 今日はこのムーブの背後にある思想を掘ります。 ムーブは「効率のためにコピーを避ける」という話ではない。 「値は一度だけ使われる資源である」という世界観の表れです。 この世界観を、線形性と呼びます。

コンピュータ基礎 008 フリップフロップ - 1ビットを「覚えておく」とは 15.03.2026

ここまで「計算」を見てきました。 今日から「記憶」に入ります。 コンピュータは計算するだけでなく、結果を覚えておく必要があります。 計算したあたいを保存して、後で使う。 これがなければ、プログラムは動きません。 今日の主役は「フリップフロップ」。 1ビットを記憶する、最も基本的な回路です。

コンピュータ基礎 007 ALU - 足し算以外の演算はどうするか 14.03.2026

ここまでで、論理ゲートから加算器までを見てきました。 足し算はできるようになった。 引き算も、2の補数を使えばできる。 でも、コンピュータは足し算と引き算だけではありません。 AND、OR、XORといった論理演算もある。 比較もある。シフトもある。 これらをすべて別々の回路で作るのでしょうか。 今日の主役は「ALU」、Arithmetic Logic Unit。 算術論理演算装置です。

Listen to the 聞き流しプログラミング言語学習 podcast in Replaio

Radio and podcasts in one app - free, with no sign-up. Install today and do not miss the launch

Get it on Google Play

Replaio is not a podcast publisher; show names, artwork and audio belong to their authors and are distributed through public RSS feeds.