初心者の初心者による初心者のためのC言語!(基礎編)
全くプログラミングをしたこともなく、知識もない人がメモ的要素でまとめておくためのブログになります。今回は基礎的な部分についてまとめていきます。
## C言語とは?
1972年にAT&Tベル研究所のデニス・リッチーさんが主体となり開発されたプログラミング言語になります。50年以上たった今でもC言語の利用者は多く、2019年の日経xTECHの調査によると「ITエンジニアがシステム開発に使用するプログラミング言語」で第一位に輝いています。
## C言語の特徴
- 高速処理ができる
- 難易度が高い
- 派生が多い
## コンパイルとは?
C言語の特徴の詳しい説明の前に、一度専門的な要素を理解する必要があります。
そもそもプログラミングに使用されるソースコードは、一度「機械語」つまり二進数に変換する場合があります。わかりやすく言うと、文字(アルファベット)で書かれるソースコードを、バイナリ(0と1の組み合わせ)に変換をします。この機械語に変換する作業のことを、”コンパイル”と言います。
## 変換プログラムの種類
コンパイルを行う際には二つのパターンがあります。ちなみに変換プログラムのことを、言語プロセッサといいます。
- コンパイラ
- インタープリタ
コンパイラとインタープリタの大きな違いは、実行ファイルを生成するかしないかです。
## コンパイラとは
コンパイラ言語の特徴は、一括で全ての文章を機械語に変換します。
つまり、1から5行目までの文章を一気に1か0に変換します。生成された機械語プログラムなどの実行は行わないが、一度コンパイルし実行ファイルを生成すれば、コンパイラを使わずに何度も実行できるという利点があります。コンパイラを行う言語のことをコンパイラ言語と言い、主なプログラミング言語はC言語、C#、Javaなどがあげられます。
## インタープリタ
インタープリタは1行ずつ実行を行うことになります。つまり一文ずつ実行していくため、実行に時間がかかってしまいます。しかしコンパイルをせずに、そのままのソースコードで実行することができます。いちいち実行ファイルを作る必要がないため、製作段階ではその都度実行し修正を行うことができます。代表的なインタプリタ言語としてPHP、Ruby、Pythonなどが挙げられます。
## 高速処理について
C言語は、高速処理が早い理由として、”コンパイラ言語”であるということがあげられます。先ほど言ったように実行ファイルを生成するため、コンパイラを使わずに何度も実行できるようになります。さらに一括で機械語を読み込むため、短時間で実行が可能になります。
さらにC言語は、他のコンパイラ言語とは異なり仮想マシンを使用しないため、より高速な 処理が可能になります。
## 派生が多い
C言語は歴史がそこそこ長いということもあり、Cから派生した言語がたくさんあります。C++、PHP、Perl、Objective-C、Java、JavaScript、C#、Pythonが派生言語です。日本人が英語を勉強するのは難しいと言われていますが、ドイツ人は然程難しく内容です。それは西ゲルマン語群で、英語もドイツ語も同じ語群だからですね。それと同じで、プログラミング言語にも似たようなところがあります。C言語を覚えれば、他の言語に応用することが容易にになると言うことです。
今回はこれぐらいにしておきます。プログラミングに詳しい方にとっては当たり前のことかと思いますが、初心者にとってはこれでも難し過ぎるぐらいです、、 間違っている点もいくつかあるかもしれませんが、その際は色々とご指摘いただければ幸いでございます。これからも頑張って学んでいきたいと思います!