プログラムとは何か

プログラムは、コンピューターにどの処理をどの順序で行わせるかを表した命令のまとまりです。入力を受け取り、判断や計算を行い、画面表示、保存、通信などの結果を生みます。

短いスクリプトも、ブラウザで動くコードも、大きなアプリを構成するサーバー処理もプログラムになり得ます。

一文でいうと

プログラムとは、コンピューターが実行できる形で処理の手順を定めたものです。

GNU C Language Manualでは、実行可能なCプログラムは決められた開始地点から処理を始め、ソースコードを実行ファイルへ変換して動かす例が説明されています。言語によっては、実行前に機械向けのファイルへ変換せず、処理系がソースを読みながら動かすこともあります。

個人開発のどこで登場するか

個人開発では、一つの製品が複数のプログラムから成り立つことがあります。

  • ブラウザ内で画面を更新するプログラム

  • サーバーで要求を処理するプログラム

  • データを変換する一度きりのスクリプト

  • テストを実行するプログラム

  • ビルドやデプロイを自動化するプログラム

「アプリを作る」は、これらのプログラムと設定、画像、データなどを組み合わせ、利用者へ一つの体験として届けることです。

入力、処理、出力で考える

読書記録へ一冊追加する処理を考えます。

  1. 利用者が書名と読了日を入力する

  2. プログラムが必須項目と日付を検証する

  3. 保存用のデータへ整える

  4. データベースへ保存を依頼する

  5. 成功または失敗を画面へ返す

この流れを入力、処理、出力に分けると、どこで想定と違ったか調べやすくなります。入力が正しくても保存に失敗することがあり、表示が成功に見えても実際には保存されていないことがあります。

ソースコード、アプリ、プロセスと区別する

  • ソースコード:人が読み書きし、プログラムの動作を定める表現

  • プログラム:実行する処理のまとまり

  • アプリケーション:利用者の目的を満たすために提供されるソフトウェア

  • プロセス:プログラムを実際に起動した一回の実行状態

同じプログラムを二回起動すれば、通常は別々のプロセスとして動きます。一つのアプリが、画面用とサーバー用など複数のプログラムを含むこともあります。

実行結果と終了状態まで確認する

プログラムを起動できたことだけで、目的の処理が成功したとは限りません。

  • 期待した入力を読んだか

  • 出力先や接続先が正しいか

  • エラーが標準エラー出力やログとは何かへ出ていないか

  • 終了コードが成功を示しているか

  • 途中まで変更したデータを安全に扱えているか

出所が分からないプログラムやスクリプトは、実行前に内容、配布元、必要な権限を確認します。プログラムは利用者と同じ権限でファイルやネットワークを操作できる場合があります。

次に読む記事

人が編集する表現はソースコードとは何か、プログラムを含む広い概念はソフトウェアとは何かへ進みます。文字で起動するときの一件の指示はコマンドとは何かで確認できます。

参考資料