JPS6267634A - 入力デ−タを出力デ−タ構造に一致させるオブジエクト・コ−ドを生成する方法 - Google Patents

入力デ−タを出力デ−タ構造に一致させるオブジエクト・コ−ドを生成する方法

Info

Publication number
JPS6267634A
JPS6267634A JP61214222A JP21422286A JPS6267634A JP S6267634 A JPS6267634 A JP S6267634A JP 61214222 A JP61214222 A JP 61214222A JP 21422286 A JP21422286 A JP 21422286A JP S6267634 A JPS6267634 A JP S6267634A
Authority
JP
Japan
Prior art keywords
input
output
components
structures
fields
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
Application number
JP61214222A
Other languages
English (en)
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS6267634A publication Critical patent/JPS6267634A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明はオブジェクト・コード生成方法に関し、この
オブジェクト・コードは実行時間において入力データ構
造を予じめ指定された出力データ構造に一致させる。さ
らに詳細には、少なくともいくつかの入力及び出力構造
が、少なくともいくつかの共通のフィールドを有するけ
れども、これらのフィールドは繰返し及び階層グループ
の分布で違っている場合に入力を出力データ構造に一致
させるオブジェクト・コード生成方法に関する。
〔開示の概要〕
この発明では、実行時において入力構造中のデータを出
力構造中に埋め込むことができるように、入力データ構
造の予じめ指定された出力データ構造への適合性を表わ
すオブジェクト・コードの生成方法が開示される。入力
及び出力構造の少なくともいくつかは、いくつかの共通
フィールドを持つけれども、これらのフィールドは反復
グループ及び階層グループの分布で違っている。この発
明の方法では予じめ指定されたフオームを特徴づけるの
に図形モデルを利用し、入力構造を出力構造のそれに一
致させるために図形の分布及び複雑さの違いに基づいた
一連の操作を利用する。
〔従来技術〕
多くの情報処理は種々の程度のデータ再構成を含んでい
る。データがソースから抽出され、又は、新しいフィー
ルドが生成されて出力に置かれる場合、得られる出力構
造はしばしば入力ソースの構造と異なっている。さらに
、種々の異なる又は分散されたシステムに記憶された情
報にアクセスしそして抽出する必要性の増加は、データ
の再構成を自動情報処理の欠くことのできない一部にし
ている。
データ再構成のための高レベル・オペレータヲ与える特
別な言語が、シューらによる”エクスプレス:データ抽
出、処理及び再構成システム”、データ・ベース・シス
テムに関するACMトランザクション、Vol、2、屋
2.1977.6.134−174ページ、及びキタガ
ワらによる″様式書類管理システム5PECDOQ−そ
のアーキテクチャ及びインプリメンテーション”、オフ
ィス情報システムに関する第2ACM−8LGOA会議
の会報、1984.6.132−134ページに報告さ
れている。しかし、これらの言語は″高レベル”である
けれども、いまだ゛手順的″である。これらの言語を利
用するためには、普通、手動または手作業のステップ・
パイ・ステップの方式による再構成の方法を案出する必
要がいまだにある。
〔発明が解決しようとする問題点〕
この発明の1つの目的は、データ再構成を達成すること
ができるプロセスを自動化することである。この発明の
別の目的は、データ再構成が実際に呼び出されることが
できる時間に間に合うように自動データ再構成能力の再
様式化を減少することである。
上述の目的は、予じめ指定されたフオームを特徴づける
ために図形モデルを用いること及び入力構造を出力構造
に一致づけるために図形の分布と複雑さとの違いに基づ
く操作の一連を利用する方法によシ達成される。さらに
詳細には、この発明の方法は、後述されるように入力及
び出力データ構造が予じめ指定されている情報処理シス
テムにおいて用いられる。
C問題点を解決するための手段〕 この発明の方法は、入力データを出力データ構造に一致
させるためのオブジェクト・コードを生成する方法であ
って、 (、)  与えられた入力及び出力データ構造の型が(
1)平坦型、(2)一分岐型、まだは(3)木型のいず
れかであるかを確認し; (b)  確認された型の差に従って、入力を出力デー
タ構造に一致させるためにトリミング、平坦化、継ぎ木
、ストレッチングの組合せから選ばれた最小の操作を決
定し: (c)定義テーブルから選択された操作が呼び出される
べき各場合を決定し;そして (d)  入力データ構造に対して(、)、(b)、(
c)のステップで指定された操作の順序を実行する;と
いうステップを有する。
ステップ(c)は、出力データ構造が入力データ構造よ
りも複雑である場合はさらに修正される。このような場
合、出力構造は反復的にその構成要素の平坦、一分岐、
又は木型に分解される。この反復分解は、出力構造の各
部分構成要素が入力データ構造について基本的操作で得
るこ浜ができるまで続けられる。最後に、ステップ(d
)は、所望の最終出力構造を合成するために、部分構成
要素がステップ・パイ・ステップで結合されるように、
修正される。
従来技術として、シュネイダーマンとトーマスの゛′自
動関係データ・ベース・システム変換のアーキテクチャ
”、ACM  TODS、1982゜6、及びIBM 
 DO8RPGIIと共にIBM刊行物G IMGC2
6−4070、″データ抽出(DXT)” 1984.
4には、データをより下位のレベルに分散することによ
る′”階層″データが含まれている。しかし、これらの
従来技術には、簡単な操作の組合せと共に、図形分解に
基づく型の差のステップが、どんな入力データ構造をも
再分配して、予じめ指定された出力データ構造に一致さ
せることができることを示唆または教示するものはない
ベックマン等の米国特許第4130867号6データ・
ベースの配録タイプを決定するためのデータ・ベース命
令装置“、1978年12月19日、及びベリー等の米
国特許第4429327号”文書処理システムで構造化
データ及びストリング・データを統合化する方法“、1
984年1月31日は、特許における技術水準を示すも
のである。処理及びCPU資源の使用を促進する目的の
ために入力データ型を認識することが、ベリーの特許で
は文書の総合化に関して、ベックマンの特許ではデータ
・ベース・ファイルに関して、使用されている。
ベリーの文書処理システムにおいて、出力フォーマット
は混合および可変の長さの両方のファイルが適当に連結
されなければならない無限のテープのフォーマットであ
る。ベックマンにおいて、ファイル構造の特徴化は、フ
ァイルのアクセス及び処理に関連する必要な処理要素を
識別する。最も重要なことは、この発明のように、フィ
ールドの階層的及び反復グループの再分配を含むデータ
構造の一致の問題についてはどこにも説明されていない
ことである。
〔実施例〕
この発明の方法は、出力フォーマットの明確な記述、出
力の構成要素のソース、各入力の明確な記述、及び入力
を結びつける突合せフィールドが与えられると、入力及
び出力データ構造の違いによシ、データ再構成を実行す
る実行オブジェクト・コードを生成する。入力及び出力
は任意の複雑さの階層構造を有しているかもしれないこ
とに注意しなければならない。もし選択基準及び事実の
所望の配列が知られるならば、あつらえられたオブジェ
クト・コードは、出力フオームが作成されている間に、
要求された選択及び分類をも実行するであろう。これら
の関係は、第1図に概括的なレベルで記載されている。
実行時間に再構成を達成するために、この発明の方法で
得られたオブジェ、クト・コードのひき続く使用と共に
コンパイルの性質が示さ゛れている。
この発明では、4つのタイプの操作がデータ再構成のた
めに用いられる。データ・モデルは木、循環なしの図形
である。命名法は森林経営からの良く理解された語から
成っている。操作は、トリミング、平坦化、ストレッチ
ング、及び継ぎ木を含む。これらの操作自体はこの発明
の本質ではないけれども、これらの操作の組合せ使用は
この発明と関連がある。これらの操作は、1979年7
月に出版されマニュアル゛定義と変換″、刊行物番号5
H20−2178に説明されているIBMプログラム製
品A3796  PLHから採用された。
トリミング操作は、データ構造から不要なフィールド及
び(又は)グループを取り去る。すなわち、この操作は
入力からデータを抽出して、フィールド間に存在する階
層関係を変更することなくこのデータを出力に置く。算
術及びストリング機能は、得られた値が所定の出力フィ
ールドに置かれる前に、抽出された値について実行する
ことができる。さらに、条件が指定されているならば、
条件を満足するデータの入力例のみが出力例を構成する
のに用いられる。
平坦化操作は、階層路に沿って親鍵値を伝達することに
よシ、入力分岐を平坦型に変える。平坦型とは構造が反
復グループを持たない型をいう。
また、ストレッチング操作は入力構造の根レベルから鍵
値を因数分解することにより、階層レベルを拡張する。
最後に、継ぎ木操作は、根(先端)レベルで突き合わせ
フィールドの値を突き合わせることにより、2つの階層
を水平に結合してより広い階層を形成する。
この発明の方法では、最初のステップは関連ファイルの
データ構造の型を確定することである。
データ構造は3つの異なる型、すなわち、平坦型、一分
岐型、または木型に分類される。型決定は、構成要素の
記述を検査してフィールドの反復グループを識別するこ
とにより進められる。検査の際、フィールドの反復グル
ープ数がカウントされ、そして、フィールドの反復グル
ープの最大レベルが記録される。フィールドの反復グル
ープのレベル数はそのフィールドの入れ子構造と共に増
加するので、検査が完了した時に次の6つのケースの内
の1つが生ずる。
ケース1 もし、反復グループのカウントが雰の時、データ構造は
“平坦型”である。
ケース2 もし、反復グループのカウントが反復グループの最大レ
ベルと等しければ、各レベルに1つだけの反復グループ
がある。従って、データ構造は″一分岐型″である。
ケース6 以上でなければ、反復グループの数は反復グループの最
大レベルよシも大きい。すなわち、少なくともルベルは
1以上の反復グループを持っている。この構造の型はパ
木型″である。
平坦型、一分岐型、および木型の複雑さはそれぞれ1.
2および3とランクづけられる。入力及び出力構造の相
対的複雑さは、オブジェクト・コードを生成する方法と
関係がある。
単一の入力構造が含まれるこの発明の方法について考え
て見ると、入力及び出力構造の型と複雑さが決定された
後で、必要な再構成が基本的な操作で達成できるかどう
か決定する必要がある。基本的操作とは、(1)トリミ
ング、(2)平坦化、(3) ト’Jミングが後にくる
平坦化、(4)ストレッチング、または(5)ストレッ
チングが後にくる2または3の場合である。これら5個
の基本的操作は−次の操作”と名付けられる。
第4図を参照すると、出力が与えられた入力を°′トリ
ミングすることによ9作ることができるかどうかを決定
するテストが示されている。1トリミング可能″である
ためには、構成要素間の階層関係は再構成の際に乱され
てはいけない。すなわち、たとえフィールドのグループ
内で構成要素の位置が変ったとしても、その相続関係は
変化してはいけない。大切なことは、フィールド及び(
又は)フィールドのグループのいくつかは省略されても
よく、また、新しいフィールドが発生されて出力に付は
加えられもよい。
第2図を第4図と一諸に参照すると、目的はトリミング
操作を用いて入力構造から出力構造が形成できるかどう
かを確かめることであることは明らかである。最初の例
において、入力構造の複雑さが出力構造の複雑さよシも
大きい所でトリミングが呼び起されるかもしれない。第
2図においては、入力は木型であるけれども出力の形は
一分岐型であることに注意すべきである。この結果、入
力の複雑さは出力の複雑さよシも大きい。トリミング操
作が可能であるので、次のテストを考慮しなければなら
ない。次のテストでは、入力及び出力フィールド内で階
層レベルの変化があるかどうかを考察する。第2図にお
いて、例えば、入力構造中の製品番号フィールドは根レ
ベルにあるが、一方、出力構造中の製品番号フィールド
は第2レベルにある。明らかに、階層変化がある。この
結果、トリミング操作は不可能である。出力がトリミン
グ不可能であると決定されたので、平坦化が可能である
かどうかを確認しなければならない。
第5図を参照すると、もし出力が平坦であるならば、平
坦化操作は当然の候補となるケースである。平坦さに加
えて2つの条件が満足されなければならない。第1の条
件は、出力構造の作成に必須なソース構成要素は単一分
岐に属していなければならない。このソース分岐は、分
岐型又は木型内の1つの分岐のいずれでもあシ得る。第
2の条件は、入力構造の少なくとも1つのフィールドは
分岐に沿った各階層レベルから抽出されなければならな
いことである。第2図を第5図と共に参照すると、もし
出力が平坦な構造を持っていなければ、それは明らかに
平坦化操作の対象ではない。
しかし、出力が平坦構造を有する場合でも、その適合性
を確認するためにいくつかの追加のテストを受けなけれ
ばならない。今、もし出力を作成するのに必要な全ての
構成要素が入力構造の1つの分岐に属していなければ、
システムへエラー・メツセージが与えられる。木の2又
はそれ以上の分岐が互いに直接に関係しない場合には、
2又はそれ以上の分岐を平坦にしてこれらを単一の平坦
な出力構造中に置くことは何ら利益がない。全ての構成
要素が入力の1つの分岐に属する時、次のテストは入力
の必要な構成要素間で階層レベルの飛び越しがあるかど
うかである。もし、レベルの飛び越し又は回避がなけれ
ば、平坦化が適当である。
例として、子yと孫2とを有するフィールドXの3つの
階層レベルを持つ入力構造と、Xと2のみが存在する出
力構造とを考える。これは階層レベルの飛び越しを含み
、平坦化は不可能である。しかしながら、2つの操作を
考慮すると、1つの操作で階層人力X、y及び2を平坦
な出力の型に平坦化し、次にフィールドをX及び2のみ
に減少するために平坦化された型にトリミングを行うこ
とができる。
今、第2図を第6図と共に参照すると、ストレッチング
を用いる可能性を確認するだめのテストが示されている
。ストレッチングは、(1)新しい階層レヘルノ拡張カ
ソース・7オームの根レベル・フィールドから生じ又か
らのみ生じる必要があシ、そして(2)、(1)に関係
する構成要素以外の対応する出力及び入力構成要素対が
−貫”した階層関係を示す必要があるところに、含まれ
る。例として、もし入力構造の根レベルにおいてフィー
ルドX1b1及びCが存在するならば、ストレッチは出
力構造中にxl b及びCを階層的に置くことを含むで
あろう。再び第2図と第6図とを参照すれば、入力及び
出力構造の両方のフィールド間に階層的差異が存在する
所では、比較突合せがいかなる拡張もソース・フオーム
の根レベルから及びからのみ生ずるかどうかを確認する
ために行われなければならないことに注意しなければな
らない。例えば、第2図中のフィールド、製品番号、製
品名及びタイプはレベル1であり、一方、出力型ではこ
れらはレベル2である。最大の差は2−1=1である。
今、第6図に示される第2のテストに進むと、根レベル
の下の入力構造内のフィールドと出力構造中のもしある
ならば対応するフィールドとの間のレベルの差を検査す
る必要がある。第2図において、これらのフィールドは
売主名、組番号、及び位置などである。これらは入力構
造ではレベル2にある。しかし、売主名は出力構造でレ
ベル1に出現する。レベルの差は1−2=−1である。
これはMAX  DIFに関して計算されたレベルの差
と異なるので、出力構造はストレッチ可能ではない。
第7図を参照すると、ストレッチングが適用できないと
この方法で決定された時点で、データ構造の型が考慮さ
れる。出力構造が分岐であり、入力構造が分岐かまだは
出力の作成に必須な全ての構成要素が入力水の単一の分
岐に属している時に、変換は平坦化操作の後でストレッ
チングを行うことによシ達成できる。さもなければ、こ
の方法は混合化で進められる。第2図の例では、混合化
は必要でない。なぜならば、出力に必要な全ての構成要
素は入力構造の1つの分岐に属していて、ストレッチン
グが後に続く平坦化操作が可能である。
第11図を参照すると、選択された操作が呼び起こされ
る各場合又は出力データ構造が入力よりも複雑である各
場合を決定する定義テーブルが示されている。後者のよ
うな状況では、混合化が呼び起こされるであろう。第8
図を参照すると、混合化の流れが示されている。混合化
は2つの過程を含む。これらの過程は分解と合成である
。分解過程において、出力データ構造は部分木(すなわ
ち、フィールドの反復グループ)に分解される。
親鍵フィールドに連結された各部分木は中間ファイルと
して取扱われ、入力中の6の対応部分と比較される。こ
れら部分木は目的の出力構造の構成部分であるので、よ
り単純な構造を持っている。
中間ファイルのデータ構造は入力よシも単純であり、基
本的操作が適用できそうである。中間ファイルの生成に
混合化が必要である場合、分解が反復して行われ、最後
に基本的操作を呼び起こすことができるようまでになる
。この結果、この発明の方法は全ての中間ファイルを必
要な操作でもって指示すを付けることができる。
分解過程の完了した時、合成過程が開始する。
本質的に操作(分解過程中に指示された)は入力から中
間ファイルを作成するために上から下、左から右の順序
で適用される。中間ファイルは、所望の出力構造を作成
することができるまで、下から上へ、右から左への順序
で対を形成するように継ぎ木される。2つの中間ファイ
ルの継ぎ木は2つの入力データ構造の継ぎ木と区別でき
ない。
第9図を第10図と一諸に参照すると、第9図にはそれ
ぞれ平坦型と木型の入力及び出力データ構造が描かれて
いる。明らかに、出力構造は入力よシもずっと複雑であ
る。混合化は分解過程を必要とするので、より複雑な(
出力)構造を部分木に分解する必要がある。そして、部
分木は親鍵と連結される。親鍵は部分木を一諸に結び合
わせるのに用いられる。合成過程において、分解過程に
おいてしるし付けられた操作に基づいて仮り・の出力を
作成するためのコードを上から下、左から右への順序で
生成することが要求される。次のステップは、所望の出
力が生成されるまで、仮りの出力を下から上、右から左
への順序で対として取ることである。第10図において
、親鍵はDNOであり、所望の出力構造を得るためにト
リミング、ストレッチング及び継ぎ木の操作が用いられ
る。
前述したように、継ぎ木操作は、入力構造の対応して突
き合わせられたフィールドの値を突き合わせることによ
シ、2つの階層を並べて結び合わせる。基本的操作とし
て、突き合わせフィールドは両方の入力の根レベルから
抽出されなければならず、出力構造の根レベルに出現し
なければならない。さらに、出力構造から第2の入力の
突き合わせフィールドを除去することを除いて、大よそ
、入力構造の各々はその全体が出力構造に組み込まれる
。この操作の間、いかなる部分の再構成も許されない。
従って、もしユーザーが指定した入力構造が継ぎ木操作
に対して“′望ましい”入力構造でなければ、予じめ指
定された入力から所望の入力へ変換することは継ぎ木操
作の前に実行されなければならない。継ぎ木は2つの入
力構造を並べて結び合わせることであることを思い出す
べきである。複雑さは、例えば、木の複雑さを持ったデ
ータ構造が含まれるととにある。
第12.13、及び14図を参照すると、継ぎ木操作の
例が説明されている。第13図の流れ図によれば、分解
過程は適当なテストにより進められる。
第13図を参照すると、全ての突き合わせフィールドが
出力構造の根レベルに現われる時点で、出力データ構造
は2つの部分に分解されることを示している。突き合わ
せフィールドは部分の両方に含まれる。そして、各部分
はその対応するソース・ファイルと比較され、継ぎ木操
作の前準備を行う必要があるかどうかが決定される。
もし、部分がその対応するソースに等しいならば、ソー
ス・ファイルを継ぎ木操作のための所望の入力構造とし
て直接に用いることができる。さもなければ、ソース・
ファイル以外の部分が継ぎ木操作のための所望の入力と
してみなされる。この方法は、ソース・ファイルをこの
部分に変換する仕方を考えなければならない。問題は、
一つの入力構造から中間ファイルを作成することに減少
されている。これは前述された。所望の入力構造の両方
が準備された時、継ぎ木操作をそれから実行することが
できる。前述したように、継ぎ木操作は2つの入力構造
を並列に結び合わせる。従って、2つのソース・ファイ
ルからの構成要素が出力においてきちんと互いに分けら
れる時、継ぎ木操作はユーザーが指定した出力を作成す
ることができる。しかし、もし2つの入力からの構成要
素がユーザー指定の出力構造中に散在するならば、継ぎ
木操作の出力として中間型を指示する必要があるであろ
う。これに関し、トリミング操作が加えられて、目的の
出力のユーザーの仕様に従って構成要素の位置を再配置
できるようにしなければならない。例えば、入力1がx
、y、zを含み、入力2がx、a% bを含むと仮定す
ると、Xを突き合わせて入力1と入力2とを継ぎ木する
と、X、y、z、al bを得る。予じめ指定された出
力が1  ’Is  bz  a、Zである場合、この
継ぎ木操作の後にトリミング操作が必要とされるであろ
う。
第12図を第13.14図と共に参照すると、予じめ指
定された出力構造がソースとしてのDIRECTRYか
らNAME、PH0NE、及びENOを含み、ソースと
してのDEPからDNOを含んでいる。突き合わせフィ
ールドENOを含み、2つの部分(第14図を参照)が
形成される。これら2つの部分が予じめ指定された入力
と比較される時、どちらの部分も予じめ指定された出力
を作成する継ぎ木操作の所望の入力としては直接に用い
ることができない。前述した方法に従って、トリミング
操作によ、jl+DIRECTRYから部分1が変換で
き、一方、平坦化操作によpDEPから部分2が変換で
きる。部分1と部分2を継ぎ木すると予じめ指定された
出力を生じ、従って、継ぎ木操作後にはそれ以上の操作
を必要としない。
第15図を第16.17図と共に参照すると、いくつか
の突き合わせフィールドが出力の根レベルに存在しない
時の入力及び出力構造が示されている。このような場合
、この発明の方法によれば、継ぎ木操作の結果を保持す
るための中間ファイルを作成する必要がある。中間ファ
イルは、目的の出力の構造を最初にコピーし、その後に
全ての突き合わせフィールドを根レベルに押し込むこと
により準備される。押し込む際、突き合わせフィールド
の兄弟及び子孫は一体として運ばれる。問題は全ての突
き合わせフィールドは根レベルにある所で継ぎ木される
ことに減少される。これは前述した。やらなければなら
ないことは、ストレッチング操作を適用して継ぎ木の出
力を最終の出力に変換することである。
この発明の方法のステップは、異なる度合いの複雑さの
データ再構成を実行することができる。
なぜならば、これらは予じめ指定された入力及び出力デ
ータ構造にのみ依存しているからである。
入力及び出力データ構造は両方とも任意の複雑さの階層
構造を持っているであろうから、この発明は非常に大き
な範囲の応用を有する。
【図面の簡単な説明】
第1図は、この発明の方法による自動データ再構成を実
行時間において達成するために、コンパイル、およびそ
の後のオブジェクト・コードの使用を概略的に説明する
ブロック図、第2図は入れ子構造レベルに関して予じめ
指定された入力及び出力データ構造の例を示す図、第3
図は予じめ指定された入力及び出力に対してデータ構造
の型を決定するための方法の流れ図、第4図から第6図
までは確認された型の差に従って最小の操作を決定する
観点を示す流れ図、第7図は混合化が必要であるかどう
かを決定するだめのテストを示す流れ図、第8図は混合
化の流れ図、−第9図はそれぞれ平坦及び木型である予
じめ指定された入力及び出力構造の例を示す図、第10
図は混合化の分解及び合成過程を詳細に説明した図、第
11図は選択された操作が呼び起こされる時期、出力デ
ータ構造が入力よシも複雑であり、出力構造のその構成
型への分解が生ずる所を各側について決定する定義テー
ブル、第12図は2人力、1出力デ一タ構造変換問題を
詳細に示す図、第16図は全ての突き合わせフィールド
が出力構造の根レベルに現れる2つの入力から1つの出
力を作成する流れ図、第14図は第12図に示される入
力及び出力構造について第13図に説明された操作によ
って得られた結果を示す図、第15図は突き合わせフィ
ールドが出力の根レベルにない入力及び出力データ構造
を示す図、第16図は全ての突き合わせフィールドが出
力の根レベルで現われない2つの入力から1つの出力を
作成する方法の流れ図、第17A及び第1711図は第
15図の例について操作可能な第16図に示されたステ
ップの結果を示す図である。 出願人 インタボb佃か・ピ琳−マジーンズ・コ一せ々
→旧ン復代理人 弁理士  合   1)      
潔口r−コ ”z”x>定1んTJ)の方法 、(≠−えられ1;入力り゛′トリミング するこヒに
より畝功が生成てパ豐り呻1しう→h4次走1んt:め
のテスト 第4図 第5図 第7図 ;¥L合化の;たれ図 第8図 −誉 吐 混合化 介M逼、キ」 (1)と4]填it都奇、木L:を解1ル(2)硯従日
東祐tル @氏!柾 /I仝解及び4−戊i[tr>詳細2 第10図 1>石入力Iダはし′?麦填方2c走表7るぢ−プ゛J
し第11図 入力 出1゜ 仕儀・ r二′P)ん2入力、1出・カテー5フル邊代向羅め例
第12図 第13図 (1)と′fJ膚遣から部会(形成する(2)前岨沫盪
作 入力 出力 仕儀 第16図 第17A図

Claims (9)

    【特許請求の範囲】
  1. (1)入力及び出力データ構造が予じめ指定されている
    情報処理システムにあつて、実行時に入力データを出力
    データ構造に一致させるオブジェクト・コードを生成す
    る方法において、以下のステップ(a)、(b)、(c
    )、及び(d)を有する方法:(a)与えられた入力及
    び出力データ構造の型を(1)平坦型、(2)一分岐型
    、又は(3)木型のいずれかであると確認し; (b)確認された型の違いに従つて、入力を出力データ
    構造に一致させるために、トリミング、平坦化、継ぎ木
    、又はストレッチングの組から選択される最小の操作を
    決定し; (c)選択された操作が呼び出されるべき各場合を決定
    し; (d)ステップ(a)から(c)で指定された操作の順
    序を前記入力データ構造について実行する。
  2. (2)トリミング操作を呼び出すために、入力の複雑さ
    の順位が出力データ構造のそれよりも大きいか又は等し
    く、出力構造の全ての構成要素に対してそれらの階層レ
    ベルが入力構造の対応する構成要素と同じであり、そし
    て、出力の各構成要素の親が入力の対応する構成要素の
    親と同じでなければならない特許請求の範囲第(1)項
    記載の方法。
  3. (3)平坦化操作を呼び出すために、出力構造が全て同
    じ非階層順位のフィールドを持ち、出力を作成するのに
    必要な全ての構成要素が入力構造の1つの分岐のメンバ
    ーであり、そして、これら入力構造の必要な構成要素間
    で階層レベルの飛び越しが存在しない特許請求の範囲第
    (1)項記載の方法。
  4. (4)ストレッチング操作を呼び出すため、出力構成要
    素が1つの分岐を構成し、そして出力構造を作成するの
    に必要な全ての構成要素が入力構造の根レベルに存在す
    る特許請求の範囲第(1)項記載の方法。
  5. (5)ストレッチング操作を呼び出すため、入力の根レ
    ベルの構成要素が出力中に新しい階層関係を形成し、一
    方、他の全ての構成要素が入力及び出力構造の対応する
    構成要素間で一貫した親−子関係を維持する特許請求の
    範囲第(1)項記載の方法。
  6. (6)継ぎ木操作を呼び出すため、予じめ指定されたフ
    ィールドで突き合わされた2つの適当な入力構造が並ん
    で結び合わされ、前記適当な入力構造のそれぞれが予じ
    め指定された入力構造又は変換された構造のいずれかで
    ある特許請求の範囲第(1)項記載の方法。
  7. (7)前記ステップ(c)において、出力データ構造が
    入力よりも複雑である所で出力構造を反復的に平坦、一
    分岐、又は木型の構成要素に分解し、そして前記ステッ
    プ(d)において、出力データ構造を合成するために分
    解された型を一歩一歩結び合わせる特許請求の範囲第(
    1)項記載の方法。
  8. (8)分解過程において、出力構造をその部分木(フィ
    ールドの反復グループ)に分解し、各部分木をその親鍵
    フィールドと連結し、それらの中間ファイルを形成し、
    そしてその中間ファイルを入力構造の対応要素と比較す
    ることを含む特許請求の範囲第(7)項記載の方法。
  9. (9)合成過程において、上から下へ、左から右への順
    序で入力構造から中間ファイルを作成するために操作を
    順序付け、そして所望の出力構造が作成されるまで中間
    ファイル対を下から上へ、右から左への順序で継ぎ木す
    ることを含む特許請求の範囲第(7)項記載の方法。
JP61214222A 1985-09-13 1986-09-12 入力デ−タを出力デ−タ構造に一致させるオブジエクト・コ−ドを生成する方法 Pending JPS6267634A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US775868 1985-09-13
US06/775,868 US4680705A (en) 1985-09-13 1985-09-13 Automatic data restructurer

Publications (1)

Publication Number Publication Date
JPS6267634A true JPS6267634A (ja) 1987-03-27

Family

ID=25105779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61214222A Pending JPS6267634A (ja) 1985-09-13 1986-09-12 入力デ−タを出力デ−タ構造に一致させるオブジエクト・コ−ドを生成する方法

Country Status (3)

Country Link
US (1) US4680705A (ja)
EP (1) EP0214536A3 (ja)
JP (1) JPS6267634A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01121935A (ja) * 1987-11-06 1989-05-15 Hitachi Ltd プログラム作成方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1248238A (en) * 1985-10-17 1989-01-03 Francis D. Lawlor Compiler including retargetable data generation
JP2565310B2 (ja) * 1986-08-28 1996-12-18 株式会社日立製作所 知識ベースからデータベースへの変換装置
US5123103A (en) * 1986-10-17 1992-06-16 Hitachi, Ltd. Method and system of retrieving program specification and linking the specification by concept to retrieval request for reusing program parts
US5008819A (en) * 1987-10-07 1991-04-16 Gorbatenko George G Memory spaced array
JPH07104868B2 (ja) * 1988-04-08 1995-11-13 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン データ記憶検索システム
US4951196A (en) * 1988-05-04 1990-08-21 Supply Tech, Inc. Method and apparatus for electronic data interchange
US5410675A (en) * 1989-08-21 1995-04-25 Lisa M. Shreve Method of conforming input data to an output data structure and engine for accomplishing same
GB9005697D0 (en) * 1990-03-14 1990-05-09 Digital Equipment Int Data format conversion
US5151899A (en) * 1991-02-11 1992-09-29 Digital Equipment Corporation Tracking sequence numbers in packet data communication system
JP2972419B2 (ja) * 1991-11-27 1999-11-08 日本電気株式会社 データベース運用制御方式
US5423038A (en) * 1992-10-14 1995-06-06 Davis; Marilyn Specialized data management method
US5613118A (en) * 1994-06-20 1997-03-18 International Business Machines Corporation Profile-based preprocessor for optimizing programs
US5553227A (en) * 1994-08-26 1996-09-03 International Business Machines Corporation Method and system for visually programming state information using a visual switch
US5933834A (en) * 1997-10-16 1999-08-03 International Business Machines Incorporated System and method for re-striping a set of objects onto an exploded array of storage units in a computer system
US6772180B1 (en) 1999-01-22 2004-08-03 International Business Machines Corporation Data representation schema translation through shared examples
US6754666B1 (en) * 1999-08-19 2004-06-22 A2I, Inc. Efficient storage and access in a database management system
US7472044B2 (en) * 2004-03-22 2008-12-30 Delphi Technologies, Inc. Horizontally structured CAD/CAM modeling-vertical to horizontal conversion
US8136121B2 (en) 2005-03-16 2012-03-13 International Business Machines Corporation Graphical message format builder

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4044334A (en) * 1975-06-19 1977-08-23 Honeywell Information Systems, Inc. Database instruction unload

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
COMPUTER=1985 *
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01121935A (ja) * 1987-11-06 1989-05-15 Hitachi Ltd プログラム作成方法
JP2585311B2 (ja) * 1987-11-06 1997-02-26 株式会社日立製作所 プログラム作成方法

Also Published As

Publication number Publication date
EP0214536A3 (en) 1991-07-17
EP0214536A2 (en) 1987-03-18
US4680705A (en) 1987-07-14

Similar Documents

Publication Publication Date Title
JPS6267634A (ja) 入力デ−タを出力デ−タ構造に一致させるオブジエクト・コ−ドを生成する方法
Caine et al. PDL: A tool for software design
JP2624753B2 (ja) 上位仕様書作成方法
Simon Experiments with a heuristic compiler
Fellows Parameterized complexity: the main ideas and connections to practical computing
JP6663873B2 (ja) プログラム自動生成システム及びプログラム自動生成方法
Higo et al. Generating simpler ast edit scripts by considering copy-and-paste
Defant Troupes, cumulants, and stack-sorting
JP3871832B2 (ja) データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体
Wills Using attributed flow graph parsing to recognize clichés in programs
Gómez et al. An approach to the co-creation of models and metamodels in Enterprise Architecture Projects.
JP3502543B2 (ja) テストケース生成システム及びテストケース生成方法
JP5275087B2 (ja) プログラム生成装置およびブロック線図生成装置
Jungeblut et al. Directed acyclic outerplanar graphs have constant stack number
Glück et al. Transforming interpreters into inverse interpreters by partial evaluation
Jahn et al. e3prepToFoam: a mesh generator for OpenFOAM
JP2722358B2 (ja) プログラム作成支援システム
Lopez-Herrejon et al. Using hyper/J to implement product lines: a case study
JPH06110733A (ja) プログラムのテストケース生成装置
Bubalo et al. Modeling Low-Code Databases With Executable UML
Mallagaray Formalisation and execution of Linear Algebra: theorems and algorithms
Oliveira Programming with monoidal profunctors and semiarrows
Riché et al. Architecture design by transformation
JPWO2011090032A1 (ja) 並列処理プログラム生成方法、並列処理プログラム生成プログラム、及び並列処理プログラム生成装置
WO2021161428A1 (ja) プログラム生成装置、プログラム生成方法及びプログラム