対象試験と出題頻度
手続き型言語は、基本情報技術者・応用情報技術者で出題されるテーマです。
「プログラミングパラダイム」の比較問題として定番化しており、オブジェクト指向・関数型・論理型との違いを正確に区別できるかが問われます。
SW H18秋期 午前 問43、AP H24春期 午前 問48、FE H30秋期 午前 問19など、複数の試験区分で繰り返し出題されています。
詳細をクリックして確認
基本情報技術者
応用情報技術者
★★★☆☆
ランクB(標準)覚えておくと有利
用語の定義
情報処理試験を勉強していると、「手続き型言語って他の言語と何が違うの?」と混乱しがちです。
手続き型言語(Procedural Language)とは、一言で言うと
「処理の手順(アルゴリズム)を上から順番に記述していくプログラミング言語」
のことです。
イメージとしては、「料理のレシピ」です。
「①野菜を切る → ②鍋に水を入れる → ③沸騰したら具材を入れる → ④味付けをする」のように、手順を1つずつ上から書き並べていく。これが手続き型言語の考え方です。
📊 手続き型言語の基本情報
| 項目 | 内容 |
|---|---|
| 英語名 | Procedural Programming Language |
| 代表的な言語 | C、COBOL、Fortran、Pascal |
| 最大の特徴 | 処理手順(アルゴリズム)を順番に記述する |
| 基本構造 | 順次・選択(分岐)・繰返し |
詳細解説
プログラミング言語は、プログラムの書き方の思想(パラダイム)によって大きく分類されます。
手続き型はその中で最も歴史が古く、最も直感的な書き方ができるパラダイムです。
手続き型言語の3つの基本構造
手続き型言語では「順次」「選択」「繰返し」の3構造でプログラムを組み立てます。
構造化定理(ベーム=ヤコピーニの定理)により、この3つの組み合わせであらゆるアルゴリズムを表現できることが証明されています。
🔧 3つの基本構造
順次
上から順に実行
選択(分岐)
条件に応じて分岐
繰返し
条件を満たす間、繰り返す
代表的な手続き型言語
手続き型に分類される主要な言語を整理します。それぞれ得意分野が異なるため、用途ごとに使い分けられてきました。
| 言語名 | 登場年 | 主な用途 | ワンポイント |
|---|---|---|---|
| C | 1972年 | OS開発、組込みシステム | UNIXを記述するために開発された。ハードウェアに近い低水準な操作も可能 |
| COBOL | 1959年 | 事務処理、金融システム | 英語に近い構文で読みやすい。銀行・保険のレガシーシステムで現役稼働中 |
| Fortran | 1957年 | 科学技術計算 | 世界初の高水準言語。数値演算に特化しており、気象予測やシミュレーションに利用 |
| Pascal | 1970年 | 教育用 | 構造化プログラミングの教育を目的に設計された言語 |
C言語のコード例
「順次・選択・繰返し」の3構造を使ったC言語の簡単なコード例を見てみましょう。手続き型言語の書き方が具体的にイメージできます。
#include <stdio.h>
int main(void) {
int score = 75; // ① 順次:変数に値を代入
if (score >= 60) { // ② 選択:条件で分岐
printf("合格\n");
} else {
printf("不合格\n");
}
for (int i = 1; i <= 3; i++) { // ③ 繰返し:3回ループ
printf("%d回目\n", i);
}
return 0;
}
プログラミングパラダイムの比較
手続き型言語を正しく理解するには、他のパラダイムと「プログラムの組み立て方の思想」で比較するのが近道です。
📊 プログラミングパラダイム比較表
| パラダイム | 考え方 | 代表言語 | 覚え方 |
|---|---|---|---|
| 手続き型 | 処理手順を上から順に記述する | C、COBOL、Pascal | 料理のレシピ |
| オブジェクト指向型 | データと手続きをオブジェクトとしてまとめ、その組み合わせで構成する | Java、C++、Python | 部品を組み合わせるプラモデル |
| 関数型 | 関数の定義と適用の組み合わせで計算を表現する | Lisp、Haskell | 数学の関数 f(x) |
| 論理型 | 「事実」と「規則」を記述し、導出原理で結論を得る | Prolog | 探偵が手がかりから推理 |
ここだけは確実に押さえてください。
手続き型は「処理の手順を書く」、オブジェクト指向型は「データと手続きをまとめたオブジェクトを組み合わせる」、
関数型は「関数の定義と適用」、論理型は「事実と規則から結論を導出」。
この4つの一言の違いで区別できます。
では、この用語が試験でどのように出題されるか見ていきましょう。
💡 手続き型言語の核心を3行で
・処理手順(アルゴリズム)を順次・選択・繰返しの3構造で記述するプログラミングパラダイム
・C、COBOL、Fortran、Pascalが代表例
・オブジェクト指向型は「オブジェクト」、関数型は「関数」、論理型は「事実と規則」で区別する
試験ではこう出る!
手続き型言語は、プログラミングパラダイムの分類を問う問題で繰り返し出題されています。
出題パターンは大きく2つに分かれます。
📊 過去問での出題実績
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| AP H24春 午前 問48 |
「事実」と「規則」を記述し導出原理で結論を得るパラダイムを選ぶ問題。手続き型・オブジェクト指向型・関数型・論理型の4択。 | ・各パラダイムの一言説明を正確に区別できるか ・正解は論理型だが、手続き型の説明がひっかけ選択肢 |
| FE H30秋 午前 問19 |
手続型言語のコンパイラが行う処理のうち、最初に行う処理を選ぶ問題。 | ・コンパイルの処理順序(字句解析→構文解析→意味解析→最適化→コード生成) ・「手続型言語の」という前提条件の読み取り |
| SW H18秋 午前 問43 |
エキスパートシステムの開発に適したパラダイムを選ぶ問題。AP H24春 問48と同一構成。 | ・AP・SW間で流用される定番問題 ・選択肢中の手続き型の説明を正しく認識する |
📝 IPA試験での出題パターン
パターン1:「○○パラダイムの説明を選べ」
4つのパラダイムの説明文が選択肢に並び、指定されたものを選ぶ形式。手続き型は「処理手順を順に記述」「C、COBOL、Pascal」がキーワード。論理型の「事実と規則」、関数型の「関数の定義」と混同しないことが重要。
パターン2:「手続型言語のコンパイラ処理を問う」
FE H30秋 問19のように、手続き型言語を前提としたコンパイラの処理順序を問う問題。字句解析が最初という知識があれば即答できる。
試験ではここまででOKです。各パラダイムの「一言定義+代表言語」を押さえれば得点できます。深追いは不要です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. プログラミングパラダイムのうち、「処理の手順(アルゴリズム)を順番に記述し、順次・選択・繰返しの構造でプログラムを組み立てる方式」に該当するものはどれでしょうか?
- A. 手続き型プログラミング。C、COBOL、Pascalなどの言語が該当し、命令を上から順に実行していく最も基本的な方式である。
- B. オブジェクト指向プログラミング。データと手続きをオブジェクトとしてまとめ、継承やカプセル化などの仕組みでプログラムを構成する方式である。
- C. 論理型プログラミング。プログラムに「事実」と「規則」を記述し、処理系の導出原理によって結論を得る方式で、Prologが代表例である。
正解と解説を見る
正解:A
解説:
手続き型プログラミングは、処理手順を順次・選択・繰返しの3構造で上から記述していくパラダイムです。C、COBOL、Pascalがこの方式の代表例です。
選択肢Bはオブジェクト指向プログラミングの説明です。データと手続きを「オブジェクト」という単位にまとめる点が手続き型との決定的な違いです。選択肢Cは論理型プログラミングの説明です。「事実と規則」から導出原理で結論を得る方式であり、処理手順を直接記述する手続き型とはアプローチが根本的に異なります。
よくある質問(FAQ)
Q. C++やPythonは手続き型言語に含まれますか?
C++やPythonは「マルチパラダイム言語」と呼ばれ、手続き型の書き方もオブジェクト指向の書き方もできます。IPA試験では、C++はオブジェクト指向言語として、Pythonはスクリプト言語としてそれぞれ扱われることがほとんどです。「Cは手続き型、C++はオブジェクト指向型」と整理しておけば試験対策としては十分です。
Q. 手続き型言語は実務で今でも使われていますか?
現役で広く使われています。C言語はLinuxカーネルや組込みシステム(家電・自動車の制御ソフト)の開発に不可欠です。COBOLは銀行の勘定系システムや保険の基幹システムで大規模に稼働しており、保守・運用の人材需要が継続しています。「古い言語=使われていない」は誤解です。
Q. 「構造化プログラミング」と「手続き型プログラミング」は同じ意味ですか?
厳密には異なります。構造化プログラミングは、goto文を排除して順次・選択・繰返しの3構造だけでプログラムを組み立てる「設計手法」です。手続き型プログラミングは「言語の分類」です。実際にはほぼ重なる概念ですが、試験の選択肢で並んだ場合は「構造化=設計思想」「手続き型=言語パラダイム」と区別してください。
Q. 手続き型言語のコンパイラとインタプリタの違いは何ですか?
コンパイラはソースコード全体を一括で機械語に変換してから実行する方式です。C言語やCOBOLはこのコンパイラ方式を採用しています。一方、インタプリタはソースコードを1行ずつ逐次解釈しながら実行する方式で、PythonやRubyが該当します。コンパイラ方式は実行速度が速く、インタプリタ方式は開発時の動作確認がしやすいという特徴があります。