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

All Episodes

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

#
Title
1

Rust 061 Cow - 必要になるまで複製しない

2

Rust 060 rayon - データ並列を当たり前にする

3

Rust 059 キャッシュと局所性 - メモリの速度は均一でない

4

Rust 058 FFIと所有権 - 境界を越える解放とパニック

5

Rust 057 repr(C) - メモリレイアウトを契約にする

6

Rust 056 FFI境界 - Rustでない世界と地続きになる

7

Rust 055 transmuteと未定義動作 - 越えてはいけない線

8

Rust 054 UnsafeCell - 内部可変性の底

9

Rust 053 生ポインタ - メモリの直接操作

10

Rust 052 unsafe入門 - 安全性の境界

11

Rust 051 Pin - 動かないことの保証

12

Rust 050 ブロッキングと協調スケジューリングの衝突 - awaitで譲らない時の帰結

13

Rust 049 Stream - 時間をかけて届く複数のあたい

14

Rust 048 待ち合わせ - 複数のFutureを1つにまとめて待つ

15

Rust 047 タスクのライフサイクル - パニックとキャンセル

16

Rust 046 実行器 - Futureを動かすもの

17

Rust 045 Future - まだ無い結果を表す型

18

Rust 044 非同期入門 - 待ちを手放す実行の流れ

19

Rust 043 デッドロック - 停止を生む取得順序

20

Rust 042 アトミック - ロックを使わない原子的操作

21

Rust 041 RwLock - 読みと書きを区別する排他

22

Rust 040 Mutex - 排他アクセスで共有を守る

23

Rust 039 Arc - スレッドをまたぐ共有所有権

24

Rust 038 チャネル - 所有権を移して通信する

25

Rust 037 SendとSync - 型がスレッド境界を越える条件

26

Rust 036 スレッド - 独立した実行の流れ

27

Rust 035 手続き的マクロ - トークンを書くRust

28

Rust 034 繰り返しと衛生性 - 構造的に組み立てる

29

Rust 033 マクロのパターン - フラグメント指定子と分岐

30

Rust 032 宣言的マクロ入門 - 関数では届かない領域

31

Rust 031 Cargo - 言語設計を支えるもの

32

Rust 030 モジュールシステム - 構造・境界・名前

33

Rust 029 BTreeMap と BTreeSet - 順序を保つ対応表

34

Rust 028 HashSet と VecDeque - 派生コレクション

35

Rust 027 Entry API - 効率的な更新

36

Rust 026 HashMap - キーと値の対応表

37

Rust 025 Vec詳細 - 容量と成長

38

Rust 024 Weak - 弱い参照

39

Rust 023 RefCell - 内部可変性

40

Rust 022 Rc - 共有所有権

41

Rust 021 Box - ヒープに置く箱

42

Rust 020 スタックとヒープ - 2つのメモリ領域

43

Rust 019 UTF-8の世界 - 文字とバイト

44

Rust 018 文字列の変換 - 所有と借用を行き来する

45

Rust 017 &str入門 - 借りる文字列

46

Rust 016 String入門 - 所有する文字列

47

Rust 015 ライフタイム省略と’static - 書かなくてよい場合

48

Rust 014 関数と構造体のライフタイム - 注釈を書く

49

Rust 013 ライフタイム - 参照の有効期間

50

Rust 012 関連型 - トレイトが型を持つとき

51

Rust 011 トレイト境界 - ジェネリクスに条件を付ける

52

Rust 010 ジェネリクス - 型を引数にする

53

Rust 009 エラー処理 - エラー型を設計する

54

Rust 008 トレイト - 型と振る舞いを分離する

55

Rust 007 パターンマッチ - 値の構造で分岐する

56

Rust 006 StructとEnum - データに形を与える

57

Rust 005 クロージャ - 環境を捕獲する関数

58

Rust 004 イテレータ - 流れとして処理する

59

Rust 003 Result - 失敗を型で表現する

60

Rust 002 Option - 値の不在を型で表現する

61

Rust 001 所有権 - Rustの心臓部

62

Rust 140 メモリの統合 - すべてはメモリに帰る

63

Rust 139 メモリ境界 - asyncと所有権が交差するとき

64

Rust 138 asyncの内部構造 - ステートマシンがメモリに刻まれるとき

65

Rust 137 メモリ上の仮想表 - ブイテーブルの構造

66

Rust 136 メモリと判別子 - enumの内部表現

67

コンピュータ基礎 031 メモリオーダリング - 書いた順に実行されるとは限らない

68

Rust 135 メモリ具体化 - ジェネリクスが形を持つ瞬間

69

コンピュータ基礎 030 同期 - データを守る仕組みとその代償

70

Rust 134 メモリと並行性 - 複数のスレッドが同じバイト列に触れるとき

71

コンピュータ基礎 029 データ競合 - なぜデータが壊れるのか

72

Rust 133 メモリアクセス規則 - 借用チェッカーの本質

73

コンピュータ基礎 028 スレッド - 1つのプロセスの中の複数の実行の流れ

74

Rust 132 メモリ配分 - アロケータの仕組み

75

コンピュータ基礎 027 並行と並列 - 複数の処理が動くとは何か

76

Rust 131 メモリの一生 - 確保、使用、解放

77

コンピュータ基礎 026 ルーティング - データが宛先に届くまで

78

Rust 130 メモリの移動 - ムーブとコピーの正体

79

コンピュータ基礎 025 ネットワーク - データが線に乗るまで

80

Rust 129 メモリ上の参照 - 借りるとはポインタを持つこと

81

コンピュータ基礎 024 ディスク - 読み込み要求が届くまで

82

Rust 128 メモリ構造 - スタックとヒープの所有モデル

83

コンピュータ基礎 023 マウス - 1ミリの移動で何が起きているか

84

Rust 127 メモリレイアウト - 型がバイト列になるとき

85

コンピュータ基礎 022 入出力 - CPUと外界の速度差

86

Rust 126 メモリという現実 - すべての制約はここに帰る

87

コンピュータ基礎 021 リンクとロード - 部品から動くプログラムへ

88

Rust 125 パニック - プログラムが自ら止まるとき

89

コンピュータ基礎 020 コンパイル - ソースコードから機械語へ

90

Rust 124 実行時の検査 - コンパイラが手放したもの

91

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

92

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

93

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

94

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

95

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

96

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

97

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

98

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

99

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

100

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

101

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

102

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

103

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

104

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

105

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

106

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

107

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

108

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

109

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

110

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

111

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

112

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

113

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

114

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

115

【Rust音声学習 第111章】局所推論 ― その場だけで正しさがわかる

116

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

117

【Rust音声学習 第110章】自己参照の壁 ― なぜRustはこれを嫌うか

118

コンピュータ基礎 006 加算器 - 0と1の足し算はどう実現するか

119

【Rust音声学習 第109章】変性 ― 長い寿命を短い寿命の代わりに使えるか

120

コンピュータ基礎 005 2進数 - なぜ10進数ではないのか

121

【Rust音声学習 第108章】ライフタイムとトレイト ― dyn Trait + 'aの意味

122

コンピュータ基礎 004 組み合わせる - ゲートを繋ぐと何ができるか

123

【Rust音声学習 第107章】借用チェッカーの目 ― コンパイラは何を見ているか

124

コンピュータ基礎 003 論理ゲート - NOT、AND、OR、XOR

125

【Rust音声学習 第106章】エラー型の設計 ― 呼び出し側の視点で選ぶ

126

コンピュータ基礎 002 トランジスタ - スイッチとして動く小さな素子

127

【Rust音声学習 第105章】型で状態を表現する ― 実行時チェックからコンパイル時保証へ

128

コンピュータ基礎 001 0と1は何か - 電圧の高低、それだけ

129

【Rust音声学習 第104章】ジェネリクスの境界 ― 抽象をどこまで広げるか

130

【Rust音声学習 第103章】enumとトレイトオブジェクト ― 閉じた世界と開いた世界

131

【Rust音声学習 第102章】拡張トレイトとシールドトレイト ― トレイトの応用設計

132

【Rust音声学習 第101章】関連型と型パラメータ ― 「一つだけ」か「複数」か

133

【Rust音声学習 第100章】スーパートレイト ― トレイトの階層

134

【Rust音声学習 第99章】オーファンルール ― トレイトの一貫性を守る壁

135

【Rust音声学習 第98章】マーカートレイト ― メソッドのない約束

136

【Rust音声学習 第97章】SendとSync ― 所有権がスレッド安全を生む

137

【Rust音声学習 第96章】ブランケット実装 ― 条件が満たされたら、能力が生まれる

138

【Rust音声学習 第95章】トレイトオブジェクト ― 型を消す抽象

139

【Rust音声学習 第94章】Sized ― コンパイラが最初に確認すること

140

【Rust音声学習 第93章】Default ― 型の始まりの姿

141

【Rust音声学習 第92章】Drop ― 所有権の最後の仕事

142

【Rust音声学習 第91章】Fn、FnMut、FnOnce ― クロージャは三つのトレイトである

143

【Rust音声学習 第90章】Iterator ― nextから生まれる世界

144

【Rust音声学習 第89章】Deref ― 透明になる型の境界

145

【Rust音声学習 第88章】std::convert ― 型と型の橋を架ける

146

【Rust音声学習 第87章】std::fmt ― 型が自分の見せ方を決める

147

【Rust音声学習 第86章】標準ライブラリ:外界 ― 環境、パス、時間

148

【Rust音声学習 第85章】標準ライブラリ:入出力 ― ReadとWriteがすべてを繋ぐ

149

【Rust音声学習 第84章】言語構文、プレリュード、組み込みマクロ ― useを書かない世界

150

【Rust音声学習 第83章】Tauriのビルドと配布 ― デスクトップアプリを届ける

151

【Rust音声学習 第82章】Tauriの状態管理 ― コマンドをまたぐデータの共有

152

【Rust音声学習 第81章】Tauri - Capabilities フロントエンドに何を許すか

153

【Rust音声学習 第80章】Tauri - コマンドとIPC RustとJavaScriptの境界

154

【Rust音声学習 第79章】Tauri入門 ― なぜブラウザを同梱しないのか

155

【Rust音声学習 第76章】関数の設計 ― 呼び出し側の視点で考える

156

【Rust音声学習 第75章】API設計 ― 使う人を守るインターフェース

157

【Rust音声学習 第74章】メモリ確保戦略 ― アロケータの正体と付き合い方

158

【Rust音声学習 第73章】clap ― コマンドラインインターフェースを型で設計する

159

【Rust音声学習 第72章】Tokio深掘り ― ランタイムの中で何が起きているか

160

【Rust音声学習 第71章】キャッシュと局所性 ― メモリの速度は均一ではない

161

【Rust音声学習 第69章】anyhowとthiserror ― エラー処理の二刀流

162

【Rust音声学習 第68章】名前が約束する「振る舞い」

163

【Rust音声学習 第67章】名前が教える「コストと所有権」

164

【Rust音声学習 第66章】serde ― すべてのデータが通る門

165

【Rust音声学習 第65章】イテレータパターン ― カスタム実装

166

【Rust音声学習 第64章】エラーハンドリングパターン ― 実践的な設計

167

【Rust音声学習 第63章】RAIIパターン ― リソース管理の定石

168

【Rust音声学習 第62章】ビルダーパターン ― 柔軟なオブジェクト構築

169

【Rust音声学習 第61章】属性とコンパイラ ― メタデータの活用

170

【Rust音声学習 第60章】型レベルプログラミング ― コンパイル時の計算

171

【Rust音声学習 第59章】型状態パターン ― 状態遷移を型で表現

172

【Rust音声学習 第58章】Newtypeパターン ― 型で意味を表現

173

【Rust音声学習 第57章】バインディング生成 ― 自動化ツール

174

【Rust音声学習 第56章】FFI基礎 ― Cとの連携

175

【Rust音声学習 第52章】非同期のエラーハンドリング ― ?演算子とasync

176

【Rust音声学習 第40章】手続き的マクロ概要 ― ディライブの裏側を知る

177

【Rust音声学習 第37章】テストの制御 ― 実行を操る

178

【Rust音声学習 第36章】結合テストとdocテスト ― 外から検証する

179

【Rust音声学習 第35章】ユニットテスト ― 部品を検査する

180

【Rust音声学習 第34章】crates.io ― ライブラリの宝庫

181

【Rust音声学習 第33章】Cargo.toml ― プロジェクトの設計図

182

【Rust音声学習 第31章】use ― 名前を整理する

183

【Rust音声学習 第29章】mod ― コードを分割する