ピクシブ百科事典

C言語

しーげんご

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

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

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

特徴

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

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

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

言語仕様そのものは他の高級言語に比べて非常に簡素であり、また標準のライブラリも貧弱。他言語では標準化されている多くの機能を外部のライブラリに依存する必要がある。JavaC#のようなガベージコレクション(使っていないメモリの自動解放機能)を持っておらず、メモリ管理の煩わしさも欠点に挙げられる。

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

派生言語


拡張言語


関連タグ

プログラミング言語

pixivに投稿された作品 pixivで「C言語」のイラストを見る

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

コメント