一週間で身につくC言語の基本

おさえておきたいプログラミングの基本

【0日目】 C言語とは

C言語について学ぶ前にそもそもC言語とはどんな言語かを学びましょう。

0-1.そもそもC言語ってなんだろう?

(1) プログラミング言語

私たちがコンピュータ上で様々なアプリを楽しむことが出来るのはコンピュータ言語と言われる言語のおかげなのです。これはコンピュータが理解できる言語で、この言語を用いてコンピュータに様々な処理を行わせることをプログラミングと言います。
アプリの製作者は、その言語を用いて、コンピュータ上でアプリケーションをはじめとする、様々なソフトを作ることが出来るのです。

(2) プログラミング言語の一つである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言語を学ぶということは、これらの言語の学習をスムーズにしてくれるという利点があるのです。

0-2.プログラミング言語の役割

(1) マシン語と高級言語

では、そもそもコンピュータ言語とは何なのでしょう?私たちが、日常何気なく使っているコンピュータですが、実はそのままでは何の役にも立ちません。コンピュータを動かすには、コンピュータにわかる形で命令をしてあげる必要があるのです。

ただ、問題は、コンピュータが理解できるのは、マシン語(機械語)と呼ばれる、人間にしてみれば数値の羅列にしか見えない、きわめて判りづらい言語だということです。この言語を理解するのは不可能ではありませんが大変困難なことです。

そこで考え出されたのが、高級言語という、人間にとって比較的理解し易い文章や記号で構成されている言語を作ることでした。C言語は、そんな高級言語の一つなのです。

(2) コンパイラとインタープリタ

しかし、高級言語はそのままではコンピュータが理解することが出来ません。そこで、これを機械語に変換する必要があるのですが、その方式には大きく分けて、コンパイラと呼ばれるものと、インタープリタと呼ばれるものがあります。

コンパイラとは、高級言語で書かれたプログラム(ソースコードと呼びます)を、すべて機械語に変換し、変換後そのプログラムを動かすという方式です。それに対し、インタープリタは、ソースコードを翻訳しながら実行するという構造になっています。(図0-1)

一般に、コンパイラーは、コンパイル作業に時間がかかるものの、全てが一括返還されるため実行速度が速く、インタープリターは、コンパイル作業は要らないものの、変換作業を行いながらの実行になるため、速度はコンパイラーに劣るといわれています。 しかし、近年の技術の進歩により、これらの違いはあまりなくなってきています。このうち、C言語は一般に前者のコンパイラを用いて機械語に変換する方式が一般的です。

図0-1.コンパイラとインタープリタの違い コンパイラとインタープリタの違い

0-3.C言語はどんな言語か?

(1) C言語の成り立ち

では、そんなC言語ですが、一体どんな特徴があるのでしょうか?

C言語は、1972年、当時アメリカのAT&Tベル研究所のデニス・リッチーらのプロジェクトチームによって作られた言語です。

彼らは当時、後にUNIXと呼ばれるようになるオペレーティングシステムを開発していました。オペレーティングシステムとは、 コンピュータのシステムの基盤になるソフトウェアのことです。コンピュータを自動車にたとえるのならば、OSは、その運転席といったところでしょうか。

(2) C言語とコンピュータ技術の発展

もともとは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#言語を発表。
一週間で学べるコースの一覧
Udemy
...
2024/10/01

Udemyでも学びましょう!

一週間でわかるC言語・C++言語がオンライン講座になりました!動画音声によってさらにわかりやすくなりました!! 1講座で2つの言語を学ぶことができる上に、練習問題の回答もダウンロードできます。

Read →
Impress一週間シリーズ
1週間でC言語の基礎が学べる本
2024/10/01

書籍化された一週間シリーズ

本講座が「1週間でC言語の基礎が学べる本」として書籍化されました!サイトの内容プラスアルファでより学習しやすくなっています!Impressより発売中です!!

Read →
Impress一週間シリーズ
...
2024/10/01

書籍化された一週間シリーズ

一週間シリーズは書籍化されています。こちらもどうぞ!

Read →
プログラマーなら欲しいグッズ
プログラミンググッズ

プログラミンググッズ

快適なプログラミング環境を構築したい人々にぜひとも揃えてほしいグッズです。

Read →
制作・管理
シフトシステム株式会社

シフトシステム株式会社

このサイトはシフトシステム株式会社によって制作・管理がなされています。

Read →