5

ウィキペディアで読む:

「高レベルと低レベルという用語は本質的に相対的なものです。数十年前、C 言語や類似の言語は、式の評価、パラメータ化された再帰関数などの概念をサポートしていたため、ほとんどの場合「高レベル」と見なされていました。データ型と構造, アセンブリ言語は「低レベル」と見なされていました. 今日の多くのプログラマーはCを低レベルと呼ぶかもしれません.Cには大きなランタイムシステムがなく(ガベージコレクションなどはありません)、基本的にスカラー演算のみをサポートし、.ダイレクト メモリ アドレッシングを提供するため、アセンブリ言語やマシン レベルの CPU やマイクロコントローラーと容易に融合できます。」

http://en.wikipedia.org/wiki/High_level_language

これは正確にはどういう意味ですか?他のプログラミング言語が提供し、C が提供しない操作は何ですか?

4

1 に答える 1

16

記事の文脈とトピックを考えると、この記事が言及しているのは、C 言語自体で定義されている「スカラー」という用語です。C 言語では、算術型とポインター型をまとめてスカラー型と呼びます (6.2.5/21 を参照)。日常の言葉では、これらの型が基本型または組み込み型と呼ばれることがよくあります (ただし、適切な正式な用語はscalarです)。ポイントは、スカラー型は、ハードウェアによってすぐに (またはほとんどすぐに) サポートされる型であることを意図しているということです。C のほとんどの非概念的な操作は、スカラー型とスカラー型のみで動作します。

C 言語の歴史を見ると、C の初期のバージョンは非常に制限的なスカラーであったため、ある構造体オブジェクトを別の構造体オブジェクトに代入することさえできなかったことがわかります (またはそれを関数に渡したり、から返したりすることもできません)。値による関数)。コア言語で構造体をコピーする機能は、後に C に追加されました。そして今日に至るまで、コア言語全体で実質的に唯一の非スカラー操作のままです。

一方、C++ は、他の高水準言語と同様に、定義上scalarではないユーザー定義型や、ハードウェアから直接サポートされていない他の型に対する操作をサポートしています。

PS いいえ、記事がしようとしている点は、スカラー操作とは対照的に、ベクトル操作とは何の関係もありません。もちろん、ベクトル演算のサポートは、言語のレベルとは完全に直交しています。低水準言語だけでなく、高水準言語でもベクトル演算を行うことができます。スカラーという用語は、上で説明した意味で使用されます。

于 2010-02-28T04:36:56.463 に答える