2022年09月29日 08時15分 公開
特集/連載

K&R版Cとは? 「C」を“革新的プログラミング言語”にした立役者いまさら聞けない「C」の歴史【第2回】

プログラミング言語「C」の登場初期に、その革新性を広く知らしめるきっかけになったのが「K&R版C」の存在だ。K&R版Cとは何なのか。そもそも「K」と「R」とは。

[Twain TaylorTechTarget]

 通信技術の研究開発を手掛けるベル研究所(Bell Laboratories)は1973年に、プログラミング言語「C」を開発した。Cのコンパイラ(ソースコードを実行可能ファイルに変換するプログラム)は、ベル研究所内のさまざまなプログラムを実装できるほど強力だった。Cで記述されたOS「UNIX」は、研究指向の学術機関や政府機関が使用するようになった。

革新的だった「K&R版C」

 1978年、コンピュータ研究者のデニス・リッチー氏とブライアン・カーニハン氏は書籍『The C Programming Language』(プログラミング言語C)を出版した。この書籍はCの基準が整うまで、一般的な規約としての役割を果たした。The C Programming Languageには、カーニハン氏とリッチー氏の名を冠した「K&R」という略称がある。K&Rを標準としたバージョンのCは「K&R版C」とも呼ばれる。

 K&R版Cは、次の革新的な機能を盛り込んだ。

  • 標準入出力を使うためのライブラリ(プログラム部品群)
  • データの種類ごとに規約を定めたデータ型の「unsigned」と「long int」
    • unsignedは、符号なしの整数を扱うためのデータ型。
    • long intは、整数を扱う「int」よりも大きな整数を扱うためのデータ型。
  • 複合代入演算子
    • 演算子の左側の変数と右側の値を使って計算をした結果を、左側の変数に代入することを指示する演算子。計算として加算を実行する「+=」などがある。
  • 呼び出し元に渡す戻り値を持たない関数
    • この場合、戻り値のデータ型に「void」を指定する。
  • 構造体
    • 異なるデータ型をまとめて扱えるようにしたデータ構造。
  • 列挙型
    • 特定の定数をまとめた集合体。
  • 共用体
    • 同じメモリ領域に異なるデータ型を格納できるデータ型。

 第3回はCの標準化の歴史を整理する。

TechTarget発 先取りITトレンド

米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。

ITmedia マーケティング新着記事

news067.jpg

Xにおける「バレンタイン」を含む言及数は過去4年間で最多だがUGC数は最少 どういうこと?
ホットリンクは、X(旧Twitter)に投稿されたバレンタインに関するUGCについて調査しまし...

news061.jpg

Expedia幹部が語る旅行体験向上のためのAI活用とグローバルブランド戦略
Expediaは、日本での18周年を記念してブランドを刷新した。テクノロジーへの投資を強化し...

news046.png

B2Bマーケティング支援のFLUED、国内のEC/D2C企業20万社のデータベース「StoreLeads」を提供開始
B2Bマーケティング・営業DXを支援するFLUEDは、カナダのLochside Softwareが提供するECサ...