JPH0520090A - 計算機システム - Google Patents

計算機システム

Info

Publication number
JPH0520090A
JPH0520090A JP19479691A JP19479691A JPH0520090A JP H0520090 A JPH0520090 A JP H0520090A JP 19479691 A JP19479691 A JP 19479691A JP 19479691 A JP19479691 A JP 19479691A JP H0520090 A JPH0520090 A JP H0520090A
Authority
JP
Japan
Prior art keywords
data
header
attribute information
data group
continuous area
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.)
Withdrawn
Application number
JP19479691A
Other languages
English (en)
Inventor
Yuko Tsuchiya
優子 土屋
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.)
Fuji Electric Co Ltd
Fuji Facom Corp
Original Assignee
Fuji Electric Co Ltd
Fuji Facom 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 Electric Co Ltd, Fuji Facom Corp filed Critical Fuji Electric Co Ltd
Priority to JP19479691A priority Critical patent/JPH0520090A/ja
Publication of JPH0520090A publication Critical patent/JPH0520090A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 リンク構造を有するデータ群の受け渡し操作
を簡単にする。 【構成】 リンク構造を有するデータ群を含むソースプ
ログラムをオブジェクトプログラムにコンパイルする際
に、データの属性情報を内容としたヘッダをデータごと
に付加しておく。データ群を受け渡す際に、付加された
ヘッダの属性情報を解析して(S41,42)、データ
群を構成する個々のデータを連続領域に組立てる(S4
3〜51)。さらに、連続領域に組立てられたデータ群
をコピーして他へ送出する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は計算機システムに関し、
詳しくは計算機システム内の異なるプロセス間、媒体
間、あるいは計算機間において、C言語により記述され
たプログラム等のリンク構造をしたデータ群を受け渡し
することができる計算機システムに関する。
【0002】
【従来の技術】計算機システム内の異なるプロセス間、
媒体間あるいは計算機間で、C言語により記述されたプ
ログラム等のリンク構造からなるデータ群を受け渡しし
ようとする場合、通常は個々のデータのアドレスや配置
場所が異なるためデータが記憶されているメモリエリア
を、そのままコピーして受け渡しすることができない。
そこで、メモリ上に分散して配置されているデータを受
け渡す場合、従来は、個々のデータを1つの連続領域に
組立ててブロック化してから受け渡していた。この作業
は、コピーするデータ群の構造を熟知したプログラマが
リンク構造を有するデータ群ごとの組立ルーチンを作成
することによりおこなわれていた。同様にして、受け渡
しされたデータ群についても、プログラマが作成した分
解ルーチンを用いて分解されて復元される。
【0003】
【発明が解決しようとする課題】ところで、上述した従
来のデータ群コピー方式では、組立/分解ルーチンを作
成する場合、対象のデータについて熟知したプログラマ
でなければ、データ構造の解析に多大の時間を要する。
また、データ構造が複雑になればなる程、組立/分解ル
ーチンも複雑になり、しかも、データ構造に変更がある
たびに、組立/分解ルーチンを修正しなければならない
煩わしさがある。本発明は上記問題点を解決するために
なされたもので、その目的とするところは、データ構造
を熟知したプログラマの作成する組立/分解ルーチンに
たよることなく、リンク構造を有するデータ群を容易に
受け渡しすることができる計算機システムを提供するこ
とにある。
【0004】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、リンク構造を有するデータ群を含むソー
スプログラムをオブジェクトプログラムにコンパイルす
る際に、データの属性情報を内容としたヘッダをデータ
ごとに付加する手段と、付加されたヘッダの属性情報に
基づき、データ群を構成する個々のデータを連続領域に
組立てる手段と、連続領域に組立てられたデータ群をコ
ピーして、他へ送出する手段とを有することを特徴とす
る。
【0005】
【作用】本発明においては、リンク構造を有するデータ
群を含むソースプログラムをオブジェクトプログラムに
コンパイルする際に、データの属性情報を内容としたヘ
ッダがデータごとに付加され、その付加されたヘッダの
属性情報に基づき、データ群を構成する個々のデータが
連続領域に組立てられる。さらに、連続領域に組立てら
れたデータ群がコピーされて他へ送出される。
【0006】
【実施例】以下、図に沿って本発明の実施例を説明す
る。実施例では、C言語で記述されたソースプログラム
をコンパイルしてオブジェクトプログラムを得る場合の
データのコピー手順について述べている。先ず、ソース
プログラムをコンパイルする際、データである構造体に
対し複数の属性情報からなるヘッダを生成して、その先
頭アドレスの直前に付加する。
【0007】図1は、ヘッダとして生成される属性情報
を示すものである。図において、11は属性情報の1単
位であり、“データ型識別子”と、“データ型識別子ご
とのパラメータ”から構成される。“データ型識別子”
の具体的な内容は、データ型識別子の分類12に示すよ
うに、ポインタを意味する“1”と、実データを意味す
る“2”と、構造体を意味する“3”とがある。実デー
タ“2”としては、例えばchar,int,shor
t,long,unsigned等がある。“データ型
識別子ごとのパラメータ”の具体的な内容は、図示され
るように、実データおよびポインタではサイズであり、
構造体ではサイズおよびメンバ数である。なお、構造体
をメンバとして有する構造体の場合はその下位の構造体
のヘッダ長もサイズに含む。
【0008】図2は、ポインタと実データのみをメンバ
とする構造体におけるデータ22と、データ22に対し
て付加されたヘッダ21の配置を示す説明図である。図
に示すように、データ22ではアドレスが増加する方向
にメンバ1〜メンバnが配置されている。これに対し、
ヘッダ21は、アドレスが減少する方向に、構造体の属
性情報、次いでメンバ1〜メンバnについての属性情報
が配置されている。
【0009】図3は、構造体がさらに構造体をメンバと
して階層的に有する場合の配置を示す説明図である。図
に示すように、データ32に対してヘッダ31が付加さ
れ、さらにデータ32の内部に、メンバiとして構造体
を有する。このメンバiをデータ34とし、その属性情
報がヘッダ33としてデータ34の直前に配置される。
ヘッダ31の長さ、すなわちヘッダ長は、図1のように
単位ヘッダ長が4バイトであれば(1+メンバ数n)×
4バイトとなり、同様にヘッダ33のヘッダ長は(1+
メンバ数m)×4バイトとなる。これにより、構造体の
ヘッダの始まりをそのつど明示する必要がなくなり、へ
ッダの終了は構造体の属性情報31−0,33−0等の
メンバ数から知ることができる。
【0010】次に、ヘッダを用いて上記データ群を1つ
の連続領域のブロックに組み立てる手順について説明す
る。図4はその組立てルーチンを示すフローチャートで
ある。この組立てルーチンでは、次に示す3個のパラメ
ータが用いられる。 sdata:構造体データのアドレス block:空き連続領域ブロックのアドレス cflag:構造体のコピーの有無を示すフラグ
【0011】図において、最初にcflagにより、構
造体のコピーの有無を判別する(S41)。ここでcf
lagが1であれば(S41Yes)、sdataに指
定される構造体がさらに上位の構造体にポインタにより
リンクされている。この場合のsdataとblock
との関係を図5に示す。また、cflagが0であれば
(S41No)、sdataに指定される構造体は、す
でに連続領域にコピーされた構造体のメンバの1つであ
る。この場合のsdataとblockとの関係を図6
に示す。図4に戻り、cflagが1の場合、構造体の
コピーを開始する。それには、構造体の属性情報を解析
して、サイズ、メンバ数からそれぞれ次の値を算出する
(S42)。
【0012】・ヘッダ長=(1+n)×4 ・ヘッダ先頭アドレス=sdata−ヘッダ長 ・コピーサイズ=ヘッダ長+サイズ 次いで、該当する構造体をblockの連続領域にコピ
ーし、さらにblockの値にコピーサイズを加算し更
新する(S43)。これらの操作の過程を示したのが図
7である。なお、以上のS41〜43が基本操作であ
る。
【0013】S43が終了し、また、S41においてc
flagが0の場合は、メンバ数カウンタの値に“1”
をセットする(S44)。次に、メンバ数カウンタの値
とメンバ数を比較し、メンバ数カウンタの値がメンバ数
以下である場合(S45Yes)、メンバ1からその属
性情報を順次解析し、データ型識別子を得る(S4
6)。データ型識別子が“1”のポインタである場合
は、アドレスをオフセット値に変換して、各パラメータ
の再設定をしてから組立てルーチンを再帰呼出しする
(S48,49)。次いで、メンバ数カウンタをインク
リメントし(S51)、S45へ進む。
【0014】ここでの処理を具体的に述べると、図8に
おいて、例えばメンバ82−iについての属性情報81
−iのデータ型識別子が“1”(ポインタ)であるとす
ると、ヘッダ81およびデータ82がコピーされている
連続領域の先頭アドレスと、メンバ82−iのアドレス
とのオフセット値を求めてsdataの値とする。すな
わち、各パラメータはそれぞれ次のように設定される。 sdata:オフセット値からなるメンバ82−iのア
ドレス block:空き連続領域83の先頭アドレス cflag:1
【0015】データ型識別子が“2”(実データ)であ
る場合は、なにも操作を加えることなく、メンバ数カウ
ンタをインクリメントし(S51)、S45へ進む。デ
ータ型識別子が“3”の構造体であるである場合は、各
パラメータを再設定してから組立てルーチンを再帰呼出
しする(S50)。次いで、メンバ数カウンタをインク
リメントし(S51)、S45へ進む。ここでの処理を
具体的に述べると、図9において、例えばメンバである
構造体92−iについての属性情報91−iのデータ型
識別子が“3”(構造体)であるとすると、組立てルー
チンを再帰呼出しする際に、各パラメータはそれぞれ次
のように設定される。
【0016】sdata:構造体92−iであるメンバ
iの先頭アドレス95 block:空き連続領域の先頭アドレス96 cflag:0 以上のS45〜51が基本操作である。次いで、基本
操作が各メンバについて終了したら、基本操作とし
て、空き連続領域のアドレスを戻り値として終了する。
【0017】この組立てルーチンは、基本操作〜を
実行する共通の方法だけで、構造体のリンクをたよりな
がら個々の構造体を再帰的に呼び出していくことによ
り、1つの連続領域のブロックを組立てることができ
る。しかも、再帰呼出しを用いたことにより、組立てル
ーチンの構成が極めて簡単になる。次に、具体的なソー
スプログラムのコンパイル例を示す。C言語で以下のプ
ログラムを記述する。
【0018】 example.c main() { struct D{ int i; int j; }; struct B{ int f; struct D*g; struct D*h; }; struct A{ int a; struct B*b; struct C{ int d; struct D*e; }c; }; struct A A; struct B B; struct D D1; struct D D2; struct D D3; B.g=&D2; B.h=&D3; A.b=&B; A.c.e=&D1; }
【0019】このプログラムをコンパイルした場合の各
データのメモリ上の配置は、図10のようになる。図で
は、それぞれのデータにヘッダが付加されているととも
に、データがポインタによりリンクされている。これら
のデータ群を、図4の組立てルーチンにより、連続領域
のブロックに組立てると、図11のように配置される。
このようにして連続した配置となるため、このまま他の
プロセス、媒体、計算機へコピーすることで、一連のリ
ンク構造をしたデータ群の移動が簡単におこなえる。
【0020】さらに、移動されたデータ群は、移動先に
おいて、ヘッダの個々の属性情報が順次解析されて、元
のリンク構造が復元される。ここでの復元操作として
は、データ型識別子がポインタであれば、対応するデー
タ領域には連続領域の先頭アドレスからのオフセット値
が入っているので、これに移動先のメモリ空間における
連続領域の先頭アドレスを加算して実アドレスに変換す
る。また、他には、ユーザが用意した領域にデータを渡
すことも可能である。すなわち、連続領域全体をコピー
してリンクをとることと、すでにリンクされた個々の構
造体にそのリンクを壊さずにコピーすることが可能であ
る。
【0021】
【発明の効果】以上述べたように本発明によれば、リン
ク構造を有するデータ群を含むソースプログラムをオブ
ジェクトプログラムにコンパイルする際に、データの属
性情報を内容としたヘッダがデータごとに付加され、そ
の付加されたヘッダの属性情報に基づき、データ群を構
成する個々のデータが連続領域に組立てられ、さらに、
連続領域に組立てられたデータ群がコピーされて他へ送
出されることにより、リンク構造を有するデータ群を容
易に受け渡しすることが可能となる。
【0022】すなわち、データ群ごとの特別な組立てル
ーチンの作成や保守なしに、計算機システム内の異なる
プロセス間、媒体間、あるいは計算機間におけるデータ
の受け渡しができるようになるため、データ構造を熟知
したプログラマにたよることなくデータ群の移動(コピ
ー)が可能となる。また、作成したプログラムについて
トレースやデバッグをする際、ヘッダの属性情報の利用
が可能になるため、データの参照、収集が容易におこな
える。
【図面の簡単な説明】
【図1】本発明の実施例おいてデータごとに付加される
ヘッダの構成を示す説明図である。
【図2】データとヘッダの配置を示す説明図である。
【図3】データとヘッダの配置を示す説明図である。
【図4】組立てルーチンを示すフローチャートである。
【図5】パラメータの指示内容を示す説明図である。
【図6】パラメータの指示内容を示す説明図である。
【図7】パラメータの指示内容を示す説明図である。
【図8】組立てルーチンの操作の説明図である。
【図9】組立てルーチンの操作の説明図である。
【図10】コンパイルされた各データのメモリ上の配置
例を示す図である。
【図11】組立てられた連続領域ブロックの一例を示す
図である。
【符号の説明】
11 属性情報 12 データ型識別子の分類 21 ヘッダ 22 データ 31 ヘッダ 31−0 属性情報 32 データ 33 ヘッダ 33−0 属性情報 34 データ 81 ヘッダ 81−i 属性情報 82 データ 82−i メンバ 91−i 属性情報 92−i 構造体 95 メンバiの先頭アドレス 96 空き連続領域の先頭アドレス

Claims (1)

  1. 【特許請求の範囲】 【請求項1】 リンク構造を有するデータ群を含むソー
    スプログラムをオブジェクトプログラムにコンパイルす
    る際に、データの属性情報を内容としたヘッダをデータ
    ごとに付加する手段と、 付加されたヘッダの属性情報に基づき、データ群を構成
    する個々のデータを連続領域に組立てる手段と、 連続領域に組立てられたデータ群をコピーして、他へ送
    出する手段と、 を有することを特徴とする計算機システム。
JP19479691A 1991-07-09 1991-07-09 計算機システム Withdrawn JPH0520090A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19479691A JPH0520090A (ja) 1991-07-09 1991-07-09 計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19479691A JPH0520090A (ja) 1991-07-09 1991-07-09 計算機システム

Publications (1)

Publication Number Publication Date
JPH0520090A true JPH0520090A (ja) 1993-01-29

Family

ID=16330404

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19479691A Withdrawn JPH0520090A (ja) 1991-07-09 1991-07-09 計算機システム

Country Status (1)

Country Link
JP (1) JPH0520090A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06295245A (ja) * 1993-03-30 1994-10-21 N T T Data Tsushin Kk オブジェクト通信方式
US8352700B2 (en) 2009-11-04 2013-01-08 Fujitsu Limited Memory management program and apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06295245A (ja) * 1993-03-30 1994-10-21 N T T Data Tsushin Kk オブジェクト通信方式
US8352700B2 (en) 2009-11-04 2013-01-08 Fujitsu Limited Memory management program and apparatus

Similar Documents

Publication Publication Date Title
US4868763A (en) Knowledge-based system having plural processors
JP2580536B2 (ja) オブジェクト指向言語における動的オブジェクトの管理方式
US4742467A (en) Automated programming system for machine creation of applications program source code from non-procedural terminal input
US6973638B1 (en) Execution of extended activity diagrams by code generation
DE69802839T2 (de) Gerät und verfahren welche objektorientierte programme die aus verschiedenen fachwerkversionen erzeugt sind zu kommunizieren ermöglicht
WO2000077643A1 (en) Computer program profiler
JPH07104981A (ja) オブジェクトリンク情報を用いたプログラム構築装置
EP0642077A1 (en) Open process control system
US5642513A (en) Method and apparatus for multiple autorouter rule language
Edwards et al. RECAST: Reverse engineering from COBOL to SSADM specification
US5642514A (en) Method and system for constructing compact executable files by eliminating redundant debugging strings
JPH0520090A (ja) 計算機システム
GB2324890A (en) Transforming object data
JP3660390B2 (ja) 用語辞書管理装置
JPH04205423A (ja) プログラム作成装置
Chou Mechanical verification of distributed algorithms in higher-order logic
JP3741450B2 (ja) 項目部品エレメントの実行方法および実行装置
Toyn et al. Efficient binary transfer of pointer structures
Rich et al. The Programmer's Apprentice: a program design scenario
JP4624044B2 (ja) プログラム間通信システム、プログラム間通信方法、データ構造生成システムおよびプログラム
JP3415354B2 (ja) 最小動作環境移行装置
US8432802B2 (en) Encapsulating frame of graphics data for replay
JP3560253B2 (ja) イベント駆動型処理装置およびイベント駆動制御方法
JPH0454635A (ja) 事務処理方法
JPH04153759A (ja) ネットワーク定義プログラム開発システム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19981008