JP2001005674A - データ受渡装置および記録媒体 - Google Patents
データ受渡装置および記録媒体Info
- Publication number
- JP2001005674A JP2001005674A JP11174733A JP17473399A JP2001005674A JP 2001005674 A JP2001005674 A JP 2001005674A JP 11174733 A JP11174733 A JP 11174733A JP 17473399 A JP17473399 A JP 17473399A JP 2001005674 A JP2001005674 A JP 2001005674A
- Authority
- JP
- Japan
- Prior art keywords
- data
- language
- size
- array
- conversion
- 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.)
- Pending
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【課題】 本発明は、異なるプログラミング言語間でデ
ータのやり取りを行うデータ受渡装置および記録媒体に
関し、異なる言語間でデータのやり取りを行う際に、言
語の仕様の違いを分析してデータ構造の変換を自動的に
行い、一方の言語の仕様を狭めたり、概念を変えること
なく、2種類の言語間でのデータのやり取りを実現する
ことを目的とする。 【解決手段】 到着したデータについて、型、配列およ
びサイズについて解析する解析手段と、解析により型が
変換先の言語と同一あるいは配列が1次元配列の場合
に、サイズが変換先の言語と一致するときはそのまま、
異なるときはサイズを一致させる変換手段とを備えるよ
うに構成する。
ータのやり取りを行うデータ受渡装置および記録媒体に
関し、異なる言語間でデータのやり取りを行う際に、言
語の仕様の違いを分析してデータ構造の変換を自動的に
行い、一方の言語の仕様を狭めたり、概念を変えること
なく、2種類の言語間でのデータのやり取りを実現する
ことを目的とする。 【解決手段】 到着したデータについて、型、配列およ
びサイズについて解析する解析手段と、解析により型が
変換先の言語と同一あるいは配列が1次元配列の場合
に、サイズが変換先の言語と一致するときはそのまま、
異なるときはサイズを一致させる変換手段とを備えるよ
うに構成する。
Description
【0001】
【産業上の利用分野】本発明は、異なるプログラミング
言語間でデータのやり取りを行うデータ受渡装置および
記録媒体に関するものである。
言語間でデータのやり取りを行うデータ受渡装置および
記録媒体に関するものである。
【0002】
【従来の技術】一般に、2種類のプログラミング言語を
結合して全体として処理を行う場合、互いの言語仕様の
違いにより、データのやり取りが行えないケースが生じ
る。
結合して全体として処理を行う場合、互いの言語仕様の
違いにより、データのやり取りが行えないケースが生じ
る。
【0003】従来、上述した2種類のプログラミング言
語に違いがある場合には、一方の言語の仕様を狭めて他
方の言語の仕様に合わせてデータのやり取りを行うよう
にしていた。
語に違いがある場合には、一方の言語の仕様を狭めて他
方の言語の仕様に合わせてデータのやり取りを行うよう
にしていた。
【0004】
【発明が解決しようとする課題】このため、プログラミ
ングする際に、2種類のプログラミング言語の仕様の狭
めた範囲を意識して記述してデータをやり取りできるよ
うにするという、両者のプログラミング言語の狭めた範
囲の専門的な知識が要求されてしまうという問題があっ
た。このため、一方の言語における仕様を狭めたり、概
念を変えることなく、2種類の言語間でのデータのやり
取りを行い得るようにする仕組みが要求されていた。
ングする際に、2種類のプログラミング言語の仕様の狭
めた範囲を意識して記述してデータをやり取りできるよ
うにするという、両者のプログラミング言語の狭めた範
囲の専門的な知識が要求されてしまうという問題があっ
た。このため、一方の言語における仕様を狭めたり、概
念を変えることなく、2種類の言語間でのデータのやり
取りを行い得るようにする仕組みが要求されていた。
【0005】本発明は、これらの問題を解決するため、
異なる言語間でデータのやり取りを行う際に、言語の仕
様の違いを分析してデータ構造の変換を自動的に行い、
一方の言語の仕様を狭めたり、概念を変えることなく、
2種類の言語間でのデータのやり取りを実現することを
目的としている。
異なる言語間でデータのやり取りを行う際に、言語の仕
様の違いを分析してデータ構造の変換を自動的に行い、
一方の言語の仕様を狭めたり、概念を変えることなく、
2種類の言語間でのデータのやり取りを実現することを
目的としている。
【0006】
【課題を解決するための手段】図1を参照して課題を解
決するための手段を説明する。図1において、処理装置
1は、プログラムに従い各種処理を実行するものであっ
て、ここでは、解析手段2および変換手段3などから構
成されるものである。
決するための手段を説明する。図1において、処理装置
1は、プログラムに従い各種処理を実行するものであっ
て、ここでは、解析手段2および変換手段3などから構
成されるものである。
【0007】解析手段2は、到着したデータについて、
型、配列およびサイズなどを解析するものである。変換
手段3は、解析の結果をもとに変換先の言語で表現でき
るデータに変換するものである。
型、配列およびサイズなどを解析するものである。変換
手段3は、解析の結果をもとに変換先の言語で表現でき
るデータに変換するものである。
【0008】次に、動作を説明する。解析手段2が到着
したデータについて型、配列およびサイズについて解析
し、変換手段3が解析結果について型が変換先の言語と
の同一あるいは到着したデータの配列が1次元配列の場
合に、サイズが一致するときはそのまま、サイズが異な
るときはサイズを一致させるように変換するようにして
いる。
したデータについて型、配列およびサイズについて解析
し、変換手段3が解析結果について型が変換先の言語と
の同一あるいは到着したデータの配列が1次元配列の場
合に、サイズが一致するときはそのまま、サイズが異な
るときはサイズを一致させるように変換するようにして
いる。
【0009】この際、変換手段3は、到着したデータが
解析により多次元配列であった場合に、変換先の言語の
多次元配列に変換するようにしている。また、変換手段
3は、到着したデータが解析によりポインタであった場
合に、変換先の言語で表現できるポインタ構造に変換す
るようにしている。
解析により多次元配列であった場合に、変換先の言語の
多次元配列に変換するようにしている。また、変換手段
3は、到着したデータが解析によりポインタであった場
合に、変換先の言語で表現できるポインタ構造に変換す
るようにしている。
【0010】また、変換手段3は、到着したデータが解
析により構造体であった場合に、変換先の言語で表現で
きる構造体に変換するようにしている。また、変換手段
3は、到着したデータが解析により共用体であった場合
に、変換先の言語で表現できる共用体に変換するように
している。
析により構造体であった場合に、変換先の言語で表現で
きる構造体に変換するようにしている。また、変換手段
3は、到着したデータが解析により共用体であった場合
に、変換先の言語で表現できる共用体に変換するように
している。
【0011】従って、異なる言語間でデータのやり取り
を行う際に、言語の仕様の違いを分析してデータ構造の
変換を自動的に行うことにより、従来の一方の言語の仕
様を狭めたり、概念を変えることなく、2種類の言語間
でのデータのやり取りを言語間の仕様の違いを意識する
ことなく行うことが可能となる。
を行う際に、言語の仕様の違いを分析してデータ構造の
変換を自動的に行うことにより、従来の一方の言語の仕
様を狭めたり、概念を変えることなく、2種類の言語間
でのデータのやり取りを言語間の仕様の違いを意識する
ことなく行うことが可能となる。
【0012】
【実施例】次に、図1から図5を用いて本発明の実施の
形態および動作を順次詳細に説明する。
形態および動作を順次詳細に説明する。
【0013】図1は、本発明のシステム構成図を示す。
図1において、処理装置1は、図示外の記録媒体などか
ら読み出したプログラムを主記憶にローディングして起
動し、以下に説明する各種処理を実行するものであっ
て、ここでは、解析手段2および変換手段3などから構
成されるものである。
図1において、処理装置1は、図示外の記録媒体などか
ら読み出したプログラムを主記憶にローディングして起
動し、以下に説明する各種処理を実行するものであっ
て、ここでは、解析手段2および変換手段3などから構
成されるものである。
【0014】解析手段2は、到着したデータについて、
型、配列、サイズ、配列のときに1次元配列あるいは多
次元配列、ポインタ、構造体、共用体などを解析するも
のである(図2、図3参照)。
型、配列、サイズ、配列のときに1次元配列あるいは多
次元配列、ポインタ、構造体、共用体などを解析するも
のである(図2、図3参照)。
【0015】変換手段3は、解析の結果をもとに変換先
の言語で表現できるデータに変換するものである(図
2、図3参照)。第一言語用データ4および第二言語用
データ5は、異なる2種類の言語のデータであって、相
互に変換してデータの受渡を行って全体として一連の処
理を行うものであり、例えばC言語のデータおよびJA
VA言語のデータである。
の言語で表現できるデータに変換するものである(図
2、図3参照)。第一言語用データ4および第二言語用
データ5は、異なる2種類の言語のデータであって、相
互に変換してデータの受渡を行って全体として一連の処
理を行うものであり、例えばC言語のデータおよびJA
VA言語のデータである。
【0016】表示装置6は、データなどを表示するもの
である。入力装置7は、データや操作指示などを入力す
るものであって、マウスやキーボードなどである。
である。入力装置7は、データや操作指示などを入力す
るものであって、マウスやキーボードなどである。
【0017】次に、図2のフローチャートの順番に従
い、図1の構成のもとで第一言語(例えばC言語)から
第二言語(例えばJAVA言語)にデータ変換するとき
の動作を詳細に説明する。
い、図1の構成のもとで第一言語(例えばC言語)から
第二言語(例えばJAVA言語)にデータ変換するとき
の動作を詳細に説明する。
【0018】図2は、本発明の動作説明フローチャート
(変換)を示す。図2において、S1は、データが到着
する。これは、変換対象のデータ(例えば第1言語用デ
ータ4)が到着する。
(変換)を示す。図2において、S1は、データが到着
する。これは、変換対象のデータ(例えば第1言語用デ
ータ4)が到着する。
【0019】S2は、S1で到着したデータを解析し、
下記のいずれかを判別する。 ・基本データ型:int,char,float,do
uble,boolean(論理型)など ・配列: ・ポインタ: ・構造体: ・共用体: S3は、S2で基本データ型と判別された場合であっ
て、S14に進む。ここで、基本データ型は、 ・int:整数型 ・char:キャラクタ型 ・float:浮動小数点型 ・double:倍精度型 ・boolean:論理型 ・その他: などのここでは、C言語およびJAVA言語の基本デー
タ型である。
下記のいずれかを判別する。 ・基本データ型:int,char,float,do
uble,boolean(論理型)など ・配列: ・ポインタ: ・構造体: ・共用体: S3は、S2で基本データ型と判別された場合であっ
て、S14に進む。ここで、基本データ型は、 ・int:整数型 ・char:キャラクタ型 ・float:浮動小数点型 ・double:倍精度型 ・boolean:論理型 ・その他: などのここでは、C言語およびJAVA言語の基本デー
タ型である。
【0020】S14は、型のサイズが同じか、異なるか
判別する。S14で型のサイズが同じと判別(S1で到
着した変換元の言語であるC言語のデータの型とサイズ
が、変換先の言語であるJAVA言語のデータの型とサ
イズに同じと判別)された場合には、S16で変換先
(JAVA言語)にデータをそのまま渡す。一方、S1
4で型のサイズが異なると判別された場合には、S15
で型のサイズを合わせる処理(例えば16ビットのデー
タを32ビットのデータに合わせる処理)を行った後
(図4の(a)を用いて後述)、S16で変換先(JA
VA言語)にデータを渡す。これにより、変換元と変換
先の型が同じでサイズが同じときはそのまま変換先に自
動的に渡し、サイズが異なるときはサイズを合わせた後
に変換先に自動的に渡すことが可能となる。
判別する。S14で型のサイズが同じと判別(S1で到
着した変換元の言語であるC言語のデータの型とサイズ
が、変換先の言語であるJAVA言語のデータの型とサ
イズに同じと判別)された場合には、S16で変換先
(JAVA言語)にデータをそのまま渡す。一方、S1
4で型のサイズが異なると判別された場合には、S15
で型のサイズを合わせる処理(例えば16ビットのデー
タを32ビットのデータに合わせる処理)を行った後
(図4の(a)を用いて後述)、S16で変換先(JA
VA言語)にデータを渡す。これにより、変換元と変換
先の型が同じでサイズが同じときはそのまま変換先に自
動的に渡し、サイズが異なるときはサイズを合わせた後
に変換先に自動的に渡すことが可能となる。
【0021】S4は、S2で配列と判別された場合であ
って、S8に進む。S8は、配列が一次元あるいは多次
元のいずれか判別する。S8で一次元の配列と判明した
場合には、上述したS14からS16によってサイズが
同じときはそのまま変換先に渡し、異なるときはサイズ
を合わせてから変換先に渡す。一方、S8で多次元の配
列と判明した場合には、S9で多次元配列の構造を変換
する処理(図4の(b)を用いて後述)を行った後に、
上述したS14からS16によってサイズが同じときは
そのまま変換先に渡し、異なるときはサイズを合わせて
から変換先に渡す。これにより、データが1次元配列の
場合には変換元と変換先のサイズが同じときはそのまま
変換先に自動的に渡し、サイズが異なるときはサイズを
合わせた後に変換先に自動的に渡すことが可能となると
共に、データが多次元配列の場合には変換先の配列の構
造に変換した後に、変換元と変換先のサイズが同じとき
はそのまま変換先に自動的に渡し、サイズが異なるとき
はサイズを合わせた後に変換先に自動的に渡すことが可
能となる。
って、S8に進む。S8は、配列が一次元あるいは多次
元のいずれか判別する。S8で一次元の配列と判明した
場合には、上述したS14からS16によってサイズが
同じときはそのまま変換先に渡し、異なるときはサイズ
を合わせてから変換先に渡す。一方、S8で多次元の配
列と判明した場合には、S9で多次元配列の構造を変換
する処理(図4の(b)を用いて後述)を行った後に、
上述したS14からS16によってサイズが同じときは
そのまま変換先に渡し、異なるときはサイズを合わせて
から変換先に渡す。これにより、データが1次元配列の
場合には変換元と変換先のサイズが同じときはそのまま
変換先に自動的に渡し、サイズが異なるときはサイズを
合わせた後に変換先に自動的に渡すことが可能となると
共に、データが多次元配列の場合には変換先の配列の構
造に変換した後に、変換元と変換先のサイズが同じとき
はそのまま変換先に自動的に渡し、サイズが異なるとき
はサイズを合わせた後に変換先に自動的に渡すことが可
能となる。
【0022】S5は、S2でポインタと判別された場合
であって、S10に進む。S10は、中身を配列として
扱うか、中身は扱わないかのいずれか判別する。S10
で中身を配列として扱うと判明した場合には、上述した
S14からS16によってサイズが同じときはそのまま
変換先に渡し、異なるときはサイズを合わせてから変換
先に渡す(図4の(c)を用いて後述)。一方、S10
で中身は扱わないと判明した場合には、S11でポイン
タ型の代理をする構造を作り、その中にアドレス値を保
管し、S16で変換先にデータを渡す(図4の(d)を
用いて後述する)。これにより、データがポインタの場
合には、中身を配列として扱うときは変換元と変換先の
サイズが同じときはそのまま変換先に渡し、サイズが異
なるときはサイズを合わせて後に変換先に自動的に渡す
ことが可能となると共に、ポインタの中身は扱わないと
きはポインタ型の代理をする構造を作りその中にアドレ
ス値を保管(図4の(d)参照)し、変換先に自動的に
渡すことが可能となる。
であって、S10に進む。S10は、中身を配列として
扱うか、中身は扱わないかのいずれか判別する。S10
で中身を配列として扱うと判明した場合には、上述した
S14からS16によってサイズが同じときはそのまま
変換先に渡し、異なるときはサイズを合わせてから変換
先に渡す(図4の(c)を用いて後述)。一方、S10
で中身は扱わないと判明した場合には、S11でポイン
タ型の代理をする構造を作り、その中にアドレス値を保
管し、S16で変換先にデータを渡す(図4の(d)を
用いて後述する)。これにより、データがポインタの場
合には、中身を配列として扱うときは変換元と変換先の
サイズが同じときはそのまま変換先に渡し、サイズが異
なるときはサイズを合わせて後に変換先に自動的に渡す
ことが可能となると共に、ポインタの中身は扱わないと
きはポインタ型の代理をする構造を作りその中にアドレ
ス値を保管(図4の(d)参照)し、変換先に自動的に
渡すことが可能となる。
【0023】S6は、S2で構造体と判別された場合で
あって、S12に進む。S12は、構造体の代理をする
構造を作り、その中に各メンバの値を保管し、S16で
変換先にデータを渡す(図5の(e)を用いて後述す
る)。これにより、データが構造体の場合には、構造体
を代理する構造を作り、その中にメンバの値を保管(図
5の(e)参照)し、変換先に自動的に渡すことが可能
となる。
あって、S12に進む。S12は、構造体の代理をする
構造を作り、その中に各メンバの値を保管し、S16で
変換先にデータを渡す(図5の(e)を用いて後述す
る)。これにより、データが構造体の場合には、構造体
を代理する構造を作り、その中にメンバの値を保管(図
5の(e)参照)し、変換先に自動的に渡すことが可能
となる。
【0024】S7は、S2で共用体と判別された場合で
あって、S13に進む。S13は、共用体の代理をする
構造を作り、その中に各メンバの値を保管し、S16で
変換先にデータを渡す(図5の(f)を用いて後述す
る)。これにより、データが共用体の場合には、共用体
を代理する構造を作り、その中にメンバの値を保管(図
5の(f)参照)し、変換先に自動的に渡すことが可能
となる。
あって、S13に進む。S13は、共用体の代理をする
構造を作り、その中に各メンバの値を保管し、S16で
変換先にデータを渡す(図5の(f)を用いて後述す
る)。これにより、データが共用体の場合には、共用体
を代理する構造を作り、その中にメンバの値を保管(図
5の(f)参照)し、変換先に自動的に渡すことが可能
となる。
【0025】次に、図2のフローチャートの順番に従
い、図1の構成のもとで第二言語(例えばJAVA言
語)から第一言語(例えばC言語)にデータ変換(逆変
換)するときの動作を詳細に説明する。
い、図1の構成のもとで第二言語(例えばJAVA言
語)から第一言語(例えばC言語)にデータ変換(逆変
換)するときの動作を詳細に説明する。
【0026】図3は、本発明の動作説明フローチャート
(逆変換)を示す。図3において、S21は、データが
到着する。これは、変換(逆変換)対象のデータ(例え
ば第2言語用データ5)が到着する。
(逆変換)を示す。図3において、S21は、データが
到着する。これは、変換(逆変換)対象のデータ(例え
ば第2言語用データ5)が到着する。
【0027】S22は、S21で到着したデータを解析
し、下記のいずれかを判別する。 ・基本データ型:int,char,float,do
uble,booleanなど ・配列: ・ポインタクラス: ・構造体クラス: ・共用体クラス: S23は、S22で基本データ型と判別された場合であ
って、S34に進む。ここで、基本データ型は、 ・int:整数型 ・char:キャラクタ型 ・float:浮動小数点型 ・double:倍精度型 ・boolean:論理型 ・その他: などのここでは、JAVA言語およびC言語の基本デー
タ型である。
し、下記のいずれかを判別する。 ・基本データ型:int,char,float,do
uble,booleanなど ・配列: ・ポインタクラス: ・構造体クラス: ・共用体クラス: S23は、S22で基本データ型と判別された場合であ
って、S34に進む。ここで、基本データ型は、 ・int:整数型 ・char:キャラクタ型 ・float:浮動小数点型 ・double:倍精度型 ・boolean:論理型 ・その他: などのここでは、JAVA言語およびC言語の基本デー
タ型である。
【0028】S34は、型のサイズが同じか、異なるか
判別する。S34で型のサイズが同じと判別(S21で
到着した変換元の言語であるJAVA言語のデータの型
と、変換先の言語であるC言語のデータの型とのがサイ
ズが同じと判別)された場合には、S36で変換先(C
言語)にデータをそのまま渡す。一方、S34で型のサ
イズが異なると判別(S31で到着した変換元の言語で
あるJAVA言語のデータの型と、変換先の言語である
C言語のデータの型とのがサイズが異なると判別)され
た場合には、S35で型のサイズを合わせる処理を行っ
た後、S36で変換先(C言語)にデータを渡す。これ
により、変換元と変換先の型が同じでサイズが同じとき
はそのまま変換先に自動的に渡し、サイズが異なるとき
はサイズを合わせた後に変換先に自動的に渡すことが可
能となる。
判別する。S34で型のサイズが同じと判別(S21で
到着した変換元の言語であるJAVA言語のデータの型
と、変換先の言語であるC言語のデータの型とのがサイ
ズが同じと判別)された場合には、S36で変換先(C
言語)にデータをそのまま渡す。一方、S34で型のサ
イズが異なると判別(S31で到着した変換元の言語で
あるJAVA言語のデータの型と、変換先の言語である
C言語のデータの型とのがサイズが異なると判別)され
た場合には、S35で型のサイズを合わせる処理を行っ
た後、S36で変換先(C言語)にデータを渡す。これ
により、変換元と変換先の型が同じでサイズが同じとき
はそのまま変換先に自動的に渡し、サイズが異なるとき
はサイズを合わせた後に変換先に自動的に渡すことが可
能となる。
【0029】S24は、S22で配列と判別された場合
であって、S28に進む。S28は、配列が一次元ある
いは多次元のいずれか判別する。S28で一次元の配列
と判明した場合には、上述したS34からS36によっ
てサイズが同じときはそのまま変換先に渡し、異なると
きはサイズを合わせてから変換先に渡す。一方、S28
で多次元の配列と判明した場合には、S29で多次元配
列の構造を変換する処理(図4の(b)を用いて後述)
を行った後に、上述したS34からS36によってサイ
ズが同じときはそのまま変換先に渡し、異なるときはサ
イズを合わせてから変換先に渡す。これにより、データ
が1次元配列の場合には変換元と変換先のサイズが同じ
ときはそのまま変換先に自動的に渡し、サイズが異なる
ときはサイズを合わせた後に変換先に自動的に渡すこと
が可能となると共に、データが多次元配列の場合には変
換先の配列の構造に変換した後に、変換元と変換先のサ
イズが同じときはそのまま変換先に自動的に渡し、サイ
ズが異なるときはサイズを合わせた後に変換先に自動的
に渡すことが可能となる。
であって、S28に進む。S28は、配列が一次元ある
いは多次元のいずれか判別する。S28で一次元の配列
と判明した場合には、上述したS34からS36によっ
てサイズが同じときはそのまま変換先に渡し、異なると
きはサイズを合わせてから変換先に渡す。一方、S28
で多次元の配列と判明した場合には、S29で多次元配
列の構造を変換する処理(図4の(b)を用いて後述)
を行った後に、上述したS34からS36によってサイ
ズが同じときはそのまま変換先に渡し、異なるときはサ
イズを合わせてから変換先に渡す。これにより、データ
が1次元配列の場合には変換元と変換先のサイズが同じ
ときはそのまま変換先に自動的に渡し、サイズが異なる
ときはサイズを合わせた後に変換先に自動的に渡すこと
が可能となると共に、データが多次元配列の場合には変
換先の配列の構造に変換した後に、変換元と変換先のサ
イズが同じときはそのまま変換先に自動的に渡し、サイ
ズが異なるときはサイズを合わせた後に変換先に自動的
に渡すことが可能となる。
【0030】S25は、S22でポインタクラスと判別
された場合であって、S31に進む。S31は、ポイン
タクラスに保管してあるアドレス値を取り出し、ポイン
タにセットし、S36で変換先にデータを渡す(図4の
(d)を用いて後述する)。これにより、データがポイ
ンタクラスの場合には、ポインタクラスに保管してある
アドレス値を取り出し、ポインタにセット(図4の
(d)参照)し、変換先に自動的に渡すことが可能とな
る。
された場合であって、S31に進む。S31は、ポイン
タクラスに保管してあるアドレス値を取り出し、ポイン
タにセットし、S36で変換先にデータを渡す(図4の
(d)を用いて後述する)。これにより、データがポイ
ンタクラスの場合には、ポインタクラスに保管してある
アドレス値を取り出し、ポインタにセット(図4の
(d)参照)し、変換先に自動的に渡すことが可能とな
る。
【0031】S26は、S22で構造体クラスと判別さ
れた場合であって、S32に進む。S32は、構造体ク
ラスに保管してある各メンバの値を取り出し、構造体に
セットし、S36で変換先にデータを渡す(図5の
(e)を用いて後述する)。これにより、データが構造
体クラスの場合には、構造体クラスに保管してある各メ
ンバの値を取り出して構造体にセット(図5の(e)参
照)し、変換先に自動的に渡すことが可能となる。
れた場合であって、S32に進む。S32は、構造体ク
ラスに保管してある各メンバの値を取り出し、構造体に
セットし、S36で変換先にデータを渡す(図5の
(e)を用いて後述する)。これにより、データが構造
体クラスの場合には、構造体クラスに保管してある各メ
ンバの値を取り出して構造体にセット(図5の(e)参
照)し、変換先に自動的に渡すことが可能となる。
【0032】S27は、S22で共用体クラスと判別さ
れた場合であって、S33に進む。S33は、共用体ク
ラスに保管してあるメンバの値を取り出し、共用体にセ
ットし、S36で変換先にデータを渡す(図5の(f)
を用いて後述する)。これにより、データが共用体クラ
スの場合には、共用体クラスに保管してあるメンバの値
を取り出して共用体にセット(図5の(f)参照)し、
変換先に自動的に渡すことが可能となる。
れた場合であって、S33に進む。S33は、共用体ク
ラスに保管してあるメンバの値を取り出し、共用体にセ
ットし、S36で変換先にデータを渡す(図5の(f)
を用いて後述する)。これにより、データが共用体クラ
スの場合には、共用体クラスに保管してあるメンバの値
を取り出して共用体にセット(図5の(f)参照)し、
変換先に自動的に渡すことが可能となる。
【0033】図4および図5は、本発明の変換/逆変換
例を示す。これは、C言語とJAVA言語との間でデー
タを変換および逆変換するときの具体例を模式的に説明
したものであって、左側がC言語のデータを模式的に表
し、右側がJAVA言語のデータを模式的に表す。
例を示す。これは、C言語とJAVA言語との間でデー
タを変換および逆変換するときの具体例を模式的に説明
したものであって、左側がC言語のデータを模式的に表
し、右側がJAVA言語のデータを模式的に表す。
【0034】図4の(a)は、型のサイズを合わせる変
換処理の例を示す。・左側のC言語のデータは、16b
it表現「0000 0000 0110 0100」で表す100(10
進表現)を示す。
換処理の例を示す。・左側のC言語のデータは、16b
it表現「0000 0000 0110 0100」で表す100(10
進表現)を示す。
【0035】・右側のJAVA言語のデータは、32b
it表現「0000 0000 0000 0000 0000 0000 0110 0100」で表す100(10進表現)
を示す。ここでは、図示のように相互に変換/逆変換で
きる。
it表現「0000 0000 0000 0000 0000 0000 0110 0100」で表す100(10進表現)
を示す。ここでは、図示のように相互に変換/逆変換で
きる。
【0036】尚、C言語は、32bit表現と16bi
t表現の両者があり、上記例は16bit表現の場合に
適用されるものである。以上のように、型が同一であっ
ても、サイズが異なる場合には、変換先のサイズに合わ
せる変換/逆変換処理を行った後に、変換先にデータを
渡すことが可能となる。
t表現の両者があり、上記例は16bit表現の場合に
適用されるものである。以上のように、型が同一であっ
ても、サイズが異なる場合には、変換先のサイズに合わ
せる変換/逆変換処理を行った後に、変換先にデータを
渡すことが可能となる。
【0037】図4の(b)は、多次元配列の構造を変換
する処理の例を示す。・左側のC言語のデータは、 3 2 5 4 1 8 という2行3列の多次元配列をメモリ上の連続領域に図
示のように配置した構造を模式的に示す。
する処理の例を示す。・左側のC言語のデータは、 3 2 5 4 1 8 という2行3列の多次元配列をメモリ上の連続領域に図
示のように配置した構造を模式的に示す。
【0038】・右側のJAVA言語のデータは、 3 2 5 という3個のデータと 4 1 8 という3個のデータとをポインタ(アドレス)でポイン
トして同じ多次元配列を図示のように配置した構造を模
式的に示す。
トして同じ多次元配列を図示のように配置した構造を模
式的に示す。
【0039】以上のように、多次元配列の構造が異なる
場合には、変換先の配列の構造に変換/逆変換処理を行
った後に、変換先にデータを渡すことが可能となる。図
4の(c)は、ポインタの中身を配列として扱う場合の
変換する処理の例を示す。
場合には、変換先の配列の構造に変換/逆変換処理を行
った後に、変換先にデータを渡すことが可能となる。図
4の(c)は、ポインタの中身を配列として扱う場合の
変換する処理の例を示す。
【0040】・左側のC言語のデータは、ポインタ(ア
ドレス)でポイントした配列として渡したい何らかのデ
ータを模式的に示す。 ・右側のJAVA言語のデータは、ポインタ(アドレ
ス)でポイントした配列として渡したい何らかのデータ
を模式的に示す。
ドレス)でポイントした配列として渡したい何らかのデ
ータを模式的に示す。 ・右側のJAVA言語のデータは、ポインタ(アドレ
ス)でポイントした配列として渡したい何らかのデータ
を模式的に示す。
【0041】以上のように、ポインタ(アドレス)でポ
イントした配列として渡したいデータの場合には、特別
な変換処理を行うことなく(構造が異なる場合には、そ
の構造に合わせた変換処理が必要)、変換先にデータを
渡すことが可能となる。
イントした配列として渡したいデータの場合には、特別
な変換処理を行うことなく(構造が異なる場合には、そ
の構造に合わせた変換処理が必要)、変換先にデータを
渡すことが可能となる。
【0042】図4の(d)は、ポインタをアドレス値の
まま扱う場合の変換する処理の例を示す。 ・左側のC言語のデータは、ポインタ(アドレス)で配
列のデータをポイントする様子を模式的に示す。
まま扱う場合の変換する処理の例を示す。 ・左側のC言語のデータは、ポインタ(アドレス)で配
列のデータをポイントする様子を模式的に示す。
【0043】・右側のJAVA言語のデータは、ポイン
タクラス(ポインタ型の代理をする構造)をつくり、そ
の中にアドレス値をそのまま図示のように保管した様子
を模式的に示す。
タクラス(ポインタ型の代理をする構造)をつくり、そ
の中にアドレス値をそのまま図示のように保管した様子
を模式的に示す。
【0044】以上のように、ポインタ(アドレス)のア
ドレス値をそのまま扱う場合には図示のように構造の変
換を行ってアドレス値をそのまま保管(セット)し、変
換先にデータ(ここでは、アドレス値)を渡すことが可
能となる。JAVA言語側からデータを参照などの処理
を行うときは、ポインタクラス中のアドレス値を取り出
してC言語の処理に渡して参照などの処理を依頼し、処
理結果を受け取ることにより、一連の処理を実行するこ
とが可能となる。
ドレス値をそのまま扱う場合には図示のように構造の変
換を行ってアドレス値をそのまま保管(セット)し、変
換先にデータ(ここでは、アドレス値)を渡すことが可
能となる。JAVA言語側からデータを参照などの処理
を行うときは、ポインタクラス中のアドレス値を取り出
してC言語の処理に渡して参照などの処理を依頼し、処
理結果を受け取ることにより、一連の処理を実行するこ
とが可能となる。
【0045】図5の(e)は、構造体と構造体クラスの
変換処理の例を示す。構造体の場合には、構造体クラス
を作って、データを埋め込むだけでなく、各メンバにつ
いて型のサイズが違っていた場合には合わせる変換処理
(図4の(a)と同じ処理)を行う。
変換処理の例を示す。構造体の場合には、構造体クラス
を作って、データを埋め込むだけでなく、各メンバにつ
いて型のサイズが違っていた場合には合わせる変換処理
(図4の(a)と同じ処理)を行う。
【0046】図5の(e−1)は、構造体が関連のある
複数のデータを1つの型として扱えるC言語の機能の例
を示す。 ・商品: ・名称 ・値段 ・仕入れ日 というように、商品は3つのデータ(名称、値段、仕入
日という3つのデータ)からなると定義すると、 ・商品1: ・きゅうり ・30 ・99.6.14 ・商品2: ・トマト ・100 ・99.6.13 などと構造体で3つのデータを関連づけて記述できる。
複数のデータを1つの型として扱えるC言語の機能の例
を示す。 ・商品: ・名称 ・値段 ・仕入れ日 というように、商品は3つのデータ(名称、値段、仕入
日という3つのデータ)からなると定義すると、 ・商品1: ・きゅうり ・30 ・99.6.14 ・商品2: ・トマト ・100 ・99.6.13 などと構造体で3つのデータを関連づけて記述できる。
【0047】図5の(e−2)は、JAVA言語には同
じ機能がないので、ポインタの時と同じく同じ情報を保
管できる構造(クラス)を用意して変換する例を示す。 ・左側のC言語のデータは、上記した商品2(トマト、
100、99.6.13)を構造体として図示のように
連続領域に配置した様子を模式的に示す。
じ機能がないので、ポインタの時と同じく同じ情報を保
管できる構造(クラス)を用意して変換する例を示す。 ・左側のC言語のデータは、上記した商品2(トマト、
100、99.6.13)を構造体として図示のように
連続領域に配置した様子を模式的に示す。
【0048】・右側のJAVA言語のデータは、C言語
の構造体の代理する構造体クラスを作り、その中に各メ
ンバとして、3つのデータ(トマト、100、99.
6.13)を保管した様子を模式的に示す。
の構造体の代理する構造体クラスを作り、その中に各メ
ンバとして、3つのデータ(トマト、100、99.
6.13)を保管した様子を模式的に示す。
【0049】ここで、図5の(e−2)では、TOMA
TOのchar型がC言語では8ビット、JAVA言語
では16ビットなので、変換処理を行う。このような各
メンバについて言語間で型のサイズが異なる場合は、図
4の(a)の同じように型のサイズを合わせる変換処理
を行う。
TOのchar型がC言語では8ビット、JAVA言語
では16ビットなので、変換処理を行う。このような各
メンバについて言語間で型のサイズが異なる場合は、図
4の(a)の同じように型のサイズを合わせる変換処理
を行う。
【0050】以上のように、C言語の構造体について
は、JAVA言語では構造体を代理する構造体クラスを
作り、その中にメンバの値(上記3つのデータ)を保管
することで、変換先に変換/逆変換してデータを渡すこ
とが可能となる。
は、JAVA言語では構造体を代理する構造体クラスを
作り、その中にメンバの値(上記3つのデータ)を保管
することで、変換先に変換/逆変換してデータを渡すこ
とが可能となる。
【0051】図5の(f)は、共用体と共用体クラスの
変換処理の例を示す。図5の(f−1)は、共用体が1
つのメモリ領域を複数の型(配列も含む)として扱える
C言語の機能の例を示す。
変換処理の例を示す。図5の(f−1)は、共用体が1
つのメモリ領域を複数の型(配列も含む)として扱える
C言語の機能の例を示す。
【0052】 ・int i ・byte b[4] というそれぞれのC言語の記述は、右側の上段に記述し
たように、例えば 0000 0000 0010 0001 0110 0100 1011 0010 という4バイトのビット列でそれぞれ表されるが、この
ままのビット列では、 ・intの2188466(10進表現) ・byteの0(10進表現)と33(10進表現)と
100(10進表現)と178(10進表現)の4つの
いずれとも扱える。しかし、JAVA言語ではこれら複
数の型として扱える機能がないので、図5の(f−2)
に示すようにして表現し、変換/逆変換する。
たように、例えば 0000 0000 0010 0001 0110 0100 1011 0010 という4バイトのビット列でそれぞれ表されるが、この
ままのビット列では、 ・intの2188466(10進表現) ・byteの0(10進表現)と33(10進表現)と
100(10進表現)と178(10進表現)の4つの
いずれとも扱える。しかし、JAVA言語ではこれら複
数の型として扱える機能がないので、図5の(f−2)
に示すようにして表現し、変換/逆変換する。
【0053】図5の(f−2)は、同じくJAVA言語
には同じ機能がないので代理の構造を作って変換する例
を示す。 ・左側のC言語のデータは、上記したように、データ
A,B,C,Dを共用体として図示のように連続領域に
配置した様子を模式的に示す。
には同じ機能がないので代理の構造を作って変換する例
を示す。 ・左側のC言語のデータは、上記したように、データ
A,B,C,Dを共用体として図示のように連続領域に
配置した様子を模式的に示す。
【0054】・右側のJAVA言語のデータは、C言語
の共用体の代理する共用体クラスを作り、その中に各メ
ンバとして、データA,B,C,Dを保管した様子を模
式的に示す。
の共用体の代理する共用体クラスを作り、その中に各メ
ンバとして、データA,B,C,Dを保管した様子を模
式的に示す。
【0055】以上のように、C言語の共用体について
は、JAVA言語では共用体を代理する共用体クラスを
作り、その中にメンバの値(上記4つのデータA,B,
C,D)を保管することで、変換先に変換/逆変換して
データを渡すことが可能となる。
は、JAVA言語では共用体を代理する共用体クラスを
作り、その中にメンバの値(上記4つのデータA,B,
C,D)を保管することで、変換先に変換/逆変換して
データを渡すことが可能となる。
【0056】
【発明の効果】以上説明したように、本発明によれば、
異なる言語間でデータのやり取りを行う際に、言語の仕
様の違いを分析してデータ構造の変換を自動的に行う構
成を採用しているため、従来の一方の言語の仕様を狭め
たり、概念を変えることなく、2種類の言語間でのデー
タのやり取りを言語間の仕様の違いを意識することなく
行うことが可能となる。これにより、 (1) 異なる言語の仕様や、既に作成したプログラム
の記述を変更することなく、相互に結合して一体として
処理を行うことが可能となる。
異なる言語間でデータのやり取りを行う際に、言語の仕
様の違いを分析してデータ構造の変換を自動的に行う構
成を採用しているため、従来の一方の言語の仕様を狭め
たり、概念を変えることなく、2種類の言語間でのデー
タのやり取りを言語間の仕様の違いを意識することなく
行うことが可能となる。これにより、 (1) 異なる言語の仕様や、既に作成したプログラム
の記述を変更することなく、相互に結合して一体として
処理を行うことが可能となる。
【0057】(2) 更に、ユーザは他方の言語の詳し
い仕様の知識がなくても当該他の言語で記述されたプロ
グラムを使うことが可能となる。 (3) 一方の言語にしかない仕様を、他方の言語でも
使えるようにしたことで、他方の言語の仕様のもつ概念
を変えることなくデータを扱うことが可能となる。
い仕様の知識がなくても当該他の言語で記述されたプロ
グラムを使うことが可能となる。 (3) 一方の言語にしかない仕様を、他方の言語でも
使えるようにしたことで、他方の言語の仕様のもつ概念
を変えることなくデータを扱うことが可能となる。
【図1】本発明のシステム構成図である。
【図2】本発明の動作説明フローチャート(変換)であ
る。
る。
【図3】本発明の動作説明フローチャート(逆変換)で
ある。
ある。
【図4】本発明の変換/逆変換例(その1)である。
【図5】本発明の変換/逆変換例(その2)である。
1:処理装置 2:解析手段 3:変換手段 4:第一言語用データ 5:第二言語用データ 6:表示装置 7:入力装置
Claims (6)
- 【請求項1】異なるプログラミング言語間でデータのや
り取りを行うデータ受渡装置において、 到着したデータについて、型、配列およびサイズについ
て解析する解析手段と、 上記解析により型が変換先の言語と同一あるいは配列が
1次元配列の場合に、サイズが変換先の言語と一致する
ときはそのまま、異なるときはサイズを一致させる変換
手段とを備えたことを特徴とするデータ受渡装置。 - 【請求項2】上記到着したデータが上記解析により多次
元配列であった場合には、変換先の言語の多次元配列に
変換することを特徴とする請求項1記載のデータ受渡装
置。 - 【請求項3】上記到着したデータが上記解析によりポイ
ンタであった場合には、変換先の言語で表現できるポイ
ンタ構造に変換することを特徴とする請求項1記載のデ
ータ受渡装置。 - 【請求項4】上記到着したデータが上記解析により構造
体であった場合には、変換先の言語で表現できる構造体
に変換することを特徴とする請求項1記載のデータ受渡
装置。 - 【請求項5】上記到着したデータが上記解析により共用
体であった場合には、変換先の言語で表現できる共用体
に変換することを特徴とする請求項1記載のデータ受渡
装置。 - 【請求項6】到着したデータについて、型、配列および
サイズについて解析する解析手段と、 上記解析により型が変換先の言語と同一あるいは配列が
1次元配列の場合に、サイズが変換先の言語と一致する
ときはそのまま、異なるときはサイズを一致させる変換
手段として機能させるプログラムを記録したコンピュー
タ読取可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11174733A JP2001005674A (ja) | 1999-06-21 | 1999-06-21 | データ受渡装置および記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11174733A JP2001005674A (ja) | 1999-06-21 | 1999-06-21 | データ受渡装置および記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001005674A true JP2001005674A (ja) | 2001-01-12 |
Family
ID=15983723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11174733A Pending JP2001005674A (ja) | 1999-06-21 | 1999-06-21 | データ受渡装置および記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001005674A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010110430A1 (ja) * | 2009-03-26 | 2010-09-30 | 日本電気株式会社 | プログラムの飜訳装置、飜訳方法、ならびに、記録媒体 |
JP2021077306A (ja) * | 2019-11-06 | 2021-05-20 | 財團法人資訊工業策進會 | データ解読装置、方法及びそのコンピュータプログラム製品 |
-
1999
- 1999-06-21 JP JP11174733A patent/JP2001005674A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010110430A1 (ja) * | 2009-03-26 | 2010-09-30 | 日本電気株式会社 | プログラムの飜訳装置、飜訳方法、ならびに、記録媒体 |
JP2010231312A (ja) * | 2009-03-26 | 2010-10-14 | Nec Corp | プログラムの飜訳装置、飜訳方法、ならびに、プログラム |
CN102365622A (zh) * | 2009-03-26 | 2012-02-29 | 日本电气株式会社 | 翻译设备、翻译方法和程序存储介质 |
US8527968B2 (en) | 2009-03-26 | 2013-09-03 | Nec Corporation | Translation device, translation method, and storage medium for program |
JP2021077306A (ja) * | 2019-11-06 | 2021-05-20 | 財團法人資訊工業策進會 | データ解読装置、方法及びそのコンピュータプログラム製品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH05265922A (ja) | ダイレクト・メモリ・アクセス・コントローラ | |
US4598359A (en) | Apparatus for forward or reverse reading of multiple variable length operands | |
JP2001005674A (ja) | データ受渡装置および記録媒体 | |
JP2617974B2 (ja) | データ処理装置 | |
James | Multiplexed buses: the endian wars continue | |
Lima Brito et al. | A new approach for the reversal distance with indels and moves in intergenic regions | |
JPS59114677A (ja) | ベクトル処理装置 | |
JPH04109339A (ja) | レジスタ番地指定回路及びそれを備えたデータ処理装置 | |
JP2004355432A (ja) | エンディアン変換回路 | |
TW464807B (en) | Post write buffer for a dual clock system | |
JPH0135376B2 (ja) | ||
JP2006515446A (ja) | 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム | |
JPS5831471A (ja) | ベクトル命令処理装置におけるコンフリクト・チエツク回路 | |
JP2905989B2 (ja) | 入出力制御装置 | |
JPH0588887A (ja) | データ処理装置 | |
Koch et al. | I2C Communication with the EV3 Intelligent Brick | |
JPH02230320A (ja) | データ処理装置 | |
JPS5858652A (ja) | 最適な変位の決定方法 | |
JP2667810B2 (ja) | ベクトル処理装置 | |
JP2588042B2 (ja) | データ処理回路 | |
JPH01201760A (ja) | Dma制御装置 | |
JPH0625966B2 (ja) | マイクロプログラム制御装置 | |
JPH11143710A (ja) | 処理対象値入力装置及びプログラム変換装置 | |
JPS63211030A (ja) | 推論処理デ−タ処理装置 | |
JPH01290049A (ja) | メモリアクセス制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050801 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050809 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20051213 |