ITパスポート 2012年 春期 問55
問題文
Webサーバでクライアントからの要求に応じて適切なプログラムを動作させるための仕組みにCGIがある。CGIを経由して実行されるプログラムを作成できるスクリプト言語はどれか。
選択肢
ア:CASL
イ:Fortran
ウ:Perl(正解)
エ:SQL
🔒 解説は解答すると表示されます
Webサーバで動作させるスクリプト言語はどれか【ITパスポート 解説】
正解の理由
Webサーバでクライアント(ブラウザなど)からの要求に応じて外部プログラムを動かす仕組みがCGIです。CGI(Common Gateway Interface:Webサーバと外部プログラムを連携するための規約)は、インタプリタ(実行時に逐次読み取り実行するプログラム)で動くスクリプト言語を使うことが多く、代表的なのが ウ(Perl)です。
Perl(Practical Extraction and Report Language:テキスト処理や文字列操作に強いスクリプト言語)は、その性質上、ソースを逐次実行でき、CGIプログラムの作成に適しています。歴史的にもCGIによるWebアプリケーションで広く使われてきました。
Perl(Practical Extraction and Report Language:テキスト処理や文字列操作に強いスクリプト言語)は、その性質上、ソースを逐次実行でき、CGIプログラムの作成に適しています。歴史的にもCGIによるWebアプリケーションで広く使われてきました。
解法ステップ
- 問題文で注目する語を確認する:ここでは「CGI」と「スクリプト言語」。
- 「スクリプト言語」とは何かを思い出す:コンパイルせずにインタプリタで実行する言語(例:Perl、Python、PHPなど)。
- 各選択肢がどの種類か分類する:
- CASL:アセンブリ言語(低級言語、教育用の組み立て言語)。
- Fortran:科学技術計算で使う高級だが主にコンパイルして使う言語。
- Perl:スクリプト言語(インタプリタで実行)。
- SQL:データベース操作のための問い合わせ言語(スクリプト言語ではない)。
- スクリプト言語に該当する選択肢を選ぶ → ウ(Perl)。
選択肢別の誤答解説
-
ア: CASL
CASLはアセンブリ言語(低級言語)で、機械に近い命令を書きます。教育用に使われることが多く、通常はインタプリタ式の「スクリプト言語」ではありません。CGIに使うのは現実的ではなく、問題の「スクリプト言語」に当てはまりません。 -
イ: Fortran
Fortran(Formula Translation:数値計算向けの高級言語)は主にコンパイルして実行する言語です。コンパイル済みの実行ファイルをCGIとして呼び出すことは技術的には可能ですが、設問が問う「スクリプト言語」には当たりません。 -
ウ: Perl
Perlはインタプリタで動くスクリプト言語です。CGIが普及した初期から文字列処理やテキスト操作が得意な点でCGIスクリプトに広く使われてきました。したがって設問の「スクリプト言語」に該当します。 -
エ: SQL
SQL(Structured Query Language:データベースを操作するための問い合わせ言語)は、データベースに対する命令文の集合です。単独でCGIプログラムを作る言語ではなく、プログラム内からデータベースにアクセスするために使います。従って「スクリプト言語」ではありません。
よくある誤解
-
「CGIには必ずスクリプト言語が必要」
→ 実際にはCGIは外部プログラムを呼び出す仕組みなので、コンパイル済みの実行ファイル(CやFortranで作ったもの)でも動きます。ただし問題は「スクリプト言語はどれか」を問うています。ここを混同すると間違えます。 -
「SQLはプログラム言語だ」と思う誤解
→ SQLはプログラムの制御構造(条件分岐やループ)を主目的にした一般的な手続き型言語ではなく、データベースに対する問い合わせ言語です。単独でCGIスクリプトとはなりません。 -
「有名だから正解」といった直感的な選び方
→ 「有名=スクリプト言語」とは限りません。言語の性質(インタプリタかコンパイルか、用途は何か)で判断しましょう。
補足コラム
-
短いPerlのCGI例(イメージ):
#!/usr/bin/perl print "Content-Type: text/html\n\n"; print "<html><body><h1>Hello CGI</h1></body></html>";上の例では、PerlスクリプトがHTTPヘッダ(Content-Type)を出力し、その後にHTMLを返しています。Webサーバがこのスクリプトを実行すると、ブラウザにHTMLが表示されます。 -
現代のWeb開発では、CGIの代わりにFastCGI(高速化)、アプリケーションサーバ、またはPHP、Python、Ruby、Node.jsなどのフレームワークがよく使われます。しかしCGIの考え方(サーバが外部プログラムを呼び出す)は基礎知識として重要です。
FAQ
Q1. FortranでCGIを作ることは絶対にできないですか?
A1. 技術的には可能です。コンパイルして実行ファイルを作り、CGIとして呼び出せます。ただし設問は「スクリプト言語」を問うため、該当しません。
A1. 技術的には可能です。コンパイルして実行ファイルを作り、CGIとして呼び出せます。ただし設問は「スクリプト言語」を問うため、該当しません。
Q2. PerlとPHPの違いは何ですか?
A2. 両方ともスクリプト言語です。Perlはテキスト処理や汎用スクリプトに強く、PHPは元々Webページ生成に特化して設計されたため、HTMLとの親和性が高い点が特徴です。どちらもCGIやWebアプリで使えますが、使われる場面や書き方が異なります。
A2. 両方ともスクリプト言語です。Perlはテキスト処理や汎用スクリプトに強く、PHPは元々Webページ生成に特化して設計されたため、HTMLとの親和性が高い点が特徴です。どちらもCGIやWebアプリで使えますが、使われる場面や書き方が異なります。
Q3. CGIを覚える必要はありますか?
A3. 現代の実務では直接CGIを使う機会は減っていますが、Webサーバと外部プログラムの連携という基本概念を理解する点で役立ちます。ITの基礎力強化として覚えておくと良いです。
A3. 現代の実務では直接CGIを使う機会は減っていますが、Webサーバと外部プログラムの連携という基本概念を理解する点で役立ちます。ITの基礎力強化として覚えておくと良いです。
関連キーワード: CGI、Perl、スクリプト言語、インタプリタ、コンパイル言語、CASL、Fortran、SQL、Webサーバ、Common Gateway Interface

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

