おさえておきたいプログラミングの基本
C言語について学ぶ前にそもそもC言語とはどんな言語かを学びましょう。
私たちがコンピュータ上で様々なアプリを楽しむことが出来るのはコンピュータ言語と言われる言語のおかげなのです。これはコンピュータが理解できる言語で、この言語を用いてコンピュータに様々な処理を行わせることをプログラミングと言います。
アプリの製作者は、その言語を用いて、コンピュータ上でアプリケーションをはじめとする、様々なソフトを作ることが出来るのです。
実はこのコンピュータ言語、実にたくさんの種類があるのです。(表0-1参照)その中でも、C言語は、現在現役で使われている主要なプログラミング言語のなかでも、最も有名で、古い言語の一つなのです。
表0-1:主要なコンピュータ言語一覧
言語名 | 特徴 |
---|---|
マシン語 | CPUが直接理解できる言語。CPUの種類によって異なり人間が理解するのは難しい。 |
C | 現在用いられている主流の言語の中では最も古い言語。多くの言語が、C言語をベースに作られている。 |
C++ | C言語を更に拡張した言語。オブジェクト指向といった考え方に対応。 |
Java | C/C++をベースにして、SunMicrosystemsによって開発された、Androidなどで用いられている言語。 |
C# | Microsoft社がJavaなどをベースに独自に開発した言語。 |
PHP | 主にWebプログラミングで用いられる言語。初心者でも理解しやす。 |
Swift | Apple社がC言語を独自に拡張した言語。iPhoneやiPadのアプリ開発に用いられる。 |
Python | 人工知能などの分野で活用される言語。初心者が学びやすい言語として知られている。 |
ここに出ている言語は、ごく一部で、現在は実にたくさんのコンピュータ言語が存在します。ただ、この表を見ても判る通り、多くの言語は、C言語をベースに作られています。
そのため、C言語を学ぶということは、これらの言語の学習をスムーズにしてくれるという利点があるのです。
では、そもそもコンピュータ言語とは何なのでしょう?私たちが、日常何気なく使っているコンピュータですが、実はそのままでは何の役にも立ちません。コンピュータを動かすには、コンピュータにわかる形で命令をしてあげる必要があるのです。
ただ、問題は、コンピュータが理解できるのは、マシン語(機械語)と呼ばれる、人間にしてみれば数値の羅列にしか見えない、きわめて判りづらい言語だということです。この言語を理解するのは不可能ではありませんが大変困難なことです。
そこで考え出されたのが、高級言語という、人間にとって比較的理解し易い文章や記号で構成されている言語を作ることでした。C言語は、そんな高級言語の一つなのです。
しかし、高級言語はそのままではコンピュータが理解することが出来ません。そこで、これを機械語に変換する必要があるのですが、その方式には大きく分けて、コンパイラと呼ばれるものと、インタープリタと呼ばれるものがあります。
コンパイラとは、高級言語で書かれたプログラム(ソースコードと呼びます)を、すべて機械語に変換し、変換後そのプログラムを動かすという方式です。それに対し、インタープリタは、ソースコードを翻訳しながら実行するという構造になっています。(図0-1)
一般に、コンパイラーは、コンパイル作業に時間がかかるものの、全てが一括返還されるため実行速度が速く、インタープリターは、コンパイル作業は要らないものの、変換作業を行いながらの実行になるため、速度はコンパイラーに劣るといわれています。 しかし、近年の技術の進歩により、これらの違いはあまりなくなってきています。このうち、C言語は一般に前者のコンパイラを用いて機械語に変換する方式が一般的です。
図0-1.コンパイラとインタープリタの違いでは、そんなC言語ですが、一体どんな特徴があるのでしょうか?
C言語は、1972年、当時アメリカのAT&Tベル研究所のデニス・リッチーらのプロジェクトチームによって作られた言語です。
彼らは当時、後にUNIXと呼ばれるようになるオペレーティングシステムを開発していました。オペレーティングシステムとは、 コンピュータのシステムの基盤になるソフトウェアのことです。コンピュータを自動車にたとえるのならば、OSは、その運転席といったところでしょうか。
もともとはUNIXを作るために作られたC言語でしたが、その後、パーソナルコンピュータが普及するようになると、その使い易さから爆発的に普及し、後にコンピュータの標準的なプログラミング言語になっていくのです。そのため、冒頭にも述べたとおり、現在ある様々なプログラミング言語はC言語を母体にしたものがほとんどです。
その後、多くの言語が発表されましたが(表0-2.参照)ほとんどの言語は、C言語の知識があれば、比較的スムーズに学習をすることが出来るでしょう。そういったこともあり、プログラミング言語の手始めとして、C言語を学ぶということには大きな意味があるといえるでしょう。
表0-2:コンピュータ言語の発展史年 | 出来事 |
---|---|
1946年 | 世界初の本格的なコンピュータ、ENIAC(エニアック)登場。主に弾道計算目的で使用された。 |
1956年 | 科学技術計算言語FORTRAN(フォートラン)が開発される。現在も使用されている最古の言語の一つ。 |
1960年 | 事務計算用プログラミング言語COBOL(コボル)、人工知能用プログラミング言語LISP(リスプ)が開発される。 |
1965年 | パソコンの普及初期に、主要な言語として用いられた初心者用プログラミング言語BASIC(ベーシック)が開発される。 |
1971年 | インテルによって世界初のCPUマイクロプロセッサーi4004が開発される。 |
1972年 | C言語が開発される。 |
1975年 | ビル・ゲイツ、小型の個人用コンピュータ向けのBASIC言語を開発。マイクロソフトの礎を作る。 |
1976年 | スティーブ・ジョブズ、スティーブ・ウォズニアック、初の本格的パソコン、APPLIE I(アップル・ワン)を作る。 |
1981年 | IBM、現在のパソコンの原型であるIBM-PCを開発。 マイクロソフト、パソコン向けの初の本格的OSMS-DOS(エムエス・ドス)を作る。 |
1983年 | C言語の上位互換言語であるC++(シー・プラス・プラス)言語が発表される。 |
1984年 | アップル社、初代のマッキントッシュを発売。 |
1985年 | マイクロソフト社、初代のウィンドウズである、Windows 1.0を発売。 |
1989年 | ティム・バーナーズ・リーによって、WWW(World Wide Web:ワールド・ワイド・ウェブ)が開発される。 |
1995年 | Windows95発売。Sun Microsystems社、Java言語を発表。 |
2000年 | マイクロソフト社、C#言語を発表。 |
一週間でわかるC言語・C++言語がオンライン講座になりました!動画と音声によってさらにわかりやすくなりました!! 1講座で2つの言語を学ぶことができる上に、練習問題の回答もダウンロードできます。
Read →本講座が「1週間でC言語の基礎が学べる本」として書籍化されました!サイトの内容プラスアルファでより学習しやすくなっています!Impressより発売中です!!
Read →