基本情報技術者の勉強 プログラミング言語
コンピュータは命令を与えてあげなければただの箱です。コンピュータ単体では何の動作もしてくれません。
しかし、与えた命令は忠実にこなしてくれます。だから、こちらが行って欲しい処理を適切に教えてあげなければいけません。コンピュータは言われたことは確実にこなしますが、言われないと何もしてくれな
いのです。
では、どのようにコンピュータに命令を与えていきましょうか?コンピュータに話しかけてみても通じるわけはありません。人間の言葉では意思疎通を図ることができません。そこで必要になるのがプログラミング言語です。
プログラミング言語とは
プログラミング言語とは、人間がコンピュータに命令を与える際に使う言葉です。プログラミング言語を用いれば、命
令を与えることができるようになります。
コンピュータは電流が流れているのか流れていないのかの 2 つの状態しか判断することができません。この 2 つの状態を2 進数の 0 と 1 を使って表現します。コンピュータのメモリの中には 0 と 1 のみを用いて表現された命令がたくさん詰まっています。これを機械語と言います。
コンピュータに命令を与えるときも、機械語を使わないと理解してくれません。例えば、
「生徒 100 人分の試験の平均点を出して」
という命令を与えたいとき、この命令を機械語に変換しなければいけません。
しかし、人間が使う言葉を 2 進数のみの機械語に変換するのはめちゃくちゃ大変です。
そこで、機械語に変換しやすい言葉を使えば楽になるのでは?というアイディアが生まれたのです。そうしてプログラミング言語は誕生しました。
プログラミング言語は、人間の使う言葉と機械語の中間に位置する言語なのです。
プログラミング言語の種類
私たち人間の言葉には日本語や英語、韓国語といったようにいくつも種類があります。プログラミング言語も同じです。いくつかの種類があります。
そのうちの代表的なものを紹介していきます。
C言語
C言語は学校などで初めて学ぶプログラミング言語だと思います。
C言語はOS(オペレーティングシステム)や組み込み機器など、広範囲で使用されているプログラミング言語です。
ハードウェアにかなり近いレベルの記述もできるので、何でもありの柔軟性を誇ります。
BASIC
BASICは初心者向けとして古くから使われている言語です。
プログラムを書いた直後に実行して確かめることができるインタプリタ方式の言語です。未完成のものでも、途中まで実行して正常に動作しているのか確かめることができます。
Java
JavaはインターネットのWebサイトや、ネットワークを利用した大規模なシステムで使われることの多い言語です。
アンドロイドアプリは主にJavaで記述されています。
Java仮想マシンという実行環境を用いることで、OSやコンピュータの種類などのkン強に依存することなく動作させることができます。
どうやって翻訳しているの?
プログラミング言語で書かれた命令群をソースコードと言います。ソースコードだけでは、コンピュータは動作をしてくれません。
コンピュータが人間からの命令を実行するには、プログラミング言語を機械語に変換しなければいけません。すなわち、ソースコードを機械語に変換する必要があります。
プログラミング言語を機械語に変換する作業もプログラムが行っています。変換作業を行うプログラムのことを言語プロセッサと呼びます。
機械語への変換の方式
プログラミング言語を機械語に変換する方式にはインタプリタ方式とコンパイラ方式の 2 種類があります。順番に見ていきましょう。
インタプリタ方式
インタプリタ方式は、ソースコードに書かれている命令を、1 つずつ機械語に変換し実行していく方式です。
スポーツのインタビューや、海外のアーティストへのインタビューをイメージするといいと思います。隣に通訳の方がいて、質問を翻訳、回答を翻訳、といったように逐次翻訳を行っていきますよね?インタプリタ方式はそのようなイメージです。
プログラムを書いた直後からでもすぐに変換することができるため、作成している途中のプログラムを、その箇所まで実行することができます。
そうすることで、プログラムが正常に動作をしているのかを確認しながら作業を進めていくことができます。
しかし、コンパイラ方式と比較すると動作が遅いのが目立ちます。
インタプリタ方式では、プログラミング言語を機械語に変換してくれる言語プロセッサのことをインタプリタと呼びます。
コンパイラ方式
コンパイラ方式では、ソースコードの内容を全て一括で機械語に変換します。すべてを一括して機械語に変換してくれるため動作がとても速く効率がいいのですが、作業途中で動作を確かめることはできません。
外国語で書かれた本を一行ずつ和訳しながら読むのではなく、翻訳済みの本を読むようなイメージです。