Day 5・プログラムはどう動くか
実行の流れとランタイム
プログラムは基本「上から順に」動き、時々ジャンプする。その動きを支える土台がランタイム。
プログラムはレシピのように読まれる
プログラムが動くとき、コンピュータは書かれた命令を基本的に上から順に一つずつ実行します。料理のレシピを「1. 野菜を切る → 2. 炒める → 3. 味付けする」と上から順にこなすのと同じです。この「命令が実行される順番」のことを(実行の流れ)と呼びます。
たとえるなら
コードは「レシピ」、コンピュータは「そのレシピ通りに手を動かす料理人」。あなたが[[source-codclienrequestに書いた順番が、そのまま料理人の作業順になります。
ただし、いつも一直線とは限りません。「もし卵があれば入れる、なければ飛ばす」のように条件で道が分かれたり、「10回混ぜる」のように同じ作業を繰り返したりします。つまり基本は上から順、でも時々ジャンプする、というのが実際の動きです。
- 順番に実行: 上から下へ一つずつ(レシピの手順どおり)
- 分岐: 条件によって進む道が変わる(卵があれば入れる)
- 繰り返し: 同じ処理を何度も回す(10回混ぜる)
- 呼び出し: 別の手順([[functioclienrequest)に飛んで戻ってくる(下ごしらえの手順を見に行く)
その料理人はどこにいる? = ランタイム
レシピ(コード)を実際に読んで手を動かす「料理人と、その調理場」にあたるのが[[runtimclienrequest(ランタイム)です。ランタイムとは「プログラムが実際に動いている最中の環境そのもの」。キッチンがなければどんな名レシピも料理になりません。同じように、ランタイムがなければコードはただの文字列です。
たとえるなら
コードは楽譜、ランタイムは楽器と演奏者。楽譜(コード)は「どう演奏するか」の指示書でしかなく、実際に音を出すのは楽器(ランタイム)。楽器が違えば音も少し変わります。
ランタイムはブラウザの中だったり、あなたのパソコンの中だったり、遠くの[[serveserverequestの中だったりします。「同じコードなのに自分の環境では動くのに他の人の環境では動かない」ことがあるのは、この調理場(ランタイム)の設備や材料が違うからです。
土台を気にしない頼み方
とにかく動くコードを書いて、と丸投げ。どこで動かすか伝えないので、手元で動かない原因が分からず詰まる。
AIに: この機能のコード書いて土台を伝える頼み方
どのランタイムで動かすかを伝える。前提が合うので、そのまま動く確率が上がる。
AIに: ブラウザで動かす前提でこの機能のコード書いてAIにはこう頼む
「このコードは上から順にどんな流れで動く?番号を振って説明して」と頼むと、実行の流れを日本語の手順に翻訳してくれます。読めるようになる第一歩です。
丸投げの落とし穴
流れを一切読まずに動いたコードを貼り付けると、途中の分岐が想定と違っても気づけません。「どこで道が分かれているか」だけでも追えると、直せる人になれます。
読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。
理解度チェック
答えられれば、面接で説明できる状態に一歩近づきます。
プログラムの基本的な実行の流れとして、最も近い説明はどれ?
「ランタイム」を一言でたとえると?
「同じコードなのに、自分のパソコンでは動くのに友達のパソコンでは動かない」ことがあるのはなぜ?ランタイムという言葉を使って説明してください。
記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。