レコード (計算機科学)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/13 16:37 UTC 版)
使用法
- 各フィールドの位置、型、名前を含む、新しいレコード型の宣言。
- 特定のレコード型を持つ変数と値の宣言。
- 指定されたフィールド値から、指定されたフィールド名を使用してレコード値を作成。
- レコードの明示的な名前を持つフィールドの選択。
- レコード変数へのレコード値の代入。
- 2つのレコードを比較して等しいことを確認。
- レコードの標準ハッシュ値の計算。
レコード値からフィールドを選択すると、値が生成される。
一部の言語は、レコードのすべてのフィールド、または少なくとも参照できるフィールドを列挙する機能を提供する。この機能は、デバッガー、ガベージコレクター、シリアル化などの特定のサービスを実装するために必要となる。ある程度のポリモーフィズムが必要となる。
メモリ内の表現
メモリ内のレコードの表現は、プログラミング言語によって異なる。通常、フィールドは、レコードタイプで宣言されているのと同じ順序で、メモリ内の連続した位置に格納される。これにより、2つ以上のフィールドが同じメモリワードに格納される可能性がある。実際、この機能は、単語の特定のビットにアクセスするためのシステムプログラミングでよく使用される。一方、ほとんどのコンパイラは、マシンによって課せられる配置の制約に準拠するために、プログラマからは見えない余白フィールドを追加する。たとえば、浮動小数点フィールドは1ワードを占める。
一部の言語では、フィールド(および場合によっては名前やタイプ)を指すアドレスの配列としてレコードを実装する。オブジェクト指向言語のオブジェクトは、特に複数クラスの継承を許可する言語では、かなり複雑な方法で実装される。
自己定義のレコード
「自己定義レコード」は、レコード型を識別し、レコード内の情報を見つけるための情報を含むレコード型である。要素のオフセットが含まれる場合がある。したがって、要素は任意の順序で格納することも、省略しても良い[6]。 あるいは、それぞれが要素識別子を含むレコードのさまざまな要素は、単純に任意の順序で互いに続けて配置される。
注釈
- ^ 月は"Jan", "Feb", ...のような文字列で表現することも可能だが、英語圏でしか通用せず、また文字列は記憶容量を余計に必要とし、プログラミング言語によって実装形態も異なるため、レコード表現としては数値型のほうが好まれる。曜日 (day of week) に関しても、カレンダーから計算可能であるため、レコードのフィールドとして含むことは少ない。
出典
- ^ “Computer Science Dictionary Definitions”. Computing Students. 2018年1月22日閲覧。
- ^ Radványi, Tibor (2014). Database Management Systems. Eszterházy Károly College. p. 19 2018年9月23日閲覧。
- ^ Kahate, Atul (2006). Introduction to Database Management Systems. Pearson. p. 3. ISBN 978-81-317-0078-5 2018年9月23日閲覧。
- ^ Connolly, Thomas (2004). Database Solutions: A Step by Step Guide to Building Databases (2nd ed.). Pearson. p. 7. ISBN 978-0-321-17350-8
- ^ Felleisen, Matthias (2001). How To Design Programs. MIT Press. pp. 53, 60. ISBN 978-0262062183
- ^ Kraimer. “EPICS Input / Output Controller (IOC) Application Developer's Guide”. Argonne National Laboratory. 2015年11月25日閲覧。
- レコード (計算機科学)のページへのリンク