Cプログラミング言語:その重要な歴史と、それが退去を拒否する理由

著者: Roger Morrison
作成日: 25 9月 2021
更新日: 7 5月 2024
Anonim
研究会「トランプ政権1年の評価」(1) 西川賢 津田塾大学教授 2018.1.23
ビデオ: 研究会「トランプ政権1年の評価」(1) 西川賢 津田塾大学教授 2018.1.23

コンテンツ


取り除く:

ほとんどのイノベーションと同様に、Cプログラミング言語は時間の経過とともに多くの変化を遂げましたが、IoT、AI、自動化などの強力なテクノロジーの波でさえ、Cをその卓越した地位から取り除くことができませんでした。

Cは、コンピューティングの歴史の中で最も重要なプログラミング言語の1つです。今日、多くの異なるプログラミング言語が現れ、多くの異なる機能を提供していますが、多くの点で、Cはそのような言語の基礎を提供しました。

Cは必然的に生まれました。

その作成者がCが成し遂げるすばらしいことを思い描いていたかどうかは不明です。ほとんどの技術革新と同様に、Cは時間の経過とともに多くの変更を受けました。おそらく、その最大の成果の1つは、現代のダイナミックな時代でも関連性を維持できることです。

Cの作成者にとって、作成が時代遅れであると見なされたり、いくつかのニッチ領域にのみ有用であると分類されたりしないことを観察することは、充実したものでなければなりません。その代わり、Cは多くの分野に適用できる汎用の強力な言語として認識されるようになりました。 (トッププログラミング言語の詳細については、「プログラミングの専門家によるストレート:今すぐ学ぶのに最適な関数型プログラミング言語」をご覧ください。)

Cの始まり

Cの開発は、元々は創業者の目的ではありませんでした。実際、さまざまな状況と問題が、その創造にとって理想的な状況を作り出しました。1960年代、Nokia Bell Labs(AT&T)の従業員であったDennis Ritchieは同僚と一緒に、多くのユーザーが同時に使用できるオペレーティングシステムの開発に取り組んでいました。

このオペレーティングシステムはMulticsと呼ばれ、多くのユーザーが共通のコンピューティングリソースを共有できるようにすることを目的としていました。 Multicsには多くの利点がありましたが、多くの問題もありました。それは大規模なシステムであり、費用便益の観点からは、費用が便益を上回っているように見えました。徐々に、ベル研究所はプロジェクトから撤退しました。


リッチーがケントンプソンとブライアンカーニガンに別のプロジェクトで参加したときのことです。このプロジェクトには、新しいファイルシステムの開発が含まれていました。 Thompsonは、アセンブリ言語でDEC PDP-7スーパーコンピューター用の新しいファイルシステムを開発しました。

その後、ファイルシステムの作成者は多くの改善を行い、UNIXオペレーティングシステムが誕生しました。 UNIXという名前の起源でさえ、その前身であるMulticsにまでさかのぼることができます。もともと、名前は、Multics(Multiplexed Information and Computer Services)のしゃれとして、Unics(Uniplexed Information and Computing Service)でした。

バグやストレスなし-あなたの人生を破壊することなく人生を変えるソフトウェアを作成するためのステップバイステップガイド

誰もソフトウェアの品質を気にしない場合、プログラミングスキルを向上させることはできません。

後に、UnicsはUNIXに変更されました。 UNIXはアセンブリ言語で記述されており、機械学習には理想的ですが、人間にとっては難しい命題でした。 (機械学習とは?Machine Learning 101を読んで調べてください。)

UNIXの解釈と操作には、FortranとBの言語が使用されました。ここで、C言語を開発するというアイデアが、その作成者の頭の中で形成され始めました。

プログラミング言語の歴史を詳述したこのインフォグラフィックをご覧ください。

Cが開発された理由

B言語は、UNIXの作成者がオペレーティングシステムに直面した課題の中で有用なものでした。 B言語は、Martin RichardsがBCPLから取ったものです。既に述べたように、UNIXはアセンブリ言語で書かれています。 UNIXで小さな操作でも実行するには、多くのページのコードを書く必要がありました。


Bはこの問題を解決しました。アセンブリ言語とは異なり、BはUNIXでタスクを実行するために必要なコード行が大幅に少なくなりました。それでも、Bができないことはたくさんありました。要件が急速に変化することから、Bにはさらに多くのことが期待されていました。

たとえば、Bはデータ型を認識しませんでした。 Bでも、データ型は機械語で表現されていました。 Bもデータ構造をサポートしていません。

何かを変える必要があることは明らかでした。それで、リッチーと彼の同僚は限界を克服することになりました。 C言語は1971-73年に開発されました。 Cはデータ型やデータ構造などの機能を追加しながら、Bが提供するものの多くを保持しているため、Cにはすべての制限がありますが、CにはBが生まれていることに注意してください。

Cの名前は、Bを継承したために選ばれました。初期の頃、CはUNIXを念頭に置いて設計されました。 Cは、タスクの実行とUNIXの操作に使用されました。そのため、パフォーマンスと生産性を念頭に置いて、UNIXコンポーネントの多くはアセンブリ言語からCで書き直されました。たとえば、UNIXカーネル自体は、1973年にDEC PDP-11で書き直されました。

リッチーとカーニガンは、「The C Programming Language」と呼ばれる本の形で彼らの創造を記録しました。 Kernighanは、Cの設計には何の役割も持たないと主張しましたが、有名な「Hello World」プログラムや他の多くのUNIXプログラムの著者でもありました。

Cの進化

時間が経つにつれて、Cはソフトウェアアプリケーションやその他の目的を開発するためにパーソナルコンピューターで使用されるようになりました。

最初の変更(少しでも)は、1983年に米国規格協会(ANSI)がCを標準化するための委員会を設立したときに行われました。言語をレビューした後、他のプログラムとも互換性があるように少し変更しましたCに先行していました。したがって、新しいANSI標準は1989年に誕生し、ANSI CまたはC89として知られています。国際標準化機構(ISO)もCの標準化に貢献しています。

Cは、メモリ管理、関数、クラス、ライブラリなどの重要な機能を豊富な機能セットに追加するにつれて進化してきました。 Cは、世界で最大かつ最も有名なプロジェクトや製品のいくつかで使用されています。

Cは、AMPL、AWK、csh、C ++、C-、C#、Objective-C、Bit C、D、Go、Java、JavaScript、Julia、Limbo、LPC、Perl、PHPなどの多数の言語の開発にも影響を与えています。 Pike、Processing、Python、Rust、Seed7、Vala、およびVerilog。 (言語の詳細については、インターネットを構築した5つのプログラミング言語を参照してください。)

Microsoft Windowsを使用していますか? Windows開発はほとんどCで行われるため、Cに感謝する必要があります。MacOS、Linux、Android、iOS、およびWindows Phoneも同様です。したがって、ほとんどすべての最新のオペレーティングシステムはCに基づいています。 、車両、スマートテレビ、無数のモノのインターネット(IoT)デバイスに見られるものなど。 (モノのインターネット(IoT)がさまざまな産業に与えている影響を読んでください。)

Cのアプリケーションはすべて多すぎてここにリストできませんが、他のアプリケーションには次のものがあります。

  • コンパイラ、データベース、スプレッドシートの開発
  • コンピューターゲームとモバイルゲーム
  • UNIXカーネルの更新
  • 数式の評価
  • ネットワークデバイスの設計

学んだこと

ほとんどの世界で最も優れた発明のように、Cは必然的に生まれました。状況と問題がインスピレーションを与えました。ただし、現在絶滅またはほぼ絶滅している多くのプログラミング言語とは異なり、Cは時の試練に耐えて繁栄しました。

一部の言語は現在、ニッチ言語に分類されています。たとえば、Fortranは現在、エンジニアリングの目的でのみ使用されており、COBOLは関連性を維持するのに苦労しています。 Cは関連性を維持しているだけでなく、他の多くのプログラミング言語の開発にインスピレーションを与えています。

IoT、AI、自動化などの強力なテクノロジーの波でさえ、Cをその卓越した地位から追い出すことに失敗しました。この言語は、今後も長く使用され続けるようです。 (読む
機械学習のための上位5つのプログラミング言語。)