Why It Fits
選ぶ理由
- ハードを直接制御でき非常に高速
- 移植性が高くどこでも動く
- OS・組込み・基盤の事実上の標準
Language Profile
Dennis Ritchie(ベル研究所) / 1972年登場
OS やドライバ、組込みの土台を作る低レベル言語。ハードウェアに近く高速で、ほぼすべての言語や OS の基礎になっている。
Specifications
Introducing
Decision Guide
採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。
Why It Fits
Trade-offs
Best Fit
Deep Dive
C は 1972 年ごろに Dennis Ritchie がベル研究所で開発した、低レベルの手続き型言語です。当初は UNIX を記述するために作られ、ハードウェアに近い操作をしながらもアセンブリより読み書きしやすい、という絶妙な位置を占めました。半世紀を経た今も、OS・デバイスドライバ・組込み機器の土台として現役で使われています。
C の核心は、言語そのものが極めて小さいことです。余計な仕組みを持たず、メモリ配置やポインタ操作を直接扱えるため、生成されるコードは高速で、ハードウェアの挙動を予測しやすくなります。
加えて、ほぼあらゆる CPU 向けにコンパイラが存在し、移植性が高い点も見逃せません。多くのプログラミング言語の処理系や OS 自体が C で書かれており、現代のソフトウェアの基礎になっています。
#include <stdlib.h>
int main(void) {
int *a = malloc(4 * sizeof(int)); // 確保したら
a[4] = 1; // 領域外! 検出されないまま壊れる
free(a); // 解放も自分の責任
return 0;
}
Language Decision
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
OS・カーネル・ドライバ
型付け: 静的・弱い型付け / 実行方式: コンパイル(ネイティブ) / パラダイム: 手続き型
移植性が高くどこでも動く
手動メモリ管理で安全性が低い(領域外参照など)
First Step
#include <stdio.h>
int main(void) {
printf("Hello, World!\n");
return 0;
}公式ドキュメント