プログラム言語
機械語から高水準言語への変遷と、手続型・オブジェクト指向・スクリプト言語という分類、代表的な言語の特徴を理解できるようになります。
ねらい
プログラム言語の成り立ちと分類を学びます。このレッスンを終えると、機械語から高水準言語への発展の流れを説明でき、手続型・オブジェクト指向・スクリプト言語の分類と代表的な言語を対応付けられるようになります。
ストーリー
あなたの会社では、基幹システムはCOBOL、スマートフォンアプリはJava、データ分析はPython、ウェブの画面はECMAScriptで書かれています。「どうして言語がこんなにたくさんあるんですか」と先輩に聞くと、「用途に合う道具がそれぞれ違うからだよ」という答えが返ってきました。言語の分類が分かると、この使い分けの意味が見えてきます。
プログラム言語の変遷:機械語から高水準言語へ
コンピュータが直接実行できるのは、0と1の並びである機械語だけです。しかし機械語を人間が読み書きするのは大変なため、言語は段階的に人間に近づいてきました。
- 機械語は、コンピュータが直接実行できる0と1の命令です。
- アセンブラ言語は、機械語の命令に1対1で対応する記号を与え、人間が読める形にしたものです。
- 高水準言語は、人間の言葉や数式に近い書き方ができる言語の総称です。現在使われている言語のほとんどがこれに当たります。
機械語から高水準言語へ進むほど、人間の言葉に近づいていきます。高水準言語で書いたプログラムは、前のレッスンで学んだコンパイラなどによって機械語に翻訳されて実行されます。
プログラム言語の分類
高水準言語は、プログラムの組み立て方の考え方で分類できます。
手続型言語
処理の手順を上から順に記述する、最も基本的な型です。代表的な言語に、科学技術計算の草分けであるFortran、事務処理で長く使われてきたCOBOL、教育用として設計されたPascalとBASIC、OSの記述にも使われるC、統計解析に強いRがあります。
オブジェクト指向言語
データと操作をクラスにまとめて組み立てる型です。代表的な言語に、業務システムやスマートフォンアプリで広く使われるJava、Cにオブジェクト指向を加えたC++、科学技術計算向けのJulia、並行処理に強いGoがあります。
スクリプト言語
手軽に書いてすぐ実行できることを重視した型です。代表的な言語に、ブラウザで動くECMAScript、テキスト処理に強いPerl、ウェブサイトの構築で普及したPHP、データ分析やAI開発で広く使われるPython、日本発のRubyがあります。
言語の分類は絶対的なものではなく、たとえばPythonはスクリプト言語でありながらオブジェクト指向の書き方もできます。分類は「その言語の主な性格」を捉えるための地図と考えましょう。
共通言語基盤(CLI)
異なるプログラム言語で書かれたプログラムを共通の実行環境で動かすための標準が共通言語基盤(CLI)です。JIS X 3016(ISO/IEC 23271)で標準化されています。言語の違いを実行環境が吸収するという考え方を押さえておきましょう。
例題
次の問いに答えてください。
問1 機械語の命令に1対1で対応する記号を与えて、人間が読める形にした言語を何といいますか。
問2 データ分析やAI開発で広く使われている、スクリプト言語に分類される言語を1つ挙げてください。
解答と解説
問1の答えはアセンブラ言語です。機械語と1対1で対応する点が特徴で、人間の言葉に近い書き方ができる高水準言語とは区別されます。
問2の答えはPythonです。このほかECMAScript、Perl、PHP、Rubyもスクリプト言語に分類されます。
応用
本試験を意識した問題を解いてみましょう。
問 オブジェクト指向言語に分類されるプログラム言語はどれでしょうか。次の中から選んでください。
- Java
- COBOL
- Fortran
- Perl
解答と解説
答えは1のJavaです。Javaはクラスを中心にプログラムを組み立てるオブジェクト指向言語の代表で、業務システムやスマートフォンアプリの開発で広く使われています。2のCOBOLは事務処理向けの手続型言語、3のFortranは科学技術計算向けの手続型言語です。4のPerlはテキスト処理に強いスクリプト言語に分類され、オブジェクト指向言語の代表例としては扱われません。
分からなかった点・気になった点
読み込み中です。