私はWin32apiATOM
でこのタイプに遭遇しましたが、Acrobat API にもASAtomがあります。
私が知る限り、アトムはハッシュ テーブルのキーであり、通常は文字列で構成されており、アプリケーション間でデータをすばやく検索して共有できます。これは正しいですか、原子タイプの語源は何ですか?
編集
広範囲に検索した結果、 Prologはアトムを使用していることに気付きました。したがって、この単語には何らかの由来があるはずです。単一のデータを参照していたようです。
ATOM は、16 ビットの Windows ハンドルに似たプリミティブです。その値は、ユーザー モードに対して完全に不透明です。これはポインタでもインデックスでもありません。
typedef unsigned short ATOM;
名前の語源については、古い Microsoft Win32 API のドキュメントで、「 A access to MemoryATOM
」などの頭字語であると見たことがあることを知っています。これは、システム内の内部データ構造を表す単純な数値識別子 (別の名前は「ハンドル」) に使用される用語です。
明らかな理由から、ユーザーにこれらの構造への直接ポインターを与えるのは賢明ではありません。1 つはカーネル空間に存在するため、もう 1 つはカプセル化に違反しているためです。ユーザーは、それに属していないメモリを解放したり、上書きしたり、その他の愚かなアイデアを実行したりできます。そのため、オペレーティング システムは単純に代わりの番号タグ (ATOM) を提供し、それを使用してシステムからデータを要求できます。また、ユーザーは、巨大なデータ構造全体ではなく、小さな数値を渡す方が高速です。ユーザーは、メモリ割り当てなどを気にする必要はありません。または、プログラムをクラッシュさせる可能性がある、無効になったポインターを介して一部のデータにアクセスする必要もありません。
「atom」という用語について私が最初に見つけたものは、Lisp プログラミング言語 ( source ) のものです。しかし、元々は数理論理から来ているのだろう。プログラミングでは、それらはシンボルとも呼ばれ、最も単純な形式は名前整数です (C の列挙型がその例です)。ただし、これらは多くのプログラミング言語で広く使用されており、Win32 API および Acrobat API では、テーブル内の文字列の識別子です。
また、Mehrdadが指摘するように、ギリシャ語の元の意味は「分割できない」であるため、これ以上分解できないプリミティブ データ型を意味します。