プログラム言語

snack
snack

今回はプログラム言語の種類や特徴などについてみていくっす。

ボキタロー
ボキタロー

なんでプログラム言語って何種類もあるんだろうね。1つでいいのに。

snack
snack

国によって人間の言語が異なるように、プログラム言語もその目的や用途などに応じていくつも種類があるんすよ。なので、プログラムの目的に応じて適切なプログラム言語を選択することが大事っす。

目標・プログラム言語の種類,特徴を理解する。
説明・プログラムの目的に応じて適切なプログラム言語を選択することを理解する。
・プログラム言語を用いたプログラミングに関連して,コーディング標準,基本的なプログラム構造,ライブラリがあることを理解する。
プログラム言語の概要

プログラム言語の種類と特徴

翻訳処理による分類

コンピュータでアルゴリズムを実行できるようにするには、プログラム言語を用いてアルゴリズム(処理手順)を記述する必要があります。

プログラム言語は人間が読み書きできるソースコードで書かれますが、コンピュータでは「0」か「1」の2進数で処理されるため、ソースコードのままではプログラムを実行できません。そこで、言語プロセッサと呼ばれる翻訳用プログラムでオブジェクトコードに翻訳し、プログラムを実行します。

言語プロセッサ

プログラム言語は、この翻訳処理のやり方によって次の3つに分類されます。

アセンブリ言語

ソースコードとオブジェクトコード(コンピューターが直接解釈できる機械語)が1対1で対応したプログラミング言語です。C言語などでは1つの命令が複数の機械語に変換されるのに対し、アセンブリ言語では1つの命令が1つの機械語に変換されます。コンピューターには理解しやすく実行速度が速い反面、人間にとっては理解しづらいという特徴があります。

言語プロセッサをアセンブラと呼び、翻訳処理をアセンブルといいます。

コンパイラ言語

ソースコードはまとめて先に一括翻訳し、オブジェクトコードを直接実行させるプログラミング言語です。実行速度は速いですが、プログラムを修正するとコンパイルもやり直さなければならないため、試行錯誤を繰り返すようなプログラムには不向きです。代表的なプログラム言語にC言語C++Javaなどがあります。

コンパイラ言語

言語プロセッサをコンパイラ、翻訳処理をコンパイルといいます。

インタプリタ言語

コンパイラ言語のようにすべてを丸ごと翻訳するのではなく、ソースコードを読み込んで1行ずつ変換するのと同時に、その都度命令を処理・実行するプログラミング言語です。

コンパイルを必要とせず、ソースコードを書いたらすぐに実行して動作確認ができるため、試行錯誤を繰り返すようなプログラムには向いていますが、1行ずつ機械語へ変換しながら実行するので実行速度は遅くなります。代表的なプログラム言語にJavaScriptPythonPHPなどがあります。

インタプリタ言語

代表的なプログラム言語

代表的なプログラム言語には次のようなものがあります。

プログラム言語特徴
C言語1972年にAT&Tベル研究所で開発され、その後、UNIXの開発に使用され、広く普及しました。汎用性やプログラムの自由度が高く、オペレーティングシステムや組み込みシステムなどの開発に用いられています。
C++C言語から派生したプログラミング言語で、C言語の機能や特徴を継承しつつ、C言語をより便利にしたプログラミング言語です。オブジェクト指向に対応しています。
JavaC++に類似した構文を用いた非常に人気の高いプログラミング言語です。コンピューターの機種やOSに依存しないソフトウェアが開発ができる、オブジェクト指向型の言語です。
Javaで作成したプログラムは実行形態によって、Javaアプリケーション(OS上から起動されるプログラム)、Javaアプレット(Webブラウザ上で実行されるプログラム)、Javaサーブレット(Webサーバ上で実行されるプログラム)に区別されます。
JavaScript主に、動きがあるWebページを開発する際に使われるプログラミング言語です。名前は似ていますがJavaとは全くの別物です。
Fortran科学技術計算向けに開発された言語で、世界初のプログラム言語と言われています。
Pythonオープンソースのプログラミング言語で、多くのプラットフォームで動作し、読みやすく書きやすいという特徴があります。また、利便性の高い大規模な標準ライブラリを備えており、データ分析やAI(人工知能)の分野で注目されています。
R言語オープンソースのプログラミング言語で、統計解析分野に優れています。AIの機械学習に関する分野で注目されています。
さらっと学習【ライブラリとAPI】

汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたものをライブラリといいます。一部のライブラリは公開されており、誰でも利用することができます。

ストラテジ系で学習したAPI(Application Programming Interface)と似ていますが、ライブラリは外部のプログラムファイルを取り込むのに対して、APIは外部のアプリケーションやサービスをシステム内に埋め込みます。例えば、グーグルマップをWebサイト内に埋め込む形で利用するWebAPIなどがあります。

さらっと学習(Bランク)

モジュール分割

大きなプログラム全体をモジュールと呼ばれる特定の機能単位に分割し、モジュールごとにコーディングやテストを実施します。

モジュール分割
(出典:基本情報技術者試験 平成20年度秋期分)

モジュールを適切な大きさに分割することによって、次のようなメリットが得られます。

  • プログラムの設計、作成、テストを効率化できる。
  • 作業を分担、並行して進めることができる。
  • エラーが起きてもモジュール単位で修復できる。
  • モジュールをプログラムの中で繰り返し実行したり、複数の箇所で再利用できる。

コーディング標準

プログラム言語を使ってプログラム文(コード)を書くことをコーディングといい、コードを書く際のルールをコーディング標準と呼びます。

事前にこのルールを決めておくことで、複数人で開発などを行う場合、ほかの人が書いたコードを確認したり、修正をしたりしやすくなります。

コーディング標準の代表的なものとしては次のようなものがあります。

字下げ
(インデンテーション)
字下げを行う場所を決めることでコードを見やすくします。
ネストの深さ条件式の中に再度条件式を記述することをネストと呼びます。この繰り返しの深さの上限を決め、コードを理解しやすくします。
命名規則プログラム内で利用する変数名やプログラムのファイル名などを統一するためのルールを決め、モジュール間の参照や連携を可能にします。

確認○×問題

問1

プログラム言語の役割は、コンピューターに対して処理手続を記述することである。

答え:〇

コンピュータでアルゴリズムを実行できるようにするには、プログラム言語を用いてアルゴリズム(処理手順)を記述する必要があります。

問2

コンピュータに対する命令を、プログラム言語を用いて記述したものを機械語と呼ぶ。

答え:×

設問はソースコードの説明となります。なお、機械語(マシン語、バイナリコード)とは、コンピュータが解析できるように2進数に変換されたプログラムのことです。

問3

Java言語で作成したプログラムであり、Webサーバからダウンロードして、Webブラウザ上で実行するものはJavaアプリケーションである。

答え:×

設問はJavaアプレットの説明となります。

Javaで作成したプログラムは実行形態によって、Javaアプリケーション(OS上から起動されるプログラム)、Javaアプレット(Webブラウザ上で実行されるプログラム)、Javaサーブレット(Webサーバ上で実行されるプログラム)に区別されます。

問4

JavaScriptは、Webブラウザ上に動的な振る舞いなどを組み込むことができる。

答え:〇

JavaScriptは、主に動きのあるWebページを開発する際に使われるプログラミング言語です。

問5

Pythonは、科学技術計算向けに開発されたプログラム言語である。

答え:×

科学技術計算向けに開発されたプログラム言語はFortran(フォートラン)です。

Python(パイソン)は、オープンソースのプログラミング言語で、多くのプラットフォームで動作し、読みやすく書きやすいという特徴があります。また、利便性の高い大規模な標準ライブラリを備えており、データ分析やAI(人工知能)の分野で注目されています。