ピクシブ百科事典は2023年6月13日付でプライバシーポリシーを改定しました。改訂履歴

C言語

しーげんご

プログラミング言語のひとつ。この言語仕様や文法からから派生したプログラミング言語やスクリプト言語も多くある。
目次 [非表示]

概要

1972年にAT&Tベル研究所のDennis MacAlistair Ritchie氏(1941年9月9日~2011年10月12日)とBrian Wilson Kernighan氏がUNIXの移植性を高めるために創ったプログラミング言語


本来はOSやデバイスドライバなど、ハードウェア寄りのソフトウェアへの適用を得意とするが、その移植性の高さからアプリケーションソフトウェアの開発にも幅広く適用されている。言語規格を特定用途向けやオブジェクト指向プログラミングに拡張したものや、C言語の文法による特徴を採用し類似した文法を使用している言語も多い。


特徴

OSのカーネル向けの低レベル(ハードウェア寄り)の記述ができることが特徴。プログラマにできることを制限しないC言語のスタイルはハッカーにとりわけ好まれ、適用範囲が広い反面、バッファオーバーフローなどのセキュリティホールの元凶ともなっている。


プログラミング言語としての自由度が高いため、良くも悪くも「何でも出来てしまう」言語。記述スタイルの自由度も高く、一見アスキーアート仕立てになっているものなど、到底プログラミングコードに見えないコードも書く事ができる。半面、メンテナンスやデバッグが煩雑になりがちである。


このC言語の設計思想は、高レベルな記述に特化してプログラマにできることを制限し、冗長な記述を強制することでコードを読みやすくするCOBOLとは対極といえる。初心者にとってのとっつきやすさはあまり考えられておらず、1990~2000年代には大学の授業などでC言語を学ばされプログラミングに挫折する人も多かった。


言語仕様そのものは他の高級言語に比べて非常に簡素であり、また標準のライブラリも貧弱。他言語では標準化されている多くの機能を外部のライブラリに依存する必要がある。JavaC#のようなガベージコレクション(GC、使っていないメモリの自動解放機能)を持っておらず、メモリ管理の煩わしさも欠点に挙げられる。ただし、GCはいつ発生するか予測不能なので、都合が悪いタイミングにGCが発生しないようチューニングに手間をとられるという本末転倒な事態も起こりうる。C言語でも外部ライブラリを使えばGCを使えないこともないが、採用されることは少ない。


あらゆる環境で幅広く使われるが、OSやデバイスドライバのほか、動作環境の資源制約が厳しい組込みシステムで特に多用される。現在はJavaが過去にC言語が使われたような環境で広く使われるようになったが、過去に蓄積されたC言語の資産は非常に多く、C言語習得の必要性が無くなったわけではない。


派生言語


拡張言語


関連タグ

プログラミング言語

関連記事

親記事

プログラミング言語 ぷろぐらみんぐげんご

子記事

兄弟記事

pixivに投稿されたイラスト pixivでイラストを見る

pixivに投稿された小説 pixivで小説を見る

このタグがついたpixivの作品閲覧データ 総閲覧数: 22786

コメント

問題を報告

0/3000

編集可能な部分に問題がある場合について 記事本文などに問題がある場合、ご自身での調整をお願いいたします。
問題のある行動が繰り返される場合、対象ユーザーのプロフィールページ内の「問題を報告」からご連絡ください。

報告を送信しました