JP3266914B2 - データ管理装置 - Google Patents

データ管理装置

Info

Publication number
JP3266914B2
JP3266914B2 JP08886891A JP8886891A JP3266914B2 JP 3266914 B2 JP3266914 B2 JP 3266914B2 JP 08886891 A JP08886891 A JP 08886891A JP 8886891 A JP8886891 A JP 8886891A JP 3266914 B2 JP3266914 B2 JP 3266914B2
Authority
JP
Japan
Prior art keywords
array
type
data
size
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP08886891A
Other languages
English (en)
Other versions
JPH04320534A (ja
Inventor
弘文 小松原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP08886891A priority Critical patent/JP3266914B2/ja
Publication of JPH04320534A publication Critical patent/JPH04320534A/ja
Application granted granted Critical
Publication of JP3266914B2 publication Critical patent/JP3266914B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、配列を管理し実行す
るデータ管理装置に関する。
【0002】
【従来の技術】この種の装置では、配列を作成し、この
作成した配列にアクセスすることにより、所定のデータ
の書き込み及び読出しを行うことができる。
【0003】このような装置がアクセス可能な配列とし
ては、特定の型を要素とし、配列を作成する時にそのサ
イズを指定できる配列であって、サイズの範囲内で有効
範囲を指定する機能を有し、また、要素の型の異なる配
列に対して、データの読み書き、サイズの問合わせ、有
効範囲の問合わせや指定方法等を、統一的方法で行うこ
とができる、配列がある。
【0004】例えば、要素の型が16bit 、サイズ(要
素の数)が10、有効範囲が5となっている配列に対し
て、16bit 単位でデータの読み/書きや有効範囲の問
合わせを行ったり、あるいは、配列の型変換をして8bi
t 単位でデータの読み/書きや有効範囲の問合わせを行
うことができる。
【0005】また実際に格納するデータのサイズが、予
め指定した配列のサイズを超えるような場合には、実際
に格納するデータのサイズを満足する別の配列を作成
し、その別の配列に、前記予め指定した配列の内容をコ
ピーし、さらにその予め指定した配列に格納されずに溢
れたデータを格納することで、全てのデータを格納する
ことが可能となる。
【0006】
【発明が解決しようとする課題】ところが、上記従来の
データ管理装置では、配列の型変換を行う場合は、元の
配列(例えば要素の型が16bit の配列)の内容をコピ
ーして別の配列(例えば要素の型が8bit の配列)を作
成し、該作成した配列に対してでなければ、異なった型
(この例では要素の型が8bit )でアクセスすることが
できなかった。
【0007】さらに、データをコピーして型変換を行っ
た場合には、1:型変換された配列に対する操作は、元
の配列のデータに対する直接の操作にはならず、元の配
列の内容には反映されなかった。2:元の配列が保持し
ている有効範囲の情報は、型変換された配列では失われ
ていた。3:元の配列が保持しているサイズ情報は、型
変換を行っても指定された要素の型単位にはならず、固
定であった。例えば、要素の型が16bit 、サイズ情報
が10の配列に対して、要素の型の単位が8bit となる
ように型変換した場合、サイズ情報は10のまま固定で
あり、このことは全てのデータをコピーしていないこと
になる。なお、この場合、全てのデータをコピーするの
であれば、サイズ情報は20となるはずである。
【0008】従って、同一のデータに対して、異なる型
で参照/変更することができず、また型変換された配列
に対して、配列に対して行える種々の操作を正確に行う
ことが出来ないという難点があった一方、配列のサイズ
を超えてデータを格納するときに別の配列を作成する場
合にあっては、予め指定した配列に対する操作と、その
予め指定した配列のサイズを超える場合に作成された別
の配列に対する操作とに別れることになり、よって別の
配列が作成された場合はその別の配列に対して操作を行
わなければならず、配列に対する操作が煩雑となり管理
も複雑になっていた。
【0009】この発明は、上記実情に鑑みてなされたも
のであり、配列の同一データに対して異なる配列の型で
データの参照/変更を行うことができるとともに、型変
換された配列に対しても、配列に対して行える種々の操
作を正確に行うことのできるデータ管理装置を提供する
ことを目的とする。
【0010】またこの発明は、予め指定した配列のサイ
ズを超えるデータを格納する際に、その配列のサイズを
拡張することにより同一の配列に対する操作を可能とし
たデータ管理装置を提供することを目的とする。
【0011】
【課題を解決するための手段】上記目的を達成するた
め、第1の発明に係るデータ管理装置では、配列の作成
をすべき旨と、第1の配列の要素の型を示す型情報およ
び該要素の数を示す要素数情報とを指定する第1の型指
定手段と、該第1の型指定手段により指定された型情報
および要素数情報に基づいて当該型情報に対応する型に
依存しない新たな要素の型を単位とした要素の数を算出
し、この算出した要素の数と当該新たな要素の型とに基
づいた配列を作成する配列作成手段と、該配列作成手段
により作成された配列を記憶する配列記憶手段と、配列
へのアクセスをすべき旨と、第2の配列の要素の型を示
す型情報とを指定する第2の型指定手段と、該第2の型
指定手段により指定された第2の配列についての型情報
に基づいて、前記配列記憶手段に記憶されている配列へ
のアクセスを行うデータ参照手段とを具備したことを特
徴とする。
【0012】また、第2の発明に係るデータ管理装置で
は、配列の作成をすべき旨と、第1の配列の要素の型を
示す型情報、該要素の数を示す要素数情報および有効範
囲を示す有効範囲情報とを指定する第1の型指定手段
と、該第1の型指定手段により指定された型情報、要素
数情報および有効範囲情報に基づいて、当該型情報に対
応する型に依存しない新たな要素の型を単位とした要素
の数および有効範囲を算出すると共に、この算出した要
素の数と当該新たな要素の型とに基づいた配列を作成す
る配列作成手段と、該配列作成手段により作成された配
列と、前記配列作成手段により算出された要素の数を示
す情報および有効範囲を示す情報とを記憶する配列記憶
手段と、配列へのアクセスをすべき旨と、第2の配列の
要素の型を示す型情報とを指定する第2の型指定手段
と、該第2の型指定手段により指定された型情報と前記
配列記憶手段の記憶内容とに基づいて、当該記憶されて
いる配列へのアクセスを行うデータ参照手段とを具備し
たことを特徴とする。さらに、第3の発明に係るデータ
管理装置では、配列の作成をすべき旨と、第1の配列の
要素の型を示す型情報、該要素の数を示す要素数情報
と、当該配列についての拡張可能な拡張サイズ情報とを
指定する第1の型指定手段と、該第1の型指定手段によ
り指定された型情報および要素数情報に基づいて、当該
型情報に対応する型に依存しない新たな要素の型を単位
とした要素の数を算出すると共に、この算出した要素の
数と当該新たな要素の型とに基づいた配列を作成する配
列作成手段と、該配列作成手段により作成された配列お
よび前記第1の型指定手段により指定された拡張サイズ
情報を記憶する配列記憶手段と、配列へのデータの書き
込みをすべき旨と、第2の配列の要素の型を示す型情報
およびデータとを指定する第2の型指定手段と、該第2
の型指定手段により指定されたデータを前記配列記憶手
段に記憶されている配列に格納するときに、当該データ
量が当該配列のサイズを超えるような場合は、前記配列
記憶手段に記憶されている拡張サイズ情報に基づいて当
該配列のサイズを拡張すると共に、該拡張されたサイズ
に対応する領域に、拡張前の前記配列のサイズを超えた
データ量分のデータを格納する処理手段とを具備したこ
とを特徴とする。
【0013】
【作用】第1の発明に係るデータ管理装置では、第1の
配列の型情報及び要素数情報に基づいて、当該型情報に
対応する型に依存しない新たな要素の型を単位とした要
素の数を算出し、この算出した要素の数と当該新たな要
素の型とに基づいた配列を作成すると共に、この作成さ
れた配列に対して指定された第2の配列の型情報に基づ
いてアクセスする。この第1の発明によれば、特定の配
列の同一データに対して、異なる配列の型で読み出し/
書き込みを行うことができる。
【0014】また、第2の発明に係るデータ管理装置で
は、第1の配列の型情報、要素数情報及び有効範囲情報
に基づいて、第1の配列の型情報に対応する型に依存し
ない新たな要素の型を単位とした要素の数および有効範
囲を算出し、この算出した要素の数と当該新たな要素の
型とに基づいた配列を作成すると共に、この作成された
配列に対して前記算出された要素の数、有効範囲および
指定された第2の配列の型情報に基づいてアクセスす
る。この第2の発明によれば、特定の配列の同一データ
に対して、異なる配列の型で読み出し/書き込み、ある
いは有効範囲の問い合わせを行うことができる。さら
に、第3の発明に係るデータ管理装置では、第1の配列
の型情報及び要素数情報に基づいて、当該型情報に対応
する型に依存しない新たな要素の型を単位とした要素の
数を算出し、この算出した要素の数と当該新たな要素の
型とに基づいた配列を作成すると共に、この作成された
配列に指定されたデータを格納するときに、当該データ
量が当該配列のサイズを超えるような場合は、指定され
た拡張サイズ情報に基づいて当該配列のサイズを拡張
し、該拡張されたサイズに対応する領域に、拡張前の前
記配列のサイズを超えたデータ量分のデータを格納す
る。この第3の発明によれば、上記第1又は第2の発明
の作用効果に加えて、配列のサイズを拡張する旨を指定
することにより、予め指定された配列のサイズを超える
データ量のデータを格納する際には、当該配列のサイズ
を拡張することができ、しかも拡張された後の配列に対
しても、拡張前の配列に対する操作と同様の操作で作業
を継続できる。
【0015】
【実施例】以下、第1の発明の実施例を図1乃至図20
を参照して説明する。
【0016】図1は、第1の発明に係るデータ管理装置
の一実施例を機能ブロック図で示したものである。この
実施例に示した装置は、C言語で記述されたプログラム
(関数)を実行して、配列の作成及び配列へのアクセス
を行う。勿論他のプログラム言語で記述されたプログラ
ムを実行して、配列の作成及び配列へのアクセスを行う
ようにしても良い。
【0017】さて図1において、データ管理装置は、キ
ーボードから構成され、プログラムやデータの入力、配
列の作成やデータ参照/保存などの指令を与える入力部
10と、プロセッサから構成され、入力部10からの入
力情報に基づいて、配列の作成、作成された配列に対す
るアクセスを行う制御部20と、RAMなどのメモリか
ら構成され、作成された配列を記憶する配列記憶手段3
0と、ディスプレイから構成され、制御部20によるア
クセス結果などの出力情報を出力する出力部40とを有
して構成されている。
【0018】配列記憶手段30は、図2に示すように、
ヘッダー部31と、実際の要素を管理するデータ記憶部
32とから構成されており、ヘッダー部31には、次に
説明する1〜6の6つの領域が設けられている。
【0019】すなわち、 1:後述する配列作成手段によって算出された配列のサ
イズを記憶する「byte-size 」。 ここには、byte-size 単位で情報が保持される。 2:型がbit 単位の場合、端数のbit 数を記憶する「ad
d-bits」。 ここには、例えば、bit 単位の型で20bit (サイズ)
の配列が作成された場合は、2byte+4bit であるの
で、「4」が保持される。 3:有効範囲(fillpointer )の有無を保持する「fill
pointerp」。 4:有効範囲を保持する「fillpointer-size」。 ここには、byte-size 単位で情報が保持される。 5:型がbit 単位の際に端数のbit の有効範囲を保持す
る「fill-add-bits 」。 ここには、例えば、bit 単位の型でサイズが20bit の
配列の場合では、有効範囲が20のときは、「fillpoin
ter-size」に値「2」がセットされることになるので値
「4」が、有効範囲が10のときは、「fillpointer-si
ze」に値「1」がセットされることになるので値「2」
が、それぞれ保持される。 6:データ記憶部32へのポインタを保持する「data-p
ointer」。
【0020】ここで再度、図1を参照して説明すると、
制御部20は、型指定手段201と配列作成手段202
とデータ参照手段203とを有している。
【0021】型指定手段201は、配列の作成の際に、
どの型を単位にして配列を作成するのか、つまり配列の
要素の型、配列のサイズ、及び有効範囲の有無とその値
を配列作成手段202へ通知し、また、データの参照/
保存等をする際に、どの型でアクセスするのかをデータ
参照手段203へ通知する。
【0022】配列作成手段202は、型指定手段201
から配列の要素の型と配列のサイズ及び有効範囲の有無
とが指定された場合は、該指定された型と配列のサイズ
とに基づいて、指定された型に依存しない固定の型(こ
の実施例では8bit とする)を単位としたサイズを算出
し、配列記憶手段30のデータ記憶部32に必要な領域
を確保する。
【0023】データ参照手段203は、型指定手段20
1から指定された型と配列記憶部30のヘッダー部31
から得た情報とに基づいて、次に説明する計算を行って
データ記憶部32に対してアクセスする。
【0024】すなわち、 [配列からのデータ読出しの場合] (1)型指定手段201から関数get-array 、引数とし
ての配列、型、index が指定された際に、指定された配
列の型単位で数えて、index (インデックス)番目に管
理されているデータを出力する。 (2)また、指定された型とindex とから、実際にアク
セスする配列記憶手段30のデータ記憶部32の位置を
計算し、その位置の配列の要素から、指定された型の大
きさだけデータを参照する。
【0025】[配列へのデータの書き込みの場合] (1)型指定手段201から関数put-array 、引数とし
ての配列、型、index 及びnewvalueが指定された際に、
指定された配列の型単位で数えて、index 番目にnewval
ue(つまりデータ)を書き込み、newvalueを出力する。 (2)また、指定された型とindex とから、実際にアク
セスする配列記憶手段30のデータ記憶部部32の位置
を計算し、その位置の配列の要素に、指定された型の大
きさだけnewvalueをストアする。
【0026】[配列の有効範囲を問合わせる場合] (1)型指定手段201から関数array-size、引数とし
ての配列、型が指定された際に、配列の有効範囲を、指
定された型単位で数えて出力する。 (2)また、指定された型とヘッダー部31の「byte-s
ize 」のヘッダー情報とに基づいて、指定された型の単
位で測定したサイズ(byte-size 単位)を算出する。但
し、有効範囲の指定があった場合は、その有効範囲を優
先させる。つまり指定された有効範囲内で、指定された
型の単位で測定したサイズ(byte-size 単位)を算出す
る。
【0027】次に、上述した構成において、データ管理
装置の配列の作成、配列に対するアクセス処理を、具体
例を挙げて説明する。
【0028】ここに、配列の作成及び配列へのアクセス
処理において、次に説明する(1)〜(6)に示す事項
が前提にあるものとする。
【0029】(1)今、3つのtypeの配列を考える。 a:要素の型がbit 単位の配列をbit-array で表現す
る。 b:要素の型がbyte(8bits)単位の配列を8bit-array
で表現する。 c:要素の型が2byte (16bits)単位の配列を16bit-
array で表現する。 (2)型指定の方法は、変数の前に“::”の記号を付
けるものとする。 (3)配列の作成は、create-type-array (create-16b
it-array)(関数)でサイズ、有効範囲を各引数にと
る。 (4)データ参照の際には、データの読出し/書き込
み、及び有効範囲の問い合わせに応じて、次に示すよう
な処理を行う。 (a)データ読み出しの場合は、配列からデータを取出
す関数get-array に、配列、index を各引数として、値
を返す。 (b)データ書き込みの場合は、配列にデータを入れる
関数put-array に、配列、index を各引数として、newv
alueを返す。 (c)有効範囲の問合せの場合は、列の有効範囲を問い
合わせる関数array-sizeに、配列を引数として、その有
効サイズを返す。
【0030】さて、配列を作成すべき旨の情報として、
入力部10から図3に示されるプログラム300が入力
されると、型指定手段201は、入力されたプログラム
300を解釈して、「関数create-16bit-array、配列の
サイズ=2、有効範囲=2」の情報を、配列作成手段2
02に通知する。
【0031】なお、図3に示したプログラム300にお
いて、変数a1は16bit-array 型の変数と指定するもの
とする。また、プログラムはC言語で記述するようにし
ているので、上記プログラム300は関数(引数、…、
引数)の型になっている。以後、入力部10から入力さ
れるプログラムは関数(引数、…、引数)の型であるも
のとする。
【0032】ところで、配列作成手段202では、入力
された配列の要素の型(16bit )と配列のサイズ(2
=要素の数)とに基づいて、指定された型(16bit )
に依存しない固定の型(つまり8bit の型)を単位とし
たサイズ(byte-size 単位)を算出し、この算出したサ
イズに対応する記憶領域を配列記憶手段30のデータ記
憶部32に確保する。この場合、データ記憶部32に
は、図4に示すように、16bit ×2=32bit =4by
te-size の配列を記憶するための記憶領域が確保され
る。また配列記憶手段30のヘッダー部31には、「by
te-size 」に「4」が、「add-bits」に「0」が、「fi
llpointerp」に有効範囲が指定されている旨の情報(例
えば“1”)が、「fillpointer-size」に「4」が、そ
れぞれヘッダー情報として保持される。
【0033】次に配列へのデータ書き込み情報として、
入力部10から図5に示されるプログラム401、40
2が入力されると、型指定手段201は、入力された各
プログラムを解釈して、「関数put-array 、配列=a
1、index =0、newvalue=65535 」、及び「関数put-
array 、配列=a1、index =1、newvalue=65535 」
の情報をデータ参照手段203に通知する。
【0034】データ参照手段203では、入力された上
記情報に基づいて、関数put-arrayに、配列、index 、n
ewvalueを各引数として、newvalueを返す。この場合、
配列は図6に示される内容となる。
【0035】続いて有効範囲の問い合わせ情報として、
入力部10から図7に示されるプログラム500、図8
に示されるプログラム600、図9に示されるプログラ
ム700がそれぞれ入力された場合、型指定手段201
は、それぞれのプログラムに対応して、「関数array-si
ze、配列=a1」、「関数array-size、配列=8bit-arr
ay::a1」、「関数array-size、配列=bit-array
::a1」の情報を、データ参照手段203に通知す
る。
【0036】なお、配列(8bit-array::a1)及び配
列(bit-array ::a1)は、要素の型が16bit の配
列(この例では、配列a1)に対して、それぞれ8bit
、1bit 単位でアクセスすることを示す型指定を表し
ている。
【0037】ところで、データ参照手段203では、入
力された上記情報に基づいて、関数array-sizeに、配列
を引数として、その有効範囲の値を返す。つまり、デー
タ参照手段203は、配列の有効範囲を、指定された型
の単位で数えて出力する。
【0038】例えば、プログラム500(図7参照)が
入力された場合においては、指定されている型は16bi
t であるので、有効範囲は、図10に示されるように4
byteの配列を16bit 単位で数えるので「2」となる。
同様に、プログラム600が入力された場合においては
指定されている型は8bit であるので、有効範囲は、図
11に示されるように8bit 単位で数えるので「4」と
なり、プログラム700においては指定されている型は
1bit であるので、有効範囲は、図12に示されるよう
に1bit 単位で数えるので「32」となる。
【0039】次に、データの書き込み情報として、入力
部10から図13に示されるプログラム800が入力さ
れると、型指定手段201は、プログラム800を解釈
して「関数put-array 、配列=bit-array ::a1、in
dex =0、newvalue=0」をデータ参照手段203に通
知する。
【0040】データ参照手段203では、入力された上
記情報に基づいて、関数put-arrayに、配列、index 、n
ewvalueを各引数として、newvalueを返す。つまり、指
定された配列(bit-array ::a1)の型単位(1bit)
で数えてindex値「0」で指される配列の要素(領域)
にnewvalue(値「0」)を書き込む。このとき、図6で
示される配列の内容は、図14に示すようにindex 値
「0」で指される配列の要素内の値が“0”に更新され
る。
【0041】最後に、図14に示した配列a1の状態
で、入力部10から図15で示されるプログラム90
0、図16で示されるプログラム1000、図17で示
されるプログラム1100がそれぞれ入力された場合、
データ参照手段203には、型指定手段201からの、
それぞれのプログラムに対応する、「関数get-array 、
配列=bit-array ::a1、index =0」、「関数get-
array 、配列=8bit-array::a1、index =0」、
「関数get-array 、配列=a1、index =0」の情報が
入力されることになる。そして、データ参照手段203
は関数get-array に、配列、index を各引数として、値
を返す。
【0042】すなわち、上記各プログラムがそれぞれ入
力された場合においては、それぞれ配列(bit-array
::a1)の型単位(1bit)、配列(8bit-array::
a1)の型単位(8bit)、配列(a1)の型単位(16bi
t )で数えてindex 値「0」で指される配列の要素に管
理されているデータを出力することになる。
【0043】従って、プログラム900(図15参照)
が入力された場合は、図18に示すように、index 値
「0」で指される配列の要素から値「0」を読み出す。
また、プログラム1000(図16参照)が入力された
場合は、図19に示すように、index 値「0」で指され
る配列の要素から値「01……1」(2進法表現)を読
出して値「127」(10進法表現)を出力する。さら
に、プログラム1100(図17参照)が入力された場
合は、図20に示すように、index 値「0」で指される
配列の要素から値「011………1」(2進法表現)を
読出して「32767」(10進法表現)を出力する。
【0044】以上説明したように本実施例によれば、デ
ータ参照手段203が、指定された型の単位(bit、8
bit 、16bit 等)で、オリジナルの配列に対しアクセ
スするので、オリジナルの配列のデータを直接操作する
ことができる。また配列が保持している有効範囲の情報
は、配列記憶手段30のヘッダー部31にヘッダー情報
として保持されているので、型変換を行っても有効範囲
の情報は失われない。さらにオリジナルの配列の全ての
データをアクセスすることができるので、指定された要
素の型単位でアクセスすることができる。
【0045】したがって、特定の定められた型を要素と
し、配列の作成時にそのサイズを指定できる配列であっ
て、サイズの範囲内で有効範囲を指定できる機能を備え
ている配列に対して、配列の型変換を行った場合には、
データのコピーを行わず、データのアクセスの型を変換
しているので、同一のデータに対して異なる型でのデー
タの参照/変更が可能となる。かつ、その要素の型を単
位にしたサイズや有効範囲を出力するので、型変換を行
った配列に対しても、配列に対して行える種々の操作を
矛盾なく行うことができる。
【0046】次に、第2の発明の実施例を図21乃至図
41を参照して説明する。
【0047】図21は、第2の発明に係るデータ管理装
置の一実施例を機能ブロック図で示したものである。こ
の図に示した機能ブロック図は図1に示した第1の発明
に係るデータ管理装置の構成のうち、型指定手段201
を型指定手段2110に、配列作成手段202を配列作
成手段2120に、データ参照手段203をデータ参照
手段2130に、配列記憶手段30を配列記憶手段21
40にそれぞれ変更した構成になっている。同図におい
て、図1に示した構成要素と同様の機能を果たす部分に
は同一の符号を付している。
【0048】なお、図21に示したデータ管理装置も、
C言語で記述されたプログラム(関数)を実行して、配
列の作成および配列へのアクセスを行うようになってい
るので、入力部10から入力されるプログラムは関数
(引数、…、引数)の型であるものとする。
【0049】配列記憶手段2140は、図22に示すよ
うに、ヘッダー部2141と、実際の要素を管理するデ
ータ記憶部2142とから構成されており、ヘッダー部
2141には、上述した配列記憶手段30のヘッダー部
31(図2参照)に設けられた6つの領域に加えて、サ
イズの拡張性の有無を保持する「adjustablep 」の領域
が設けられている。
【0050】型指定手段2110は、上述した型指定手
段201(図2参照)の機能に加えて、配列のサイズの
拡張の有無を、配列作成手段2120へ通知する機能を
有している。
【0051】配列作成手段2120は、図23に示すよ
うに、作成する配列のサイズが指定されるサイズ指定部
2121と、有効範囲の有無及びその値が指定される有
効範囲指定部2122と、サイズの拡張の有無が指定さ
れるサイズ拡張指定手段2123と、配列のサイズを拡
張するサイズ拡張手段2124とを有して構成されてい
る。
【0052】このように構成されている配列作成手段2
120は、配列のサイズと指定された型とに基づいて、
指定された型に依存しない固定の型(この実施例では8
bitとする)を単位としたサイズを算出し、配列記憶手
段2140のデータ記憶部2142に必要な領域を確保
する。また上記各指定された情報をヘッダー情報として
配列記憶手段2140のヘッダー部2141に格納す
る。
【0053】ヘッダー情報の格納に際し、特に、配列作
成時においては、「byte-size 」及び「add-bits」への
情報の格納はサイズ指定部2121が、「fillpointer
p」、「fillpointer-size」及び「fill-add-bits 」へ
の情報の格納は有効範囲指定部2122が、「adjustab
lep 」への情報の格納はサイズ拡張指定手段2123
が、「data-pointer」への情報の格納は図23には図示
していないがデータポインタをセットするデータポイン
タ部が、それぞれ実行するようになっている。
【0054】ここで、ヘッダー部2141内の「adjust
ablep 」には、配列のサイズを拡張するか否かを示す情
報としてadjustablep が保持される。このadjustablep
は、サイズの拡張が不可能な旨であるときは「0」とな
り、一方サイズの拡張が可能な旨であるときは、例えば
拡張可能なサイズを示す値としてヘッダー部2141内
の「byte-size 」にセットされている値(byte-size 単
位)の何倍かを示す値(例えば、2、3、…、n)とな
る。なお、ヘッダー部2141内の他の6つの領域には
上記第1の発明の実施例で説明したようなデータが格納
されるので、ここではその説明を省略する。
【0055】データ参照手段2130は、配列からデー
タを読み出すデータ読み出し部(図示せず)と、配列の
有効範囲を問合わせる有効範囲問合せ部(図示せず)
と、配列へのデータ書き込みを行うデータ格納部(図示
せず)とを有して構成されている。
【0056】なお上記データ読出し部および有効範囲問
合せ部は、それぞれ上記第1の発明の実施例でのデータ
参照手段203による、[配列からのデータ読出しの場
合]の処理および[配列の有効範囲を問合せる場合]の
処理と同様の処理を行うようになっているので、ここで
はその説明を省略する。
【0057】さてデータ参照手段2130内のデータ格
納部(図示せず)は、詳細は後述するが、指定された型
と配列記憶手段2140のヘッダー部2141から得た
情報とに基づいて、所定の計算を行った後、データ記憶
部2142へのデータの格納を行う。
【0058】ところで、この発明では、予め指定された
配列のサイズを超えるデータを格納する際には、該当す
る配列のサイズを拡張した後データを格納することが可
能であり、そのサイズの拡張方法には2通りの方法があ
る。
【0059】その1つの方法は、予め拡張する旨を指定
しておき、サイズ拡張の必要が生じた時点で、配列のサ
イズ拡張を行う場合である。
【0060】すなわち、配列を作成する際に配列のサイ
ズを拡張するか否かを示す情報としてadjustablep を指
定すると、その情報はヘッダー情報としてヘッダー部2
141に保持される。
【0061】そして、データ参照手段2130が、関数
(引数、…、引数)の型で、関数push-array(配列、ne
wvalue)(この関数については後述する)を実行して、
データ記憶部2142内の配列にデータを格納しようと
した際に、「fillpointer-size」にセットされている値
(byte-size 単位)が予め指定した配列のサイズ(byte
-size 単位)を超えた場合、データ参照手段2130か
ら配列作成手段2120へ配列のサイズ拡張の依頼がな
される。
【0062】するとサイズ拡張手段2124では、ヘッ
ダー部2141の「adjustablep 」に保持されている値
を参照して、サイズを拡張するかどうかを決める。その
値が「0」以外の値であれば配列のサイズの拡張が可能
であると判断し、その配列のサイズを拡張する。そのサ
イズの拡張を行うに際しては、図24に示すように、デ
ータ記憶部2142に新たな領域2142Bを獲得し、
該獲得した領域を初期化し、元の配列2142Aのデー
タをコピーする。
【0063】また獲得した領域に適した情報をヘッダー
部2141の内容に反映させる。すなわち、「data-poi
nter」にセットされている値(拡張前(元)の配列への
ポインタ値)を、拡張後の配列へのポインタ値に更新
し、「byte-size 」にセットされている値(拡張前のby
te-size )を、(adjustablep *byte-size )を実行し
た値、つまり拡張前に「byte-size 」にセットされてい
る値と「adjustablep 」にセットされている値とを乗算
した値に更新する。
【0064】もう1つの方法は、明示的に配列の拡張を
行う場合である。
【0065】これは、型指定手段2110が、指定され
た配列を拡張する関数set-array-sizeと、引数として
の、配列、拡張するサイズ、拡張したデータ領域に入る
値を、配列作成手段2120へ通知することにより、サ
イズ拡張手段2124が、関数(引数、…、引数)の型
で、関数set-array-size(配列、拡張するサイズ、拡張
したデータ領域に入る値)を実行して明示的に配列を拡
張する。この場合のサイズの拡張に際しても、図24に
示したように、データ記憶部2142に新たな領域21
42Bを獲得し、該獲得した領域を初期化し、元の配列
2142Aのデータをコピーする。なお、拡張した領域
に初期値を入れることができる。
【0066】また、この場合も、獲得した領域に適した
情報をヘッダー部2141の内容に反映させる。すなわ
ち、「data-pointer」にセットされている値を、拡張後
の配列へのポインタ値に更新し、「byte-size 」にセッ
トされている値を、引数として与えられた拡張するサイ
ズ(byte-size 単位)の値に更新する。
【0067】なおこの実施例においては、上述したよう
に2通りの方法で拡張を行うことが可能であるので、上
述した拡張指定手段は、型指定手段2110とサイズ拡
張指定手段2123とを有して構成されている。
【0068】また上記いずれの拡張方法による拡張処理
が行われた場合であっても、データ参照手段2130
は、ヘッダー部2141からデータ記憶部2142を参
照しているので、データ記憶部2142中における配列
の記憶領域が変ったことを意識する必要はない。
【0069】ここで、データ参照手段2130のデータ
格納について説明するが、この実施例では、型指定手段
2110から入力する情報により、put-array (配列、
index 、newvalue)を実行してデータを格納する場合
と、push-array(配列、newvalue)を実行してデータを
格納する場合とがある。ここでは、関数put-array を実
行する場合は上記第1の発明の実施例で説明した処理と
同様にデータを格納するのでその説明を省略し、push-a
rray(配列、newvalue)を実行してデータを格納する場
合の処理について説明する。
【0070】(1)最初に型指定手段2110から指定
された型とヘッダー部2141の「fillpointer-size」
にセットされている情報とに基づいて、その型に合った
有効範囲を計算し、その位置にnewvalue(データ)を格
納する。
【0071】すなわち、計算して得られた有効範囲の位
置に、関数push-array(配列、newvalue)を実行するこ
とによりnewvalueを格納する。この関数は有効範囲(fi
llpointer )で示される領域にデータを格納して、有効
範囲の値を1つ増やすためのものである。なお有効範囲
の値(位置)は、型のタイプからfillpointer サイズを
計算して変更する。これは「fillpointer-size」の値
を、型に応じてインクリメントすることになる。
【0072】ここに、有効範囲が指定されていない場合
は「fillpointer-size」に保持される値は「0」である
ので、例えば、8bitの型では(0、1、2、3、…、
n)となり、16bit の型では(0、2、4、6、…、
n)となり、32bit の型では(0、4、8、12、
…、n)となる。さらに、これら各型における値「0」
がそれぞれindex 値「0」に対応しており、以後、各型
における各値にそれぞれ対応してindex 値が(1、2、
3、4…、n)となる。
【0073】例えば、有効範囲が指定されていない場合
に、関数push-array(配列、newvalue)を実行して、
「fillpointer-size」の値「0」に対応する配列の要素
にデータを格納する場合は、「fillpointer-size」の値
「0」に対応するindex 「0」で指される配列の要素に
デーテを格納することになる。そして、該当する配列の
要素へのデータの格納を終了したら、「fillpointer-si
ze」に保持されている値を、上記各型に応じてインクリ
メントする。このインクリメントされた値に対応するin
dex 値で指される配列の要素が、次のデータの格納場所
となる。
【0074】一方、有効範囲が指定されている場合に、
関数push-array(配列、newvalue)を実行してデータを
格納する際には、「fillpointer-size」に保持され有効
範囲として指定された値に対応するindex 値で指される
配列の要素から、順次データを格納することになる。こ
の場合も、「fillpointer-size」に保持されている値
を、指定された型に応じてインクリメントする。
【0075】(2)なお、「fillpointer-size」にセッ
トされている値が「byte-size 」にセットされている値
を超えた場合は、サイズ拡張手段2124を呼び出し
て、配列のサイズ拡張を依頼する。この依頼に応答した
サイズ拡張手段2124によって拡張された配列にデー
タを格納する。
【0076】次に、上述した構成において、データ管理
装置の配列の作成、配列に対するアクセス処理を具体例
を挙げて説明する。
【0077】ここに、配列の作成及び配列へのアクセス
処理において、次に説明する(1)〜(6)に示す事項
が前提にあるものとする。 (1)今、3つのtypeの配列を考える。 a:要素の型がbit 単位の配列をbit-array で表現す
る。 b:要素の型がbyte(8bits)単位の配列を8bit-array
で表現する。 c:要素の型が2byte (16bits)単位の配列を16bit-
array で表現する。 (2)型指定の方法は、変数の前に“::”の記号を付
けるものとする。 (3)配列の作成は、create-type-array (create-16b
it-array)(関数)で、サイズと有効範囲とサイズの有
無とを引数にとる。 (4)データ格納の際には、次に説明するようにして行
う。
【0078】(a)有効範囲の指す位置にデータを入れ
る関数push-arrayで、配列、newvalueを各引数として、
有効範囲を返す。その戻り値としての有効範囲(byte-s
ize単位)が配列のサイズ(byte-size 単位)を超えた
場合は、サイズ拡張手段2124を呼び出し、そのサイ
ズ拡張手段2124によって拡張された拡張後の配列
に、newvalueを格納する。
【0079】(b)関数set-array-sizeに、配列、サイ
ズ、初期値を各引数として、配列のサイズ拡張を明示的
に行う。
【0080】(5)データの読み出しの際には、配列か
らデータを取出す関数get-array に、配列、index を各
引数として、値を返す。
【0081】(6)有効範囲の問い合せの際には、列の
有効範囲を問合わせる関数array-sizeに、配列を引数と
して、その有効サイズを返す。
【0082】さて、配列を作成すべき旨の情報として、
入力部10から図25に示されるプログラム2500が
入力されると、型指定手段2110は入力されたプログ
ラム2500を解釈して、「関数create-16bit-array、
サイズ=2、有効範囲(fillpointer )=0、adjustab
lep =2)の情報を、配列作成手段2120に通知す
る。なお、図25に示したプログラム2500におい
て、変数a1は、16bit-array 型の変数と指定するもの
とする。
【0083】配列作成手段2120では、入力された配
列の要素の型(16bit )と配列のサイズ(2=要素の
数)とに基づいて、指定された型(16bit )に依存し
ない固定の型(つまり、8bit )を単位としたサイズ
(byte-size 単位)を算出し、この算出されたサイズに
対応する記憶領域を配列記憶手段2140のデータ記憶
部2142に確保する。この場合、データ記憶部214
2には上記図4に示したように、4byte-size の配列を
作成するための記憶領域が確保される。
【0084】また、ヘッダー部2141には、「byte-s
ize 」に「4」が、「add-bits」に「0」が、「fillpo
interp」に有効範囲が指定されていない旨の情報(例え
ば、“0”)が、「fillpointer-size」に「0」が、
「adjustablep 」に配列のサイズを拡張する旨を示す値
として「2」が、「data-pointer」に上記作成された配
列a1へのポインタ値が、それぞれヘッダー情報として
保持される。
【0085】次に配列へのデータ書き込み情報として、
入力部10から図26に示されるプログラム2601及
び2602が入力されると、型指定手段2110は入力
された各プログラムを解釈して「関数push-array、配列
=a1、newvalue=100 」、及び「関数push-array、配
列=a1、newvalue=200 」の情報をデータ参照手段2
130に通知する。データ参照手段2130では入力さ
れた情報に基づいて、関数push-arrayに、配列、newval
ueを各引数として、有効範囲を返す。
【0086】この場合、「fillpointer-size」にセット
されている値が「0」なので、これに対応するindex 値
「0」で指定される配列の要素にnewvalue=100 を格納
した後、「fillpointer-size」の値を「2」にインクリ
メントする。次に、newvalue=200 は「fillpointer-si
ze」にセットされている値「2」に対応するindex 値
「1」で指定される配列の要素に格納される。この結
果、「fillpointer-size」の値は「2」から「4」に変
更される。なお、配列a1は図27に示される内容とな
る。
【0087】次に、有効範囲の問い合わせ情報として、
入力部10から図28に示されるプログラム2800が
入力されると、型指定手段2110は、そのプログラム
に対応して「関数array-size、配列=a1」の情報をデ
ータ参照手段2130に通知する。
【0088】データ参照手段2130では、入力された
上記情報に基づいて、関数array-sizeに、配列を引数に
して、その有効範囲の値を返す。つまり、プログラム2
800が入力された場合においては、上述したプログラ
ム500(図7参照)が入力された場合の有効範囲の問
合せで説明したように、指定されている型は16bitで
あるので、有効範囲は、4byteの配列を16bit 単位で
数えるので「2」となる。
【0089】続いて、データ書き込み情報として、入力
部10から図29に示されるプログラム2900が入力
されると、型指定手段2110は、プログラム2900
を解釈して、「関数push-array、配列=a1、newvalue
=300 」の情報をデータ参照手段2130に通知する。
データ参照手段2130では、入力された上記情報に基
づいて、関数push-arrayに、配列、newvalueを各引数と
して、有効範囲を返すことになる。
【0090】この場合は、上記newvalue=200 を格納し
た場合に「fillpointer-size」の値が「4」に更新され
たので、newvalue=300 は「fillpointer-size」にセッ
トされている値「4」に対応するindex 値「2」で指さ
れる配列の要素に格納されなければならない。ところ
が、今現在の配列a1は、図27に示されるように、in
dex 値が「1」までのサイズしか存在していないので、
このままではnewvalue=300 を格納することはできな
い。つまり、配列a1のサイズは4byte-size であり、
newvalue=300 を格納するためには、配列のa1のサイ
ズは少なくとも6byte-size なければならない。そこ
で、データ参照手段2130は、配列作成手段2120
に対して、配列のサイズ拡張を依頼する。
【0091】この依頼に応答した配列作成手段2120
のサイズ拡張手段2124は、配列記憶手段2140の
ヘッダー部2141内の「adjustablep 」を参照し、そ
の保持情報に基づいてサイズの拡張が可能か否かを調べ
る。
【0092】ここでサイズ拡張手段2124は、この例
では「adjustablep 」には値「2」が保持されているの
でサイズ拡張が可能であると判断して、データ記憶部2
142内の、既に作成されている配列a1(拡張前の配
列)とは異なる記憶領域に、adjustablep *byte-size
=2×4=8byteの配列a1の記憶領域を確保して、配
列a1を拡張する。この拡張された配列a1においては
16bit の型でindex値が「3」まで存在していること
なる。
【0093】このようにしてサイズの拡張処理を終了し
たら、サイズ拡張手段2124は、ヘッダー部2141
内の、「byte-size 」の値を「4」から「8」に、「da
ta-pointer」の値を「元(拡張前)の配列a1へのポイ
ンタ値」から「拡張後の配列a1へのポインタ値」にそ
れぞれ更新する。なおこの時点では「fillpointer-siz
e」にセットされている値は「4」である。
【0094】サイズの拡張処理が終了すると、データ参
照手段2130は、拡張された配列a1に、拡張前の配
列a1の内容をコピーし、さらにnewvalue=300 を、
「fillpointer-size」にセットされている値「4」に対
応するindex 値「2」で指される配列の要素に格納す
る。さらに「fillpointer-size」の値を「4」から
「6」に更新する。拡張前の配列a1から拡張後の配列
a1への状態遷移を図30に示す。
【0095】上述したように、予め指定した配列a1の
サイズを超えるようなデータを格納する際にはその配列
a1を拡張するようにしているので、拡張後の配列にお
いても配列a1に対する操作を継続することができる。
【0096】しかしながら従来においては、予め指定し
た配列a1とは異なる配列、例えば上記拡張後の配列a
1に対応する配列を、例えば配列a2や配列b1など配
列a1とは異なる配列としなければならなかった。従っ
て以後の配列に対する操作は配列a1ではなく配列a2
や配列b1となり、配列に対する操作や管理が複雑にな
り面倒であった。
【0097】さて、上記データ書き込みに続いて、さら
にデータ書き込み情報として、入力部10から図31に
示されるプログラム3100が入力されると、データ参
照手段2130は上記プログラム2900(図29参
照)が入力された場合と同様の処理を行う。つまり関数
push-arrayに、配列=a1、newvalue=400 を各引数と
して有効範囲を返す。この結果、newvalue=400 は「fi
llpointer-size」にセットされている値「6」に対応す
るindex 値「3」で指される配列の要素に格納されるこ
とになり、これによって図30に示した拡張後の配列a
1は図32に示される内容となる。また「fillpointer-
size」の値は「6」から「8」に更新されることとな
る。
【0098】次に、図32に示した状態で入力部10か
ら図33に示されるプログラム3301〜3304がそ
れぞれ入力された場合、データ参照部2130には、型
指定手段2110からの、それぞれのプログラムに対応
する、「関数get-array 、配列=a1、index =0」、
「関数get-array 、配列=a1、index =1」、「関数
get-array 、配列=a1、index =2」、「関数get-ar
ray 、配列=a1、index =3」の情報が入力されるこ
とになる。そしてデータ参照手段2130は、関数get-
array に、配列、index を各引数として、値を返す。
【0099】ここで、プログラム3301が入力された
場合においては、指定された型の配列の型単位(16bit
)で数えてindex 値「0」で指される配列の要素に管
理されているデータを出力することになるので、値「1
00」(10進法表現)を出力する。同様に、プログラ
ム3302〜3304も共に、指定されている配列の型
単位は16bit なので、それぞれのプログラムが入力さ
れた場合においては、値「200」、値「300」、値
「400」が(それぞれ10進法表現)出力されること
になる。
【0100】さらに、再度、入力部10から上記図28
に示したプログラム2800(つまりarray-size(a
1))が入力された場合、データ参照手段2130は、
その有効範囲の問合せに対して、今度は図32に示した
配列a1を16bit 単位で数えるので、有効範囲の値
「4」を出力する。
【0101】今、配列を作成すべき旨の情報として、入
力部10から図34に示されるプログラム3400が入
力されたとする。すると、配列作成手段2120は、上
述したプログラム2500(図25参照)が入力された
場合の処理と同様の処理を行うことになり、その結果と
して、データ記憶部2142内に、図35に示されるよ
うに、型の要素が16bit で配列のサイズが「10」と
なっている配列a2が作成される。この作成された配列
a2の内容はすべて「0」となっている。
【0102】次に、有効範囲の問合せに情報として、入
力部10から図36に示されるプログラム3600が入
力されると、データ参照手段2130は、その有効範囲
の問合せに対して、今度は図35に示した配列a2を1
6bit 単位で数えるので、有効範囲の値「10」を出力
する。
【0103】続いて、入力部10から上記図37に示し
たプログラム3700が入力されると、型指定手段21
10は、入力されたプログラムを解釈して、「関数set-
array-size、サイズ=20、初期値=500」の情報を
配列作成手段2120に通知する。配列作成手段212
0においては、サイズ拡張手段2124は、入力された
情報に基づいて、関数set-array-sizeに、サイズ=2
0、初期値=500を各引数として、明示的に配列の拡
張を行う。
【0104】この配列の拡張処理に際しては、データ記
憶部2142内の、図35に示した配列a2が格納され
ている記憶領域とは異なる領域に、サイズが「20」の
配列a2を格納するだけの領域を確保し、この確保され
た領域にサイズが「20」の配列a2の記憶領域を作成
する。そして、明示的に拡張した配列a2に、図35に
示した配列a2の記憶領域の内容をコピーして、拡張部
分の配列の要素(index の値が10〜19に対応する要
素)に初期値「500」を格納する。拡張前の配列a2
から明示的に拡張処理された配列a2への状態遷移を図
38に示している。
【0105】ここで、データの読出し情報として、入力
部10から図39に示されるプログラム3901、39
02が入力されると、データ参照部2130には、型指
定手段2110からの、それぞれのプログラムに対応す
る、「関数get-array 、配列=a2、index =5、「関
数get-array 、配列=a2、index =15」の情報が入
力されることになる。そしてデータ参照手段2130
は、上述したプログラム3301〜3304(図33参
照)がそれぞれ入力された場合の処理と同様に、関数ge
t-array に、配列、index を各引数として、値を返す。
【0106】ここで、プログラム3901が入力された
場合においては、指定された型の配列の型単位(16bit
)で数えてindex 値「5」で指される配列の要素に管
理されているデータを出力することになるので値「0」
を出力し、一方、プログラム3902が入力された場合
においては、指定された型の配列の型単位(16bit )
で数えてindex 値「15」で指される配列の要素に管理
されているデータを出力することになるので、値「50
0」(10進法表現)を出力する。
【0107】また、データの読出し情報として、入力部
10から図40に示されるプログラム4001、400
2がそれぞれ入力されると、データ参照手段2130に
は、型指定手段2110からの、それぞれのプログラム
に対応する、「関数get-array 、配列=32bit-array
::a1、index =0」、「関数get-array 、配列=3
2bit-array ::a1、index =1」の情報が入力され
ることになる。するとデータ参照手段2130は、デー
タ読み出しに際し、上記プログラム1000(図16参
照)の場合と同様の処理を行うことになる。
【0108】すなわち上記プログラム4001及び40
02が入力された場合においては、上記図32に示した
配列a1(16bit の型)を、指定された配列(型変換
されている配列)(32bit-array ::a1)の型単位で
数えて、index 値が「0」及び「1」で指される配列の
要素に管理されているデータ、すなわち値「5130
0」及び「102700」(それぞれ10進法表現)を
それぞれ出力することになる。
【0109】最後に、有効範囲の問合せ情報として、入
力部10から図41に示されるプログラム4100が入
力されると、データ参照手段2130には、型指定手段
2110からの、「関数array-size、配列=bit-array
::a2」の情報が入力されることになるので、デー
タ参照手段2130は、上記プログラム700(図9参
照)が入力された場合と同様の処理を行うことになる。
すなわち、プログラム4100が入力された場合におい
ては、上記図38に示した配列a2(16bit の型)つ
まり16bit ×20=320bit の配列を、指定された
配列(bit-array::a2)の型単位で数えるので、有
効範囲は「320」となる。
【0110】上述したように本実施例によれば、上記第
1の発明の実施例の作用効果に加えて、配列の作成時に
サイズの拡張の有無を指定できるようにしているので、
配列の拡張を行う旨を指定した場合は、データの格納時
にサイズの拡張が必要になった際に、サイズを自動的に
拡張してデータを格納することができ、かつ同一の配列
への操作で作業が継続できる。また明示的にサイズの拡
張を行う機能を使用することで、予め指定した配列のサ
イズを超えるデータ量の格納がある場合であっても、新
たに大きなサイズの配列を作成して、コピーする必要が
なくなり、同一の配列への操作で作業が継続できる。
【0111】
【発明の効果】以上説明したように第1の発明によれ
ば、第1の配列の型情報及び要素数情報に基づいて、当
該型情報に対応する型に依存しない新たな要素の型を単
位とした要素の数を算出し、この算出した要素の数と当
該新たな要素の型とに基づいた配列を作成すると共に、
この作成された配列に対して指定された第2の配列の型
情報に基づいてアクセスするようにしているので、特定
の配列の同一データに対して、異なる配列の型で読み出
し/書き込みを行うことができ、しかも型変換された配
列に対しても配列に対して行える種々の操作を行うこと
ができる。
【0112】また、第2の発明によれば、第1の配列の
型情報、要素数情報及び有効範囲情報に基づいて、第1
の配列の型情報に対応する型に依存しない新たな要素の
型を単位とした要素の数および有効範囲を算出し、この
算出した要素の数と当該新たな要素の型とに基づいた配
列を作成すると共に、この作成された配列に対して前記
算出された要素の数、有効範囲および指定された第2の
配列の型情報に基づいてアクセスするようにしているの
で、特定の配列の同一データに対して、異なる配列の型
で読み出し/書き込み、あるいは有効範囲の問い合わせ
を行うとができ、しかも型変換された配列に対しても配
列に対して行える種々の操作を行うことができる。さら
に、第3の発明によれば、第1の配列の型情報及び要素
数情報に基づいて、当該型情報に対応する型に依存しな
い新たな要素の型を単位とした要素の数を算出し、この
算出した要素の数と当該新たな要素の型とに基づいた配
列を作成すると共に、この作成された配列に指定された
データを格納するときに、当該データ量が当該配列のサ
イズを超えるような場合は、指定された拡張サイズ情報
に基づいて当該配列のサイズを拡張し、該拡張されたサ
イズに対応する領域に、拡張前の前記配列のサイズを超
えたデータ量分のデータを格納するようにしているの
で、上記第1又は第2の発明の作用効果に加えて、配列
のサイズを拡張する旨を指定することにより、予め指定
された配列のサイズを超えるデータ量のデータを格納す
る際には、当該配列のサイズを拡張することができ、し
かも拡張された後の配列に対しても、拡張前の配列に対
する操作と同様の操作で作業を継続できる。
【図面の簡単な説明】
【図1】第1の発明に係るデータ管理装置の一実施例を
示す機能ブロック図。
【図2】図1に示した配列記憶手段の構成を示す構成
図。
【図3】配列を作成するための情報の一例を示す図。
【図4】図1に示した配列記憶手段に確保される、配列
を記憶するための記憶領域を説明するための図。
【図5】配列にデータを書き込むための情報の一例を示
す図。
【図6】配列へのデータの書き込み処理を説明するため
の図。
【図7】配列の有効範囲を、16ビットの要素の型で問
い合わせるための情報の一例を示す図。
【図8】配列の有効範囲を、8ビットの要素の型で問い
合わせるための情報の一例を示す図。
【図9】配列の有効範囲を、1ビットの要素の型で問い
合わせるための情報の一例を示す図。
【図10】図6に示される配列の有効範囲を、16ビッ
トの要素の型で問い合わせる場合の問い合わせ処理を説
明するための図。
【図11】図6に示される配列の有効範囲を、8ビット
の要素の型で問い合わせる場合の問い合わせ処理を説明
するための図。
【図12】図6に示される配列の有効範囲を、1ビット
の要素の型で問い合わせる場合の問い合わせ処理を説明
するための図。
【図13】配列にデータを書き込むための情報の一例を
示す図。
【図14】図6に示される配列の内容が更新された状態
を示す図。
【図15】1ビットの要素の型で、配列からデータを読
み出すための情報の一例を示す図。
【図16】8ビットの要素の型で、配列からデータを読
み出すための情報の一例を示す図。
【図17】16ビットの要素の型で、配列からデータを
読み出すための情報の一例を示す図。
【図18】1ビットの要素の型で、図14に示される配
列からデータを読み出す場合の読出し処理を説明するた
めの図。
【図19】8ビットの要素の型で、図14に示される配
列からデータを読み出す場合の読出し処理を説明するた
めの図。
【図20】16ビットの要素の型で、図14に示される
配列からデータを読み出す場合の読出し処理を説明する
ための図。
【図21】第2の発明に係わるデータ管理装置の一実施
例を示す機能ブロック図。
【図22】図21に示した配列記憶手段の構成を示す構
成図。
【図23】図21に示した配列作成手段の概略構成を示
す図。
【図24】配列を拡張した際の配列記憶手段の内部状態
を説明するための図。
【図25】配列を作成するための情報の一例を示す図。
【図26】配列にデータを書き込めための情報の一例を
示す図。
【図27】配列へのデータ書き込み処理を説明するため
の図。
【図28】配列の有効範囲を、16ビットの要素の型で
問合せるための情報の一例を示す図。
【図29】配列にデータを書き込むための情報の一例を
示す図。
【図30】図27に示される配列の拡張処理および拡張
された配列へのデータ書き込み処理を説明するための
図。
【図31】配列にデータを書き込むための情報の一例を
示す図。
【図32】拡張された配列へのデータ書き込み処理を説
明するための図。
【図33】図32に示される配列からのデータ読み出し
処理を説明するための図。
【図34】配列を作成するための情報の一例を示す図。
【図35】配列へのデータ書き込み処理を説明するため
の図。
【図36】配列の有効範囲を、16ビットの要素の型で
問合せるための情報の一例を示す図。
【図37】明示的に配列を拡張するための情報の一例を
示す図。
【図38】図35に示される配列の拡張処理および拡張
された配列へのデータ書き込み処理を説明するための
図。
【図39】図35に示される配列からのデータ読み出し
処理を説明するための図。
【図40】32ビットの要素の型で、配列からデータを
読み出すための情報の一例を示す図。
【図41】有効範囲を、1ビットの要素の型で問合せる
ための情報の一例を示す図。
【符号の説明】
10…入力部、20…制御部、30、2140…配列記
憶手段、31、2141…ヘッダー部、32、2142
…データ記憶部、40…出力部、201、2110…型
指定手段、202、2120…配列作成手段、203、
2130…データ参照手段、2121…サイズ指定部、
2122…有効範囲指定部、2123…サイズ拡張指定
手段、2124…サイズ拡張手段。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/45 G06F 12/00 - 12/06

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】配列の作成をすべき旨と、第1の配列の要
    素の型を示す型情報および該要素の数を示す要素数情報
    とを指定する第1の型指定手段と、 前記第1の型指定手段により指定された型情報および要
    素数情報に基づいて当該型情報に対応する型に依存しな
    い新たな要素の型を単位とした要素の数を算出し、この
    算出した要素の数と当該新たな要素の型とに基づいた配
    列を作成する配列作成手段と、 前記配列作成手段により作成された配列を記憶する配列
    記憶手段と、 配列へのアクセスをすべき旨と、第2の配列の要素の型
    を示す型情報とを指定する第2の型指定手段と、 前記第2の型指定手段により指定された第2の配列につ
    いての型情報に基づいて、前記配列記憶手段に記憶され
    ている配列へのアクセスを行うデータ参照手段とを具備
    したことを特徴とするデータ管理装置。
  2. 【請求項2】配列の作成をすべき旨と、第1の配列の要
    素の型を示す型情報、該要素の数を示す要素数情報およ
    び有効範囲を示す有効範囲情報とを指定する第1の型指
    定手段と、 前記第1の型指定手段により指定された型情報、要素数
    情報および有効範囲情報に基づいて、当該型情報に対応
    する型に依存しない新たな要素の型を単位とした要素の
    数および有効範囲を算出すると共に、この算出した要素
    の数と当該新たな要素の型とに基づいた配列を作成する
    配列作成手段と、 前記配列作成手段により作成された配列と、前記配列作
    成手段により算出された要素の数を示す情報および有効
    範囲を示す情報とを記憶する配列記憶手段と、 配列へのアクセスをすべき旨と、第2の配列の要素の型
    を示す型情報とを指定する第2の型指定手段と、 前記第2の型指定手段により指定された型情報と前記配
    列記憶手段の記憶内容とに基づいて、当該記憶されてい
    る配列へのアクセスを行うデータ参照手段とを具備した
    ことを特徴とするデータ管理装置。
  3. 【請求項3】配列の作成をすべき旨と、第1の配列の要
    素の型を示す型情報、該要素の数を示す要素数情報と、
    当該配列についての拡張可能な拡張サイズ情報とを指定
    する第1の型指定手段と、 前記第1の型指定手段により指定された型情報および要
    素数情報に基づいて、 当該型情報に対応する型に依存しない新たな要素の型を
    単位とした要素の数を算出すると共に、この算出した要
    素の数と当該新たな要素の型とに基づいた配列を作成す
    る配列作成手段と、 前記配列作成手段により作成された配列および前記第1
    の型指定手段により指定された拡張サイズ情報を記憶す
    る配列記憶手段と、 配列へのデータの書き込みをすべき旨と、第2の配列の
    要素の型を示す型情報およびデータとを指定する第2の
    型指定手段と、 前記第2の型指定手段により指定されたデータを前記配
    列記憶手段に記憶されている配列に格納するときに、当
    該データ量が当該配列のサイズを超えるような場合は、
    前記配列記憶手段に記憶されている拡張サイズ情報に基
    づいて当該配列のサイズを拡張すると共に、該拡張され
    たサイズに対応する領域に、拡張前の前記配列のサイズ
    を超えたデータ量分のデータを格納する処理手段とを具
    備したことを特徴とするデータ管理装置。
JP08886891A 1991-04-19 1991-04-19 データ管理装置 Expired - Fee Related JP3266914B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08886891A JP3266914B2 (ja) 1991-04-19 1991-04-19 データ管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08886891A JP3266914B2 (ja) 1991-04-19 1991-04-19 データ管理装置

Publications (2)

Publication Number Publication Date
JPH04320534A JPH04320534A (ja) 1992-11-11
JP3266914B2 true JP3266914B2 (ja) 2002-03-18

Family

ID=13954990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08886891A Expired - Fee Related JP3266914B2 (ja) 1991-04-19 1991-04-19 データ管理装置

Country Status (1)

Country Link
JP (1) JP3266914B2 (ja)

Also Published As

Publication number Publication date
JPH04320534A (ja) 1992-11-11

Similar Documents

Publication Publication Date Title
US4079453A (en) Method and apparatus to test address formulation in an advanced computer system
JP3219826B2 (ja) 情報処理装置
JPH0364890B2 (ja)
JPH03266039A (ja) フリーフォーマットデータリンク処理方式
JPS63163930A (ja) アライメント補正方式
JPH09204297A (ja) 複数のヒープにおいて順序を維持してメモリ割り当てを行うための装置および方法
JP3266914B2 (ja) データ管理装置
JP2003248635A (ja) ネットワーク管理プロトコールにおける管理情報ベースのデータベースアクセス方法及びシステム
US6970911B2 (en) Distributed memory type parallel computer and write data transfer end confirming method thereof
US4816992A (en) Method of operating a data processing system in response to an interrupt
JP2620545B2 (ja) テーブル駆動による編集装置
JP3425724B2 (ja) システム無中断プログラム切替え方法
US6321319B2 (en) Computer system for allowing a two word jump instruction to be executed in the same number of cycles as a single word jump instruction
JP3090048B2 (ja) 標準プログラムの機能拡張方法及び方式
JPH08272815A (ja) オブジェクト指向データベースシステムおよびその処理方法
JP2912657B2 (ja) ファイルアクセス処理装置
JP3345050B2 (ja) 二次元配列型メモリシステム
JPH0816369A (ja) クラスタリング方法及びシステム
JPH01255933A (ja) 掃出し制御方式
JP3476376B2 (ja) 仮想記憶アドレス空間アクセス制御方法とそのための装置
JP2764947B2 (ja) 命令制御方式
JP2735400B2 (ja) 非同期入出力制御方式
JP2507399B2 (ja) デ―タベ―ス装置
JPS63113747A (ja) 仮想記憶管理装置
JPH05189313A (ja) キャッシュメモリ制御方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100111

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees