ログイン
kid's world

コンピュータとC言語の基礎

これまでの11回分の知識をすべて振り返って眺めてみて、自分の頭の中を整理してみよう。


はじめに

早いもので,もう今回でこの「ゼロから始めるC言語学習帳」は最終回を迎えることとなった。さすがにC言語の入門を12回に収めるのはたいへんなことではあったが,それでもなんとかC言語の基本や,コンピュータの基礎知識はわかっていただけたのではないかと思う。あとは各自でいろいろな本を読み,実際にプログラム作りに挑戦していただきたい。また,この人はすごいといわれるようなプログラマのソースコードをまねして勉強するのもいいことだ。プログラムを作る楽しさを知り,他人の技術をいい意味で盗んでいくことで,プログラミング能力はメキメキと上達していくであろう。振り返ってみれば,私自身もプログラムを作ることが楽しくてたくさんのプログラムを書いてきたり,いろんな人のソースコードを読むことで「こんな書き方があるのか!」と感動的な経験が積み重なって今の自分があるように思う。

今回はこれまで連載してきた内容を一気に振り返ってみたい。今回振り返ってみる内容がもちろんC言語のすべてだとはいえないが,基本は網羅していると思う。同じ目的を果たすプログラムでも,その表現の方法は何通りもある。本連載を早見表のように見て,どんな場面でどんな機能を使うのがいちばん効果的なのかを考えていただきたい。そういうことがしっかり考えられているソースコードは,見ていて気持ちがいいものである。

コンピュータとC言語の基礎

それでは,まずはコンピュータの動く仕組みとC言語の関係からおさらいしていこう。詳しくは第1回の内容を参考にしていただきたい。

コンピュータの3大要素

コンピュータはさまざまな部品によって構成されているが,基本的にはCPU,メモリ,I/Oポートの3つから成り立っている。CPUは計算を行い,メモリはプログラムやデータを記憶し,I/Oポートはキーボードやディスプレイなど,外界とのやりとりを行う。

CPUが行っていることは非常に単純で,メモリから1つずつ順番に命令を読み込んで,そのとおりに動いているだけである。その中では「このメモリの内容とこの値を足し合わせろ」や「この値をI/Oポートの何番に出力しろ」とか,そういったことしかしていない。その命令は機械語と呼ばれる「CPUが直接理解できる数値」で書かれていて,どの数値がどの命令に相当するかはCPUによって異なっている。そのような単純な動作が高速にうまく組み合わさって実行されることで,難しい複雑な処理をやっているのである。

C言語と機械語

ということは,機械語さえ知っていればOKということになってしまうが,それは極論であり現実的ではない。というのは,機械語は非常に単純な命令しかないために,ちょっとした作業を行うために何百万という命令の羅列が必要となることもある。それを手作業で書いていくのは,はっきりいってむちゃだ。

そこで,人間がパッと見てわかる高水準言語が必要となる。その言語の1つがC言語だ。C言語は簡単な英単語の集まりで,それを見れば何が行われるのかは機械語よりは容易につかめる。

コンパイルと実行

C言語はそのままでは「文字列」であり,人間には理解できてもCPUは理解することはできない。CPUが理解できるのは機械語だけである。したがって,C言語を機械語に翻訳する必要がある。この作業をコンパイルと呼び,それを行うソフトウェアをコンパイラという。このコンパイラというソフトウェアのおかげで,CPUごとのコンパイラを用意すればそれぞれのCPUに対応した機械語を生成することができる。プログラマは人間に理解しやすいC言語だけ知っていればよい。

C言語のプログラムは通常はテキストファイルとして保存され,コンパイラに渡すことで機械語に翻訳される。通常は,機械語は実行可能ファイルと呼ばれるバイナリファイルとして保存される。Windowsでは,「.com」や「.exe」という拡張子のファイルがそれである。

実行可能ファイルは,通常はオペレーティングシステム(OS)によってメモリにコピーされて実行される。


C言語の文法」へ進む

広告


©Toshio Koide 1996-2007.

目次

リンクについて

リンクは御自由にどうぞ。

メール

mail.gif

広告