プログラミングとは?
プログラミングとは、アルゴリズム(目的を達成するための処理手順)をプログラム言語で記述することです。
例えば、『37-01.アルゴリズム(流れ図/基本構造)』と同様、『1から3までの整数の合計を求める』アルゴリズムは、次のフローチャート(流れ図)になります。

このアルゴリズムをプログラム言語(C言語の場合)で記述(プログラミング)すると、以下のようになります。
/*1から3までの整数の合計を求める*/
#include<stdio.h>
int main(void){
int x, n;
/*①*/
x = 0;
n = 1;
/*②*/
for (n = 1; n <= 3; n++){
x = x + n;
}
printf("%d",x);
return 0;
}
プログラミンング言語とは?
プログラム言語には、複数の種類があり、目的や用途で使い分けます。
分類① | 分類② | 名称 | 説明 |
---|---|---|---|
低水準言語 | ー | 機械語 (マシン語) | コンピュータが理解できる2進数の言語 |
ー | アセンブラ 言語 | 機械語の命令部分を記号にした言語 | |
高水準言語 | コンパイラ 言語 | C言語 | UNIX(OSの一つ)の開発のために作られたプログラム言語、利用範囲が広い |
Java | コンピュータの機種やOSに依存しないソフトウェアが開発可能な言語 [ジャバ] |
||
COBOL | 事務処理関連のプログラム開発用言語 [コボル] |
||
Fortran | 科学技術関連のプログラム開発用言語 [フォートラン] |
||
インタプリタ 言語 | Python | 人工知能(AI)の分野で注目されている言語 [パイソン] |
|
JavaScript | ブラウザ上で実行される言語(Javaとは別の言語) | ||
Perl | テキスト処理に優れた言語 [パール] |
プログラム言語の基本的な特徴と分類が、ITパスポート試験の出題傾向です。
具体的には、『低水準言語/高水準言語』の分類、高水準言語の『コンパイラ言語』と『インタプリタ言語』を抑える必要があります。
低水準言語/高水準言語
高水準言語とは、人間が解釈できる形式で記述するプログラム言語です。
一方、低水準言語は、コンピュータが解釈しやすい形式です。0と1のデジタルデータで記述するプログラム言語を特に、 機械語と呼びます。

上の図は、高水準言語で書かれたプログラムは『3までの整数の合計を求める』という指示です。しかし、コンピュータは、0と1のデジタルデータのみ理解できるので、高水準言語で書かれたプログラムを実行できません。
つまり、コンピュータがプログラムを実行するには、低水準言語の機械語である必要があります。
しかしながら、機械語を人間が書くことは困難なので、高水準言語を機械語に変換する仕組み(翻訳)があります。
コンパイラ/インタプリタ
高水準言語で書かれたプログラム(ソースコード)を機械語への変換(翻訳)は、『コンパイラ』もしくは、『インタプリタ』が実施します。

コンパイラはソースコードの『すべてを一括で機械語に翻訳』します。これに対してインタプリタ は『1つずつ翻訳し、並行して命令を実行』します。コンパイラ、インタプリタで翻訳する言語それぞれ、コンパイラ言語、インタプリタ言語と呼びます。
補足ですが、日本語で、コンパイラは「編集者」、 インタプリタ は「通訳者」の意味です。したがい、編集者であるコンパイラは、機械語に全て翻訳した後にプログラムを実行する。インタプリタは通訳のように1つずつ翻訳し、並行して命令を実行するイメージで理解をしておきましょう。
オブジェクトモジュール/ロードモジュール

コンパイラ言語の関連用語として、『オブジェクトモジュール』、『ロードモジュール』について補足説明しておきます。
・ソースコード→翻訳(コンパイラ)→オブジェクトモジュール
・オブジェクトモジュール+ライブラリ→ロードモジュール(実行ファイル)
オブジェクトモジュールは、ソースコードをコンパイラで翻訳したものです。さらに、プログラムを実行するために必要なオブジェクトモジュールとライブラリ1つにまとめたものをロードモジュール(実行ファイル)と呼びます。
※ライブラリ:プログラムの機能を複数まとめて1つのファイルに収納したもの
コンピュータはロードモジュール(実行ファイル)となったソースコードを実行することができます。
【まとめ】プログラミング・プログラム言語
それでは、最後におさらいをしておきましょう!
用語 | 説明 |
---|---|
高水準言語 | 人間が解釈しやすい形式で記述するプログラム言語 |
低水準言語 (機械語) | コンピュータが解釈しやすい形式で記述するプログラム言語 |
コンパイラ言語 | 高水準言語を機械語に一括で翻訳する言語 |
インタプリタ言語 | 高水準言語を機械語に少しずつ翻訳、並行してプログラムを実行する言語 |
ロードモジュール | オブジェクトコードやライブラリを一つにまとめた実行可能な形式(実行ファイル) ソースコード→オブジェクトモジュール→ロードモジュール |
コメント