プログラミングってなに?

コンピュータの正体 ― スイッチだけで動く機械」の記事で、コンピュータは電気のON/OFFの組み合わせで指示を受け取る機械だと書きました。

ではその指示を、人間はどうやって作るのか。今回はその話をします。

0と1を手で並べるのは無理

コンピュータが理解できるのは、電気のON/OFFの並びだけです。前の記事で見たように、「A」という文字ひとつを伝えるだけでも、8個の電気のON/OFFを正確に並べる必要がありました。

画面に「こんにちは」と表示させたい場合、文字ごとにON/OFFの組み合わせを調べて、ぜんぶ正しく並べなければなりません。5文字分で40個の0と1。しかも1個でも間違えたら別の文字になる。

実際のパソコンでは、画面に1文字出すだけでも「どの位置に、どの大きさで、何色で表示するか」まで指定が必要です。必要なON/OFFの数は何百、何千にもなります。

こんなことを人間が手作業でやるのは現実的ではありません。

キーボードと同じ発想

前の記事でキーボードの話をしました。「A」のキーを1回押すだけで、パソコンの中では8個の電気が正しい組み合わせに切り替わる。よく使う操作を、1つのボタンにまとめたもの。それがキーボードのキーでした。

プログラミングも、まったく同じ発想です。

「画面に文字を表示しろ」という複雑な指示(膨大な0と1の並び)を、人間が読める短い言葉にまとめる。その言葉を書くだけで、パソコンが裏側で0と1に変換して実行してくれる。

まとめた言葉がコード

実際にどんな言葉になるのか、1つ見てみます。

print("こんにちは")

これで「画面に『こんにちは』と表示しろ」という指示になります。

print は英語で「表示する」という意味です。括弧の中に表示したい文字を書く。たったこれだけで、パソコンは何百という0と1の処理を裏で行って、画面に文字を出します。

もし print という言葉が用意されていなかったら、「画面のどの位置に」「どんな色で」「1文字ずつ何番のパターンで」とぜんぶ0と1で書かなければなりません。それを print という1語にまとめてくれた人がいるんです。

この「まとめた言葉」で書かれた指示の集まりを、コード(またはプログラム)と呼びます。そしてコードを書く作業がプログラミングです。

まとめを作った人がいる

キーボードの「A」キーは、メーカーが「このキーを押したらこの電気の組み合わせを送る」と決めて作りました。

print も同じです。誰かが「この言葉を使ったら、裏で画面表示に必要な処理をぜんぶ実行する」と決めて作りました。こうした「よく使う動きをまとめた言葉の集まり」がプログラミング言語です。

プログラミング言語には種類があります。

  • Python(パイソン) — データの処理や分析に使われることが多い
  • JavaScript(ジャバスクリプト) — Webページに動きをつけるのに使われる
  • Swift(スウィフト) — iPhoneのアプリを作るのに使われる

言語が違うと書き方が少し変わりますが、やっていることは同じです。「人間が読める言葉で指示を書く → パソコンが0と1に変換して実行する」。この流れはどの言語でも共通です。

プログラマーがやっていること

プログラマー(プログラムを書く人)は、パソコンにやってほしいことを、コードで書いています。

やりたいことを考える。それをプログラミング言語のルールに沿って書く。動くか確かめる。間違っていたら直す。この繰り返しです。

最近は「AI駆動の開発ツール」のように、人間が日本語で「こういうものを作って」と伝えると、AIがコードに変換してくれる道具も出てきています。ただし裏で起きていることは同じです。コードが書かれて、パソコンが0と1に変換して実行する。

身の回りのプログラム

プログラムはパソコンの中だけの話ではありません。

  • スマホのアプリ — 「このボタンが押されたらこの画面を出せ」とコードで書かれている
  • 信号機 — 「青を30秒、黄色を3秒、赤を30秒」とコードで書かれている
  • 電子レンジ — 「スタートが押されたら指定時間加熱して、終わったら音を鳴らせ」とコードで書かれている
  • 自動改札 — 「カードの残高を確認して、足りていたらゲートを開け」とコードで書かれている

どれも、人間が読める言葉で指示を書いて、機械が0と1に変換して実行しています。

まとめ

  • コンピュータへの指示を0と1で全部書くのは人間には無理である
  • よく使う動きを短い言葉にまとめたのがプログラミング言語である
  • その言葉で指示を書く作業がプログラミング、書かれたものがコード(プログラム)である
  • キーボードのキーが「電気の組み合わせ」をまとめたように、コードは「複雑な処理」をまとめている
  • プログラミング言語は複数あるが、「人間の言葉で書く → パソコンが0と1に変換して動く」の流れは共通である
  • スマホ、信号機、電子レンジなど、身の回りの多くのものがコードで動いている