みんな分かるC言語入門の1回目はC言語の概要について触れていきます。
本記事の内容
・C言語の特徴
・C言語でできること
・ 基本的なC言語プログラム
C言語歴15年の著者が解説します。
目次
C言語とは
C言語は1972年にオペレーティングシステム(OS)であるUNIXを開発する過程で、AT&T社ベル研究所のDennis.M.Ritchie氏とBrian.W.Kernighan氏によって設計されたのが始まりです。
なぜ”C"なのかと言うと、Ken Thompson(UNIXの設計者の一人)によって設計されたB言語をもとに設計されたからという経緯があります。
このようにC言語は歴史はありますが、現在でも最もポピュラーなプログラム言語のひとつです。
下記は2019年に日経XTECHが現役エンジニアに「あなたが現在使っているプログラミング言語は何ですか」と聞いた調査結果です。
引用元:日経XTECH https://xtech.nikkei.com/atcl/nxt/column/18/01068/111100001/
C言語はエンジニアに利用されているプログラミング言語1位となっていることからも分かります。
特に自動車や機械などを動かす”組み込み系”のシステム開発で主に使われているのがC言語です。
製造業でメインに使われているということが分かります。
また、これからはIotの時代なので今後も活躍が期待できるでしょう。
C言語の特徴
メモリについての知識が必要
メモリを意識しなくても問題ないプログラミング言語もありますが、C言語はメモリの操作についての理解が必要になります。
ハードウェアに近いという特徴とも言えます。
ただし、これがC言語の学習に挫折してしまう原因の大きな一つと言えます。
実行速度が速い
C言語は「コンパイル方式」を採用しているため、実行速度が速いのが特徴です。
プログラミング言語を機械が理解できるようにするためには翻訳が必要になり、その翻訳作業を「コンパイル」といいます。
私たちがプログラミングしたファイルをコンパイルによって実行可能なファイルを作り、そのファイルを実行します。
C言語は実行前に機械が理解できるように「コンパイル」をするので、実行速度が速くなります。
逆にプログラミング言語の命令を機械語に解釈しながら実行する方式は「インタープリタ方式」と言われています。
他プログラミング言語のベースとなっている
オブジェクト指向の概念を取り入れた「C++」はC言語をベースにつくられており、C++はC言語と互換性があります。
C++を習得する上でもC言語は必要になってきますし、他の言語を習得する上でもまずはC言語を習得すると良いとも言われます。
ちなみにC#はJavaをもとに作られたプログラミング言語でC言語と互換性はありません。
ややこしいですね。
C言語でできること
自動車の制御システム
自動車のエンジンや車両制御など様々な車両のシステムにもC言語が使われています。
ロボットや電化製品などの組み込み系ソフト開発(Iot)
産業ロボットや電化製品などもC言語が使われています。
昨今注目されるIotにもC言語が使われていくことが期待されます。
OSの開発
macOS、WindowsのシステムにもC言語が使われています。
歴史のある言語の特徴です。
ゲームの開発
特にC++で開発されているゲームは多いです。
C++を習得する上でもC言語の学習が必要になります。
金融系の基幹システム
銀行などの基幹システムもC言語で作られていることが多いです。
AIプログラミング
あまり認知されていませんが、C言語でAIプログラミングもできます。
C言語でのAIプログラミングについて、下記Gooleブックスで無料で読むことができます。
初めてのAIプログラミング C言語で作る人工知能と人工無能
(少し古い本ですが、今見ても勉強になる内容です)
このように他のプログラミング言語の利用が増えてきた現代でもC言語はまだまだ第一線で活躍していることがわかります。
基本的なC言語プログラム:hello world!
プログラミングを経験したことがない人にとってはプログラムがイメージしづらいと思いますが、ますはC言語の代表的なプログラムを紹介します。
「hello world! 」と表示させるプログラムです。
- #include <stdio.h>
- main()
- {
- printf("Hello World\n");
- }
コラム:C言語について
著者はC言語歴15年以上のエンジニアです。
長く勤めてきた会社で優秀なエンジニアさんをたくさん見てきましたが、やはりメインで習得しているのはC言語でした。
はっきり言えることはC言語だけでもマスターしさえすれば、年収も一般的な水準より高くすることができ、人材不足のIT業界で”仕事が全然見つからない”ということにはなりづらいということです。
そういったこともあり、「プログラミングの学習のスタートとしてC言語から始めるのをおすすめするよ」という人も多いですが、「結構難しいからC言語は挫折するよ」という声も多いです。
挫折するのはハードウェアやメモリの知識が必要になってくるのが原因かなと思います。
自動車などの組み込み系でメインに使われるということもあり、普段の私たちの生活に密着したものではなく感覚がなかなかつかめないしイメージがしづらいんですよね。
反面、いったん習得してしまえば他言語の習得もスムーズになり、優秀なエンジニアへの道が開けていくと思います。
頑張ってC言語をマスターしてプロフェッショナルなエンジニアになりましょう!