02:プログラミングと言語

02:プログラミングと言語

プログラミングとは

コンピュータは情報を1と0で記憶し、処理していると説明をしました。そのコンピュータを制御する部分をソフトウェアというのでした。

コンピュータに理解できるのは1と0しかありません。ですので、コンピュータを制御するソフトウェアは、膨大な数の1と0の組み合わせになっているのです。

コンピュータを制御するソフトウェアの事をプログラムと言います。そして、そのようなプログラムを作り出す作業をプログラミングと呼びます。


(画像URL:illust-AC 様)

例えるなら、プログラムはハードウェアを制御する魂であり、プログラミングは魂を作り出す作業となります。

また、コンピュータにプログラムを入れ込む(設定する)作業をインストールといいます。肉体に魂が宿るようなものですね。その逆で、コンピュータからプログラムを取り除く作業はアンインストールといいます。

コンピュータを機械人間に例えてみましょう。

彼に「右手を挙げて、その後左足を出せ」と命令するとします。その命令の事をプログラムといいます。そして、そのプログラムを行う事(この場合は口に出して命令する事)をプログラミングと言います。

 

コンパイラとインタプリタ

ところで先にも説明したように、機械人間のコンピュータには1と0しか理解できません。

ですので、彼に「右手を挙げて、その後左足を出せ」と命令する場合は、全て1と0に置き換えて命令する事になります。

例えば「右手」が0101、「挙げる」が1010、「左足」が0111、「出す」が1011なら、0101101001111011と命令します。・・・・

こんな1と0のカタマリはコンピュータにとっては都合が良くても、人間には大変わかりにくいものです。もう、目がチカチカしてきます(汗)。

そこで1と0のカタマリを、人間がわかる言葉で書いた(プログラミングした)後に、それをコンピュータが理解できる情報に変換するアイデアが考えだされました。

わかりやすい例を挙げてみましょう。

あなたが、見知らぬ土地に住む外人(例えばフランス人)と話をする場合を考えてみます。あなたがフランス語をペラペラと話せるならば、全く問題はありません。でもあなたが日本語しか話せないし、理解できない場合はどうでしょうか?。

このような時は、日本語とフランス語の両方を理解できる人(通訳)を間に挟んで、会話をしますよね?。いまならグーグルで翻訳するという方も見えるかもしれません(笑)。

コンピュータの場合も同じで、人間がわかり易い命令を、コンピュータが理解できる命令に翻訳(変換)する事にしたのです。

コンピュータの世界では

  • 人間が理解できる命令(日本語)の事を、プログラミング言語
  • フランス人(コンピュータ)が理解できる言葉の事を、機械語
  • 日本語をフランス語に翻訳する事を、コンパイルとかインタプリタといい、コンパイルする道具をコンパイラ

と言います。


(画像URL:illust-AC 様)

コンパイラとインタープリタの違いは、本などの固定文章の翻訳か、同時通訳かの違いになります。

コンパイラは本などの翻訳家に似ています。あらかじめ紙(ファイルなど)に書かれた人間の命令(プログラム)を、機械が理解できる言葉(1と0の2進数)に、まとめて変換します。

一方インタープリタは同時通訳者と似ており、人間が与えた命令をその場で1つ1つ、逐次機械が理解できる言葉に変換します。

 

プログラミング言語

ところで現実世界においても、私達人間が利用する言葉には、沢山の種類があります。人類が使う言語の数は特定されていないそうですが、数千種類とも言われています。


(画像URL:illust-AC 様)

日本語、英語、フランス語、ドイツ語、中国語、韓国語、ロシア語、ポルトガル語、ヒンディー語、スペイン語・・・。日本語の中にも、沢山の方言がありますよね。

同じように、コンピュータに命令をするためのプログラミング言語にも、沢山の種類があります。

代表的なプログラミング言語に

  • C(シー)
  • Java(ジャバ)
  • BASIC(ベーシック)
  • COBOL(コボル)
  • FORTRAN(フォートラン)

等があります。

またC言語の仲間(方言)には

  • Objective-C(オブジェクティブ シー)
  • C#(シーシャープ)
  • C++(シープラスプラス)

などがあります。

またプログラミング言語の中には、スクリプトと呼ばれる比較的簡単な言語もあります。

  • Ruby(ルビー)
  • Python(パイソン)
  • Perl(パール)
  • Lua(ルア)
  • HSP(ホットスーププロセッサ)

など、こちらも非常に沢山の種類があります。

スクリプトにはインタプリタ形式を採用した言語が多いようです。本屋でコンピュータの書籍コーナーに行くと、大抵これらのプログラミング言語に関する解説書が売られている筈です。

MSLABO的には、将来プロを目指すならJava系の言語かC系の言語をマスターする事がオススメです。初心者の方が気軽に始めるなら、スクリプト言語かBASIC系の言語が良いと思います。

本格的な(プロユースな)言語の中には、これからプログラミング言語を覚えようという初心者の方には、やや難解なものがあるのも事実です。将来プロを目指す場合はともかく、最初は比較的簡単な言語から始めてみる事をオススメします。

今回はPROCESSING(プロセッシング)と呼ばれるJava系の言語を利用します。PROCESSINGは比較的新しい言語で、初心者が取り組みやすい言語です。

PROCESSINGには

  • 絵が簡単に描ける
  • 動きがあるプログラムを作りやすい
  • コンパイルなど難しいことを意識しないで実行できる
  • インストールが楽ちん
  • 将来的にJavaを覚える際に役立つ

といった特徴があります。

 

今日の言葉

・プログラム

正確にはちょっと違うけど、ソフトウェアの事だと思ってもらえばOKです。コンピュータを制御する命令が集まったものです。

・プログラミング

プログラムを作ることを指します。

・インストール

コンピュータに新しいソフトウェアを設定する(入れる)事です。

・アンインストール

インストールの逆ですね。コンピュータからソフトウェアを取り去る事です。

・機械語

コンピュータが理解できる1と0からできた命令の事。現代のコンピュータで動作するプログラムは、最終的には全て機械語に変換されて実行されます。

・コンパイラ

人間が理解しやすい言葉で書かれたプログラムを、機械語に変換する仕掛け。コンパイラは一括変換をおこなう仕組みで「翻訳家」に例えられます。コンパイラを使って変換する事を「コンパイルする」と言います。

・インタプリタ

人間が理解しやすい言葉で書かれたプログラムを、機械語に変換する仕掛け。インタプリタは逐次変換をおこなう仕組みで「同時通訳」に例えられます。

・プログラミング言語

プログラム言語とも言います。コンピュータに与える命令語です。人間が使う言葉と同じように、沢山の種類があります。

 

今日のまとめ

  • コンピュータへ出す命令をプログラミング言語といい、作る事をプログラミングという
  • プログラミング言語は翻訳(コンパイルとインタプリタ)されて機械語になる
  • プログラミング言語には、沢山の種類がある

電子書籍のご案内

よりわかりやすく詳細にまとめたものを、以下の電子書籍として販売しております。書籍については、下記書籍ページを参照してください。

 

本ページの文章及びプログラムは、全てMSLABOに著作権があります。
本ページで利用している画像、フォントには、参照元リンクの企業・団体・個人に著作権があります。
著作権に従い、適切に利用して下さい。