「プログラムが実行される」とは何を意味するのか

「実行される」は“動き出す”ではない

プログラミングを学び始めると、「このコードが実行されると〜」という説明が頻繁に出てきます。
しかし、この「実行」という言葉は直感と少し違います。

プログラムが勝手に考えて動き出す、という意味ではありません。
コンピュータが命令を1つずつ処理している状態を指しています。

重要なのは、プログラムは行動しているのではなく、
CPUが命令を読み取り続けているだけという点です。

プログラムはただの文字列

まず押さえるべき事実があります。
ソースコードはコンピュータにとって文章ではありません。

let a = 1 + 2;

人間には計算に見えますが、このままではCPUは理解できません。
コンピュータが直接理解できるのは、0と1の信号です。

そのため、プログラムは変換されます。

ソースコード → 機械語(バイナリ) → CPUが処理

これが「実行」の本質です。

CPUがしていること

CPUは非常に単純な作業しかできません。

  • 値を読み込む
  • 計算する
  • 保存する
  • 分岐する

これを高速で繰り返しています。
1秒間に何十億回も命令を処理します。

つまり、プログラムが実行されるとは、
CPUが命令の列を順番に処理している状態です。

ブラウザの場合

WebページのJavaScriptも同じです。
ブラウザはJavaScriptを直接理解していません。

内部でJavaScriptエンジンがコードを解釈し、CPUが理解できる形に変換します。

document.body.textContent = "Hello";

この1行でも、内部では多数の命令に分解されます。

  • 要素を取得
  • 文字列を準備
  • メモリへ書き込み
  • 画面更新

ユーザーからは一瞬ですが、内部では大量の処理が行われています。

なぜ「止まる」ことがあるのか

重い処理を書くと画面が固まることがあります。
これは不具合ではありません。

CPUが他の処理をする余裕がない状態です。

while(true) {}

このコードは永久にCPUを占有します。
結果として、クリックもスクロールも反応しません。

「プログラムが重い」とは、
CPUの時間を使い切っているという意味です。

実行は1つずつしかできない

多くの人が誤解する点があります。
コンピュータは同時に複数のことをしているように見えます。

しかし実際には、1つずつ高速に切り替えています。
これをスレッドやイベントループの仕組みが管理しています。

JavaScriptが「シングルスレッド」と言われるのはここです。
1つの処理が長いと、他の処理が待たされます。

実際に起きるトラブル

ボタンを押しても反応しないのに、数秒後にまとめて反応することがあります。
これはイベントが消えたのではありません。

CPUが処理中で、順番待ちになっています。

つまり、
クリックが無視されたのではなく、
まだ実行されていないだけです。

注意点:コードは常に動いているわけではない

プログラムは常時動いているわけではありません。
イベントが発生したときだけ処理されます。

JavaScriptの場合

  • クリック
  • 入力
  • 通信完了

これらが起きたときに実行されます。
それ以外の時間、CPUは別の作業をしています。

「実行」の正体

プログラムが実行されるとは、魔法でも思考でもありません。

  • 命令を読む
  • 命令を処理する
  • 次の命令へ進む

この繰り返しです。

私たちが見ているアニメーションや画面の変化は、
連続した命令処理の結果です。

つまりプログラムとは、何かをしている存在ではなく、
コンピュータに仕事の手順を渡しているものです。

この理解があると、「なぜ遅いのか」「なぜ固まるのか」を感覚ではなく仕組みで説明できるようになります。
実行とは動作ではなく、処理の連続なのです。