原始プログラム(ソースプログラム)とは?げんしぷろぐらむ
原始プログラム(ソースプログラム)とは、人がプログラム言語の文法で書いた、翻訳される前のプログラム。そのままではCPUが実行できないため、コンパイラで機械語の目的プログラムへ変換し、リンカが他のモジュールと結合してロードモジュールにしたうえで実行する。プログラマが直接編集し、変更履歴を管理する対象はこの原始プログラムである。
最終更新:2026-10-09
この語が出る過去問を解く →背景
初期のコンピュータは機械語や、それを記号に置き換えたアセンブラ言語で直接書いていた。命令の並びが機種ごとに違うため、機種を替えれば書き直しになり、人が読んで誤りを見つけることも難しかった。人に読める書き方と、機械が実行できる形とを切り離し、その間の変換を翻訳ソフトに担わせる——この分業のために、翻訳前の原稿にあたる段階として原始プログラムが置かれた。
具体例
Javaでは拡張子.javaのファイルが原始プログラムで、OpenJDKのjavacがクラスファイルへ変換する。C言語ではGCCが.cファイルを.oの目的プログラムに変え、リンカが標準ライブラリと結合して実行ファイルを作る。
試験での引っ掛け
目的プログラムやロードモジュールとの順序が問われる。原始プログラム→(コンパイラ)→目的プログラム→(リンカ)→ロードモジュール→(ローダ)→主記憶、が流れである。インタプリタを使う場合は目的プログラムを作らず、原始プログラムを1行ずつ解釈しながら実行する点も区別する。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成29年度 春期 基本情報技術者試験 午前 問79(IPA)
出典:平成30年度 秋期 基本情報技術者試験 午前 問19(IPA)解説で登場
手続型言語のコンパイラが行う処理のうち,最初に行う処理はどれか。
正解:字句解析
要点:コンパイラは字句解析→構文解析→意味解析→最適化の順
コンパイラは字句解析、構文解析、意味解析、最適化、コード生成の順で処理する。最初の字句解析では原始プログラムの文字列を、予約語・識別子・演算子といった意味をもつ最小単位(トークン)に切り分ける。
出典:平成30年度 春期 基本情報技術者試験 午前 問18(IPA)解説で登場
コンパイラによる最適化の主な目的はどれか。
正解:プログラムの実行時間を短縮する。
要点:コンパイラの最適化が狙うのは目的プログラムの実行時間短縮
コンパイラの最適化は、不要な命令の削除、ループ内の不変な計算の外出し、レジスタの有効利用などによって、生成する目的プログラムの実行効率を高める処理である。狙いはあくまで実行時の速度向上(あるいはコードサイズの削減)であり、最適化を有効にすると原始プログラムとの対応が崩れてデバッグはむしろ難しくなり、コンパイル時間も延びる。
出典:平成31年度 春期 基本情報技術者試験 午前 問19(IPA)
インタプリタの説明として、適切なものはどれか。
正解:原始プログラムを、解釈しながら実行するプログラムである。
要点:インタプリタは原始プログラムを逐次解釈して実行する
インタプリタは原始プログラムを1文ずつ解釈しながらその場で実行する方式の言語処理プログラムである。事前に機械語へ翻訳しないため実行速度は遅くなりやすいが、書いてすぐ動かせて誤りの発見が早いという利点がある。これに対しコンパイラは全体を先に翻訳してから実行する。
出典:令和4年度 公開問題 基本情報技術者試験 科目A 問16(IPA)
インタプリタの説明として、適切なものはどれか。
正解:原始プログラムを、解釈しながら実行するプログラムである。
要点:インタプリタは翻訳結果を残さず逐次解釈して実行する
インタプリタは、原始プログラムを1文ずつ解釈しながらその場で実行する方式の言語処理プログラムである。あらかじめ機械語へ翻訳して実行可能ファイルを作るコンパイラとは異なり、翻訳結果を残さないため実行速度は劣るが、修正して即座に試せる利点がある。
出典・参考
公式シラバスの2 コンピュータシステム > 4. 開発ツール > (2) 言語処理ツールの種類と特徴に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。