1-1 コンピュータとプログラム

プログラムを作成することをプログラミングと呼び、プログラムを作成する人をプログラマと呼びます。それでは、プログラムとは何でしょうか?
プログラミングに興味を持っている人であれば、プログラムとはコンピュータに処理(仕事)を実行させる為の手順書というような漠然としたイメージはあるかと思います。その認識は間違ってはいませんが、プログラムを学習する為にはもう少し具体的に認識できる必要があります。

1-1-1 コンピュータの仕事

本来、コンピュータと呼ばれる電子機器は我々の想像する以上にシンプルな構造をしており、本当に簡単な仕事しか行う事が出来ません。例えば、画面上の1点を赤く点滅させる事は出来ますが、コンピュータグラフィックを表示する為には複雑なプログラムが必要となります。しかし、単純な処理を高速かつ正確に行う事に長けている為、フルカラーの写真であっても画面に表示できるのです。この単純な処理を正しく効率よく組み立てる過程がプログラミングであり、その成果物こそがプログラムです。つまり、プログラミングを理解するには、最初にコンピュータが出来る事を理解する事が重要です。コンピュータが出来ない事は、出来る事の組み合わせで実現できる事もありますが、当然ながらどうやっても出来ない事もあります。
コンピュータが単純な仕事として実行できる事は本当に限られており、それらの仕事は機械語マシン語と呼ばれる命令でコンピュータに通知されます。コンピュータは機械語マシン語)しか解釈する事ができませんが、命令されたならば確実に正確に迅速に仕事を行います。
尚、コンピュータが発明された当初は機械語マシン語)でプログラムを記述する事しかできませんでした。つまり、コンピュータに直接的に命令を与えていたという感覚です。

1-1-2 高級言語ソースコード

コンピュータはプログラムで定義された手順で処理を実行しますが、プログラムを作成するのは当然ながら人間です。人間が機械語を自然に読み書きできるのであればプログラムを作成する事は容易なのですが、コンピュータ側の都合で定義されている機械語は人間にとっては読み書きするのが難しいものとなっています。
従って、現在ではプログラム自体は人間が理解しやすい形で記述し、コンピュータに実行させる時に機械語に変換する方式が取られています。当然ながら機械語へと変換するデメリットは発生しますが、それを考慮しても機械語で記述するよりも人間の理解しやすい形で記述するメリットの方が高いのです。
このように人間の理解しやすい形で記述するプログラミング言語高級言語と呼ばれ、プログラムはソースコードと呼ばれるテキストファイルに記述されます。これから学んでいくJava高級言語であり、人間の理解しやすい形でプログラム(ソースコード)を記述する事ができます。

1-1-2 インタプリタコンパイル

ソースコード機械語に変換する方法には大きく2つの方式が存在します。
1つはコンパイラと呼ばれるプログラムを用いて、ソースコード機械語に変換する方式です。この機械語への変換はコンパイルと呼ばれ、この方法をコンパイル方式と呼びます。もう1つの方法は、プログラムを実行する時にソースコードを解析しながら機械語へ逐一変換する方式で、インタプリタ方式と呼ばれます。このソースコードを解析しながら実行するプログラムは実行環境(ランタイム)と呼ばれます。

1-1-3 文法

人間が理解しやすいように記述するソースコードであっても自由に記述する事はできません。必ずコンパイラインタプリタ(実行環境)によって解釈できるフォーマットで記述する必要があります(それでも人間に理解しやすいような書式です)。このソースコードを記述する為の定められたルールを文法と呼びます。プログラマは各言語に定められた文法に従ってソースコードを記述すると言う事は、言い換えればコンパイラインタプリタ(実行環境)が解釈できる書式でソースコードを記述するという事です。尚、文法はプログラミング言語によって異なりますが共通点も多くあります。

プログラムを学び始めた時期には、「どうしてこのような文法で記述するのか?」という疑問を持つ事があります。しかし、文法と呼ばれる仕組みはコンパイラインタプリタがプログラムの内容(ソースコード)を理解する為に存在するのです。あるプログラミング上の機能(例えば簡単な足し算)を行うためにはこのように記述するというルールでしかありません。重要なのは文法ではなく、プログラミング言語の機能です(例えば簡単な足し算ができるという事)。
携帯電話の通話ボタンを押すと通話ができる事に疑問を持たないでしょう。最初に覚えるべき重要な事は通話できるという機能の存在であり、その機能を使うには「通話ボタンを押す」という操作は単なるルールです。