2013-06-30 3 views
6

なぜいくつかのC++の名前は短く、時には理解しにくい場合があります。strcmpcoutcinなどです。しかし、Javaのような他の言語では短くはありません。それは時間、記憶、または何を節約しますか?なぜ標準C++ライブラリのいくつかの識別子が短いのですか?

+5

人々は怠け者であり、怠け者は世界を動かすからです。 (: – Rubens

+0

しかし、読みやすさは重要ではありません。 –

+5

C89より前の標準では、外部識別子の重要な部分は6文字でしたので、リンカーは残りの文字を無視することができました。 – dasblinkenlight

答えて

11

これは、主にCから継承された標準C++ライブラリの部分に適用されます。C言語のC89より前の標準では、外部識別子の重要な部分は6文字に制限されていました。リンカーは残りの文字を無視することができました。そのため、標準Cライブラリでは、識別子の長さを6文字に制限しています。 C++は、そのライブラリを "卸売り"という形で組み込みました。

+0

coutとcinについては、coutをエコーし​​てcinを読むことができませんでした。 –

+2

@Motubet私はCライブラリの "悪影響"としてそれらを書きます:Cでは、標準のファイル記述子は 'stdin'、' stdout'、 'stderr'と呼ばれます。 C++のデザイナー(Stroustrup自身)は 'std'("標準 ")を' c'( "character")に置き換え、古いサフィックスを保持していました。 – dasblinkenlight

0

C++はアセンブラで作業していたプログラマによって長い間前に構築されたCから継承しています。

しかし、私はそれがプログラマーの数学的背景に深く関わっていると思います。英語の用語を使用することで言語を理解しやすくする初期の試みがありましたが、COBOLとSQLはおそらく唯一の生存者です。しかし、プログラミング言語の言葉は非常に正確な意味を持っているので、コロンではなく「SELECT」を使用することは少量にしか役立たず、クエリの残りの部分を書くためにSQLの詳細をすべて知る必要があります。

短い識別子は、経験豊富なプログラマーがコードを理解しやすくするために、構造の詳細を一目で把握し解析することができます。 C17-C18から科学論文を読んで、単一の方程式で何を書くかを説明するために散文のページを使用する必要がある場合は、理解するでしょう。

1

古いC標準ライブラリから派生したC++標準ライブラリの一部があります。古いC言語の標準ライブラリは、他の言語でInput/Outputなどの言語に組み込まれている機能を使って基本機能の一部を提供していた古いK & Rライブラリから派生しました。

Rationale for the ANSI C Programming Languageのこのセクションでは、C識別子の命名規則について説明しています。

C言語がコンパイルされ、コンパイラのマシンコード出力が実際のアプリケーションにリンクされています。リンクを行うソフトウェアは、通常、オペレーティングシステムベンダが提供する標準ツールの一部です。さまざまなベンダーが提供している利用可能なリンカーアプリケーションを調査した結果、最も基本的なものは、リンカーによって処理可能な外部IDに対して6文字で提供されていました。ただし、6文字の制限を指定すると、Cコンパイラで使用できるターゲットコンピュータのリストが大幅に増えました。

リンカの限界にとどまり、Cプログラマは他の言語で書かれたソフトウェアでも使用できるCプログラムと関数ライブラリを書くことができました。また、他の言語で書かれたライブラリの使用はCプログラマー。

関連する問題