← チャプター一覧
第1章 · プログラムの旅
✍️ コードはどうやって動くの?
人間が書く「プログラム」はただのテキスト。でもコンピュータは0と1しか理解できない。このギャップはどうやって埋まるのだろう?今から旅に出よう 🚀
1def add(a, b):
2 return a + b
3
4result = add(3, 5)
5print("答え:", result)
⬇️
01001000 01100101 01101100 01101100 01101111...
🤔 どうやって変換するの?
第1章 · Step 1/5
📄 Step 1:ソースコード
プログラムはまず「ソースコード」として書かれる。人間が読めるテキストファイル。コンピュータにはまだ意味がない。
📝add.py
1# 2つの数を足す関数
2def add(a, b):
3 return a + b
4
5result = add(3, 5)
6print("答え:", result)
💡 ソースコードは人間のための言語で書かれている。英語・数字・記号の組み合わせ。コンピュータにはまだ理解できない!
第1章 · Step 2/5
⚡ Step 2:コンパイル — 翻訳の魔法
ソースコードはコンパイラという翻訳プログラムに渡される。3段階で、人間語をコンピュータ語に変換する!
📄 ソースコード
def add(a,b): return a+b
↓ 字句解析(トークン化)
🔤 トークン列
[DEF] [ID:add] [(] [ID:a] [,] [ID:b] [)] [:] ...
↓ 構文解析・最適化
⚙️ 機械語(バイトコード)
LOAD_FAST 0 BINARY_ADD RETURN_VALUE
第1章 · Step 3/5
🧠 Step 3:メモリへのロード
コンパイルされた命令はメモリ(RAM)に読み込まれる。メモリは番地(アドレス)のついた棚の集まり。セルをクリックして確認しよう!
🟣 命令(コード)
🔵 データ
⚪ 空き
👆 セルをクリックすると詳細が表示されます!
第1章 · Step 4/5
🔥 Step 4:CPUが命令を実行する
CPUはメモリから命令を1つずつ取り出し、3ステップで処理する。フェッチ → デコード → 実行(これを繰り返す!)
📊 レジスタ
PC0x0000
A0x00
B0x00
ALU0x00
第1章 · Step 5/5
🎉 Step 5:結果が画面に出る!
CPUが計算を終えると、OSを通じて画面への出力が行われる。システムコールで「この文字を表示して」と依頼するのだ!
$ python add.py
💡 print()を呼ぶとPythonがシステムコールを発行。OSがディスプレイドライバを通じてピクセルを書き換え → 文字が見える!✨
第1章 · クイズ
📝 理解度チェック!
Q1. ソースコードを機械語に変換するプログラムは? 🤔
🌐 ブラウザ
⚙️ コンパイラ
🗄️ データベース
📡 ルーター
Q2. CPUの実行サイクルの正しい順序は? 🔄
実行→デコード→フェッチ
デコード→フェッチ→実行
フェッチ→デコード→実行 ✓
フェッチ→実行→デコード
🎉
第1章クリア!
プログラムが実行される道筋を
ソースコード → コンパイル → メモリ → CPU → 出力
と追うことができた!
📚 今日学んだこと
- ソースコードは人間のために書かれたテキスト
- コンパイラが機械語(0と1)に変換する
- 命令はメモリ(RAM)に格納される
- CPUがフェッチ→デコード→実行を繰り返す
- OSのシステムコールで画面に結果が表示される