初心者でも1日でPHPプログラミングを学習できる1日集中セミナー。

1.1 プログラムとは

プログラムとは

1.1 プログラムとは

 私たちは毎日、コンピュータを使って、表計算ソフトや文書作成ソフトなど、さまざまな「プログラム」を利用しています。プログラムを使うということは、特定の仕事をコンピュータに指示し、処理させていると考えることができ、プログラムは「この場合にはあれをしなさい」、「あの場合にはこれをしなさい」というように、コンピュータに対して様々な命令をする作業指示書であるとも言えます。
 プログラミングの世界では、この作業指示書のことをプログラムと呼び、プログラムを書く作業のことをプログラミングと呼びます。

1.1.1 プログラムは作業指示書のようなもの

 プログラムとはコンピュータに対して様々な命令をするための作業指示書であると説明しました。これから、このプログラムが具体的にどのようなものであるかを説明していきます。イメージをつかみやすいように、人間が人間に作業を指示する(作業指示書を渡す)場合と比べながら考えていきましょう。

1. 日本語を理解できる人間同士の場合

 作業指示書を出す側(自分)も、作業指示書を受け取る側(相手)も、日本語が理解できるとします。この場合は、日本語で書かれた作業指示書を渡せば良いことになります。

図1.1.1 日本語を理解できる者同士の作業指示書

2. 作業指示書を受け取る側が英語しか理解できない場合

 自分は日本語しか理解できず、相手は英語しか理解できない場合はどうでしょう。この場合は、英語で書かれた作業指示書を渡す必要があります。

図1.1.2 相手が英語しか理解できない場合の作業指示書

 このとき、作業指示書は日本語で書き、それを誰かに英語に訳してもらいます。英語を勉強して、正しい英語をすぐにマスターすることができれば第三者に英訳してもらう必要はありませんが、新しい言葉を勉強するのには多くの労力が必要で、現実的ではありません。

3. 作業指示書を渡す相手がコンピュータの場合

 先ほどの2.の場合、日本語で書いた作業指示書を誰かに英語に訳してもらう必要がありました。これは、コンピュータへの作業指示でも同じことが言えます。コンピュータが理解できる言葉のことを機械語と呼びますが、コンピュータは機械語しか理解できません。そのため、人間がコンピュータに作業を指示する場合、機械語で書かれた作業指示書を渡さなければなりません。

図1.1.3 相手がコンピュータの場合の作業指示書

 しかし、人間が機械語を修得するには、外国語を修得する以上に多くの労力が必要です。機械語という言語は「0」と「1」という数字の羅列からできており、人間が理解するには非常に難解でほぼ不可能です。ですので、人間にとって機械語よりは理解しやすいプログラミング言語で作業指示書を書き、それを機械語に訳してもらってコンピュータに渡すというやり方が現実的です。

 プログラミング言語とは、コンピュータに命令したい作業を書くのに使われる言葉で、PHP、Java、C言語など、多くの種類があります。(私たちがこれから勉強していくのは、PHPという、代表的なプログラミング言語のうちのひとつです。)
このプログラミング言語で書かれた作業指示書を機械語に訳し、コンピュータに渡すことで、コンピュータは作業指示書に書かれた命令を実行します。プログラミング言語で書かれた作業指示書のことをソースコードと呼び、ソースコードを書くことを「プログラミング」と呼びます。また、プログラミングをする人のことを、プログラマと呼びます。

図1.1.4 プログラマとプログラミングの関係

1.1.2 なぜプログラミング言語が考案されたのか

 先に述べたように、コンピュータは機械語しか理解できません。そして、機械語は人間が理解するにはとても難解です。そのため、人間がコンピュータに作業を命令したい場合は、「機械語よりは理解しやすい」プログラミング言語でコンピュータへの作業指示書(プログラム)を書き、このプログラムを機械語に訳してコンピュータに渡す方法が適切であると説明しました。
 ただし、プログラミング言語が「機械語よりは理解しやすい」と言っても、私たちが普段使っている日本語や英語のような「自然言語」と呼ばれる言葉とは性質が異なります。自然言語は、同じ文言でも状況や受け取る人の解釈によって意味が違ったりする場合がありますが、コンピュータは、人と違って、状況や文脈を判断することができません。そのため、コンピュータへの作業指示書は、誰がいつ解釈しても同じ意味になる必要があります。

 そこで、「誰がいつ解釈しても同じ意味になり、また機械語に翻訳しやすく、かつ人間にも理解しやすい中間言語」が考案されました。
 それが、プログラミング言語です。

 この理由により、人間はプログラミング言語を使ってコンピュータへの作業指示書(ソースコード)を書くようになりました。

図1.1.5 プログラムの動作イメージ

1.1.3 プログラム作成から実行までの流れ

 ここまでで、プログラムの全般的なイメージを見てきましたが、そのなかで、人間がプログラミング言語でコンピュータへの作業指示書(プログラム)を書き、このプログラムを機械語に訳してコンピュータに渡すと説明しました。この「訳す」という作業は、どのようなものでしょう。訳す作業には、コンパイラというものを使う方法と、インタプリタというものを使う方法の、大きく分けて2通りの方法があります。これらを使うことで、プログラミング言語で書かれたプログラムは機械語に訳され、コンピュータは命令を実行することができます。コンパイラとインタプリタのことを、言語処理系と呼びます。プログラミング言語によって、どちらの言語処理系を使うかは異なります。それぞれについて、少し詳しく見ていきましょう。

1. コンパイラ(compiler)型の言語処理系

 人間が人間に作業を指示する場合の例に戻り、作業指示書を訳す場面を考えてみます。日本語しかわからない人が、英語しかわからない人に作業を指示する場合です。まずは作業を指示する側が日本語で作業指示書を書きます。その作業指示書を翻訳者に渡すと、翻訳者は作業指示書を最初から最後まで全て英語に訳して返してくれます。

 作業を指示する人は、その英語に訳された作業指示書を、作業指示を受ける人間に渡します。

図1.1.6 作業指示書を翻訳して渡すイメージ

 この流れは、そのままプログラムを訳す場合にも当てはまります。人間がプログラミング言語でプログラムを書き、それを翻訳者に渡します。翻訳者は、プログラムを最初から最後まで機械語に翻訳し、人間に返してくれます。そして人間は、機械語に翻訳されたプログラムをコンピュータに渡します。コンピュータは、渡された機械語のプログラムを読み、命令を実行します。
 この翻訳者のことを「コンパイラ」と呼びます。そして、このコンパイラを使ってプログラミング言語で書かれたプログラムを翻訳する作業のことを、コンパイルと呼びます。
 コンパイラ型の代表的なものにはC言語などがあります。

2. インタプリタ(interpreter)

 インタプリタに関しても、人間が人間に作業を指示する場合の例に戻って考えてみましょう。先ほどと同じく、日本語しかわからない人が、英語しかわからない人に作業を指示する場面です。
 作業指示書を英語に訳すのはコンパイラと同じですが、コンパイラが翻訳者であるのに対して、インタプリタは通訳者であると言えます。まず作業を指示する側が日本語で作業指示書を書き、それを通訳者に渡します。そうすると通訳者は日本語で書かれた作業指示書を読み、作業指示を受け取る側の人に対して、作業指示の内容を英語に訳しながら1行ずつ話して聞かせます。

図1.1.7 作業指示書を通訳するイメージ

 この流れも、そのままプログラムに当てはまります。つまり、人間がプログラミング言語でプログラムを書き、それを通訳者に渡すと、通訳者はプログラムを1行ずつ読み、機械語に訳してコンピュータに渡すのです。コンピュータは、渡された命令を実行していきます。この通訳者のことをインタプリタといいます。

3. PHPでの言語処理系

 ここまでで、コンパイラとインタプリタという、2種類の言語処理系を説明しました。プログラミング言語には、コンパイラ型の言語処理系を利用するものも、インタプリタ型の言語処理系を利用するものも、それぞれ数多くあります。
 これから学習を進めていくPHPは、どちらを利用するのでしょう?PHPは、インタプリタ型です。
 コンパイルする手間がないため、Webサイトのような変更の多いシステムには非常に向いています。

 今の段階では、PHPはプログラミング言語のなかではインタプリタ型に属するものであるということを、なんとなく頭の片隅に入れておいていただければ、それで充分です。

 次節からは、PHP独自の特徴に焦点を当てて、説明していくことにします。

NEXT>> 1.2 PHPの特徴

PHP超入門テキスト 目次

ご不明点はお問い合わせフォームからご連絡ください。

セミナー一覧

法人向けプログラミング研修

Java、PHPの社員研修|新人研修

ワードプレス講座も人気!

ワードプレス講座も人気!

PHP超入門テキスト 目次

セミナー担当講師

PHPセミナー講師紹介

主席インストラクター
早稲田大学大学院 理工学部卒業
SanJose 州立大学、コンピューター工学部卒業
アメリカのシリコンバレーでは、プログラマー・SEとして活躍
講師の詳細はこちら

投稿一覧

お知らせ

オンラインのWeb講座、開始しました!

お待たせいたしました、全国どこからでも受講可能なオンラインによるWeb講座が開始しております! こちらをご覧く …

ご予約について

神田ITスクールでは、 新型コロナウイルス感染拡大防止の為、 5月以降は定員3名で開催する予定です。 開催日程 …

PHP超入門セミナー、3月分のご予約受付中です!

”1日で学ぶ”PHP超入門セミナー!3月分のご予約を受付中です! 受講者の皆さんの理解度を確認しながら進めます …

2020年1月開催のPHP超入門セミナー、ご予約受付中です!

ただいま、神田ITスクールでは、2020年1月開催の「PHP超入門」講座のご予約を受付中です! ご好評につき、 …

年内のセミナーについて

神田ITスクールの1日セミナー、 「PHP超入門」「PHPとMySQLでWeb開発入門」ですが、 申し訳ありま …

PAGETOP
Copyright © 2015 FusionOne Co.,Ltd. All rights reserved.