(57)【特許請求の範囲】
【請求項１】
任意のアプリケーションのデータを含む実行時内部データ構造をハイパーテキストに変換するデータ構造−ハイパーテキスト変換装置であって、
前記データを含む実行時内部データ構造をハイパーテキストに変換するハイパーテキスト変換手段と、
ハイパーリンク情報とアドレス情報とを対応付けて管理するハイパーリンクテーブルとを有し、
前記ハイパーテキスト変換手段は、基本データ変換手段と複合データ変換手段と参照データ変換手段からなり、
前記基本データ変換手段は、作成中のハイパーテキストに対し変換対象の基本データの情報を出力し、
前記複合データ変換手段は、前記ハイパーテキスト変換手段を再帰的に呼び出すことで作成中のハイパーテキストに対して変換対象の複合データの全項目に関する情報を出力し、
前記参照データ変換手段は、前記ハイパーリンクテーブルを参照して、参照先のアドレスが登録されているか否かを判定し、登録されている場合には登録されていたハイパーリンクを作成中のハイパーテキストに対して出力し、登録されていなかった場合新たなハイパーテキストを作成し、前記ハイパーテキスト変換手段を再帰的に呼び出すことで参照先のアドレスのデータに関する情報を新たに作成したハイパーテキストに出力する、とともに、前記ハイパーリンクテーブルに新たに作成したハイパーテキストと参照先のアドレスとを対応付けて登録する、
ことを特徴とするデータ構造−ハイパーテキスト変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、任意のアプリケーション内の実行時内部データ構造を、例えば修正が容易な形式に変換する変換方式に係り、更に詳しくは内部データ構造をハイパーテキストに変換し、ハイパーテキストに対して用意されている一般的なツールを用いて修正などを容易に行うことができるようにする、データ構造−ハイパーテキスト変換装置に関する。
【０００２】
【従来の技術と発明が解決しようとする課題】
従来において任意のアプリケーション内の実行時データ構造を修正する場合には、修正専用のツールが用いられていた。しかしこのようなツールはアプリケーション毎に開発する必要があり、汎用的でなく、またツールの開発には非常に大きなコストがかかっていた。アプリケーションに対応して保持されているデータを、何らかの方法で通常のテキストファイルの形式に変換して、ディスクなどに保存する方法は従来から存在していたが、このような保存方法においては、元のデータ構造は直接的には反映されておらず、保存されたテキストに対してデータ構造の修正などの直接的な操作を行うことは困難であるという問題点があった。
【０００３】
一方本発明で用いられるハイパーテキストは、文書中の語句やそれにつけた見出し、更に見出しを集めた目次などが相互に関連づけられた文字データのファイルがその例であり、語句や見出しなどをたどる形でデータを引き出すことができ、効率的な情報検索に適している。文字以外にグラフィックスや音声、画像のデータも同じように扱うことができる。
【０００４】
ハイパーテキストとして最も有名なものがＨＴＭＬ（ハイパーテキストマークアップランゲージ）である。このＨＴＭＬは、インターネット上での文書情報システムＷＷＷ（ワールドワイドウェブ）に用いられているテキストデータ形式である。
【０００５】
このＨＴＭＬに代表されるハイパーテキストを対象としてその表示、修正、および配布などを行う一般的なツールは多数存在し、市販されている。一般にデータを表示する方法として、そのデータをハイパーテキストに変換して、ハイパーテキスト用のビュアを用いてデータを可視化するという簡単なインタフェースを構築する手段を用いることが行われているが、その場合にはもっぱら表示のみが行われ、データを復元することはできないという問題点があった。
【０００６】
本発明は、データをハイパーテキストに変換するにあたって、その変換結果からデータが復元されることをあらかじめ想定して変換を行い、任意のアプリケーション内の実行時内部データ構造をデータと共にハイパーテキストとして表示すること、そのデータを他のシステムに転送することによって実行時内部データ構造を共有すること、そのデータに対する修正などの操作を行うことを可能とさせるデータ構造−ハイパーテキスト変換装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
図１は本発明の原理構成ブロック図である。同図は、任意のアプリケーション内のデータを含む実行時内部データ構造をハイパーテキストに変換する、データ構造−ハイパーテキスト変換装置の原理構成を示すブロック図である。
【０００８】
図１において、ハイパーテキスト変換手段１は例えばハイパーテキスト変換装置であり、例えばコンピュータシステムのＣＰＵ側に保持されている実行時内部データ構造を、そのデータと共にハイパーテキストに変換するものである。
【０００９】
ハイパーテキスト記憶手段２は例えばハイパーテキスト保存装置としての外部記憶装置であり、実行時内部データ構造のハイパーテキストへの変換結果を記憶するものである。
【００１０】
本発明のデータ構造−ハイパーテキスト変換装置においては、ハイパーテキスト記憶手段２に記憶されている任意のアプリケーション内のデータを含む実行時内部データ構造を復元可能とするために、例えばデータ構造復元手段とデータ生成手段とが更に備えられる。
【００１１】
データ構造復元手段は例えばデータ構造復元装置であり、ハイパーテキスト記憶手段２に記憶されているハイパーテキストから実行時内部データ構造を復元するものである。またデータ生成手段は例えばデータ生成装置であり、データ構造復元手段の復元動作に際して、実行時内部データ構造において必要となるデータを生成するものである。
【００１２】
更に本発明においては、例えばデータの出力形式や出力データの選択方法などのデータの解析方法を、あらかじめ例えばサブルーチンなどの形式で定義し、その定義に従ってハイパーテキストへの変換、および内部データ構造の復元などを行うためのデータ−ハイパーテキスト変換定義が格納されるデータ−ハイパーテキスト変換定義格納手段が更に備えられ、例えばデータの型に対応して特殊処理を行うためのサブルーチンが指定される。
【００１３】
以上のように本発明によれば、アプリケーション内の実行時内部データ構造が、その表示および編集などが容易なハイパーテキストに変換され、データの修正などが容易となる。
【００１４】
【発明の実施の形態】
図２は、本発明のデータ構造−ハイパーテキスト変換装置の実施例としての、コンピュータシステムの構成を示すブロック図である。同図においてシステムは中央処理装置（ＣＰＵ）１１、ＣＰＵ側のメモリ１２、例えばディスクなどの外部記憶装置としてのハイパーテキスト保存装置１３、例えばハイパーテキストを対象とする市販の装置としてのハイパーテキスト表示装置１４、ハイパーテキスト編集装置１５、およびハイパーテキスト転送装置１６から構成されている。
【００１５】
ＣＰＵ側のメモリ１２の内部には、任意のアプリケーションの実行時内部データ構造をそのデータと共に格納する実行時内部データ構造格納メモリ２１、実行時内部データ構造格納メモリ２１の内容を用いてハイパーテキストへの変換を行うハイパーテキスト変換装置２２、ハイパーテキスト保存装置１３に格納されているハイパーテキストへの変換結果から実行時内部データ構造を復元するためのデータ構造復元装置２３、データ構造復元装置２３による内部データ構造復元にあたり必要なデータを生成するデータ生成装置２４、データの出力形式や出力データの選択方法などの特殊処理を、例えばサブルーチンの形式で格納し、ハイパーテキスト変換装置２２、およびデータ構造復元装置２３などに与えるデータ−ハイパーテキスト変換定義格納メモリ２５が備えられている。
【００１６】
図２において、ハイパーテキスト変換装置２２は変換対象となる実行時内部データ構造の解析を行い、そのデータ構造に対応するハイパーテキストを生成する装置である。すなわちハイパーテキスト変換装置２２は実行時内部データ構造の走査を行い、データを解析し、その出力方法を決定して内部データをハイパーテキストとして出力する。着目しているデータが他のデータへの参照を行うようなものであった場合には、新たなハイパーテキストを生成し、そのハイパーテキストへのリンクをハイパーテキスト内部に埋め込むことによってデータ参照関係の保存を行う。
【００１７】
生成されたハイパーテキストはハイパーテキスト保存装置１３に蓄えられ、汎用のハイパーテキスト表示装置１４によってその表示が行われる。またハイパーテキスト編集装置１５によって保存されているハイパーテキスト内のデータなどについて容易にその編集、修正などの操作を行うことができる。更に汎用のハイパーテキスト転送装置１６を用いて、例えばインターネットなどのネットワークを介して実行時内部データ構造の表現としてのハイパーテキストを他のシステムに転送することにより、アプリケーションの間での実行時内部データ構造の共有を行うことができる。
【００１８】
データ構造復元装置２３は、ハイパーテキスト保存装置１３に格納されているハイパーテキスト、すなわち任意のアプリケーション内のデータを含む内部データ構造を復元するものであり、ハイパーテキスト保存装置１３に保存されているハイパーテキストの先頭から順に文字列を読み込み、読み込んだ文字列に対して処理を行うことを繰り返してデータ構造の復元を行う。このデータ構造復元に際して、そのデータ構造において必要とされるデータがデータ生成装置２４によって生成され、復元された実行時内部データ構造は、そのデータと共に実行時内部データ構造格納メモリ２１に格納される。
【００１９】
次に図２のシステムの動作について、処理のフローチャートを用いて詳細に説明する。図３は。ハイパーテキスト変換装置２２によって実行される、実行時内部データ構造からハイパーテキストへの変換処理としてのハイパーテキスト変換アルゴリズムのフローチャートである。
このアルゴリズムでは、実行時内部データ構造に含まれる各種のデータが３種類に分類されて処理が行われるので、その分類についてまず説明する。第１の種類は基本データ型であり、これは、整数、浮動、少数、文字、文字列などのように特別な構造を持たない単純なデータ型である。第２の種類は、ある構造データにネストする形式で存在するデータ型としての埋め込み複合データ型である。第３の種類は参照データ型である。これは他の関連するデータの格納場所を示すデータ型である。全てのデータをこのような３種類のデータに分類した後に、そのデータ型に対応してハイパーテキストの生成が行われる。
【００２０】
図３において処理が開始されると、まずステップＳ１でデータ型が調べられ、ステップＳ２でそのデータ型が前述の３種類のいずれであるかが判定される。第１の種類としての基本データ型の場合には、ステップＳ３でデータ型の詳細、例えば整数であるか、文字列であるかなどが調べられ、ステップＳ４でその詳細なデータ型に対応する文字列変換サブルーチンが呼び出される。この文字列変換サブルーチンについては特に図示しないが、例えば文字列であれば「文字列の長さとその内容、例えば“ＡＢＣ”をプリントせよ。」というような極めて簡単な内容のサブルーチンである。その後ステップＳ５で全てのデータに対する処理、すなわちハイパーテキストへの変換処理が終了したか否かが判定され、終了していない場合にはステップＳ１からの処理が繰り返される。
【００２１】
ステップＳ２でデータ型が（埋め込み）複合データ型であった場合には、ステップＳ６で複合データ出力サブルーチンが呼ばれ、このサブルーチンの処理が実行される。このサブルーチンについては図５で説明する。複合データ出力サブルーチンの処理が終了すると、ステップＳ５で全てのデータに対する処理が終了したかが判定され、終了していない場合には再びステップＳ１からの処理が繰り返される。
【００２２】
ステップＳ２でデータ型が参照データ型であった場合には、ステップＳ７でハイパーリンクテーブルが検索される。このハイパーリンクテーブルは、新たなハイパーテキストが生成された場合に、そのハイパーテキストに対するリンクが登録されるテーブルである。
【００２３】
図４はハイパーリンクテーブルの例である。このハイパーリンクテーブルの内容としては、例えばデータａに対して生成されるハイパーテキストｄｅｔａ−ａ．ｈｔｍｌ  がメモリ上でどのアドレスに格納されているかを示すポインターがハイパーリンクに対応して格納されている。このテーブルはハイパーリンクをキーとして、そのハイパーリンクに対応するデータのメモリ上の位置を示すポインターを取り出すために使用される。
【００２４】
図３のステップＳ７でハイパーリンクテーブルが検索され、ステップＳ８でその参照データが登録されているか否かが判定される。登録されている場合には、ステップＳ９で現在のハイパーテキストに対して登録されていたハイパーリンクが出力され、ステップＳ５の処理に移行する。
【００２５】
ステップＳ８で参照データが登録されていないと判定された場合には、ステップＳ１０で新たなハイパーテキストが生成され、ステップＳ１１でこの新たなハイパーテキストに対するリンクがハイパーリンクテーブルに登録され、ステップＳ１２で図３のハイパーテキスト変換アルゴリズムが再帰的に呼び出される。
【００２６】
この再帰的な呼び出しという処理は、Ｃ言語やＬＩＳＰ言語で用いられるサブルーチン呼び出しの一般的な形式であり、次のような順序で特殊処理が行われる。
【００２７】
▲１▼作業変数をスタックに積む。
▲２▼サブルーチン専用の作業領域を新たに確保する。
▲３▼サブルーチンを呼び出す。
【００２８】
▲４▼サブルーチン専用の作業領域を解放する。
▲５▼スタックに積まれた作業変数を元に戻す。
▲６▼処理を続行する。
【００２９】
このような再帰呼び出しを用いることによって、アルゴリズム上同じサブルーチンが重複して呼び出されても、前回の呼び出しに影響を与えることなく処理を実行することができる。
【００３０】
ステップＳ１２で呼び出されたハイパーテキスト変換アルゴリズムの処理が終了すると、ステップＳ１３で新たに生成されたハイパーテキスト（ステップＳ１０）のファイルがとじられた後に、ステップＳ５の処理が行われ、ステップＳ５で全てのデータに対する処理が終了したと判定された時点でハイパーテキスト変換アルゴリズムの処理が終了する。
【００３１】
図５は図３のステップＳ６、すなわち複合データ出力サブルーチンの詳細処理フローチャートである。このサブルーチンは、いくつかの部分データが集まって構成されるデータとしての複合データを出力するためのものである。これらの部分データにはそれぞれ属性名、またはメンバ名と呼ばれる名前がつけられている。
【００３２】
図５において処理が開始されると、まずステップＳ１５で複合データ開始文字列が出力される。この複合データ開始文字列とは複合データの始まりを意味する文字列である。その後ステップＳ１６でこの複合データ全体のデータ型の型名が出力され、この複合データを構成する部分データのそれぞれに対してステップＳ１７〜Ｓ１９の処理が繰り返される。
【００３３】
すなわちそれぞれの部分データについてステップＳ１７でその属性名が出力され、ステップＳ１８で図３のハイパーテキスト変換アルゴリズムが再帰的に呼ばれ、ハイパーテキストへの部分データの出力が行われる。
【００３４】
そしてステップＳ１９で全ての部分データの出力が行われたと判定された時点で、ステップＳ２０で複合データの終わりを意味する文字列としての複合データ終了文字列が出力され、処理を終了する。
【００３５】
図３のハイパーテキスト変換アルゴリズムでは、データが３つの種類に分類されて出力方法が決定され、データ出力が行われる。この方式はアルゴリズムとしては単純ではあるが、図２のハイパーテキスト保存装置１３に保存されたハイパーテキストを参照したり、変更したりする場合に、そのデータ構造を直感的に把握することは難しい。また全てのデータを無条件で出力するために、出力データの選択や、その制御を行うことができない。そこでデータの出力方式や、出力データの選択方法を外部から定義として与え、この定義に基づいてデータの解析と出力を行うことができる。このような定義をデータ−ハイパーテキスト変換定義と呼ぶことにする。このデータ−ハイパーテキスト変換定義は図２のデータ−ハイパーテキスト変換定義格納メモリ２５に格納されている。
【００３６】
図６はこのようなデータ−ハイパーテキスト変換定義テーブルの例である。ここではデータの型名がＬＩＳＴであり、この変換定義を用いる条件としてポインターがＮＵＬＬであることと、この条件が満足された場合に適用されるサブルーチンの名称がＬｉｓｔ  Ｏｕｔｐｕｔ  であることが示されている。このサブルーチンの内容は例えば“ＮＵＬＬ”という文字列を出力するというような特殊処理である。このようにデータ−ハイパーテキスト変換定義としては、データの型名と条件に対応して、実行されるサブルーチンの名称が格納されている。
【００３７】
図７はこのようなデータ−ハイパーテキスト変換定義を用いる場合のハイパーテキスト変換アルゴリズムの処理フローチャートである。同図を図３の場合と比較すると、まず処理が開始された後にステップＳ２５でデータ型が調べられ、データ−ハイパーテキスト変換定義テーブルの内容が検索され、ステップＳ２６でそのデータの型名が登録され、かつ条件が満足されているか否かが判定される。登録され、条件も満足されている場合には、ステップＳ２７で登録されているサブルーチンが呼び出され、そのサブルーチンの処理が行われた後に、図３と同様にステップＳ５の処理に移行する。またステップＳ２６でデータの型名が登録されていないか、登録されていても条件が満足されていない場合には、図３と同様にステップＳ２でデータ型の分類が調べられ、その後図３と全く同じ処理が行われる。
【００３８】
続いてハイパーテキストに変換され、図２のハイパーテキスト保存装置１３に格納されているハイパーテキストを読み込み、それに対応する実行時内部データ構造を復元する処理のアルゴリズムを詳細に説明する。この実行時内部データ構造復元処理は、データ構造復元装置２３、およびデータ生成装置２４によって実行される。
【００３９】
図８はデータ構造復元装置によって実行されるデータ復元アルゴリズムのフローチャートである。データ構造復元装置は、前述のハイパーリンクテーブルと、後述する型情報テーブルとを持っている。ハイパーリンクテーブルの形式は図４と同様であるが、アドレスとしてのポインターは例えば図３で説明したもの、すなわちハイパーテキスト保存装置１３内で新しく生成されたハイパーテキストのアドレスを示すものではなく、ハイパーリンクに対応して復元された対応するデータのアドレス、すなわち実行時内部データ構造格納メモリ２１内のアドレスを示すことになる。
【００４０】
データ構造復元装置２３は、まず前処理として復元されたデータを格納するための実行時データ領域を確保し、その先頭を現在復元位置ポインターにセットする。次にハイパーテキストの先頭から順に文字列を読み込み、読み込んだ文字列に対して図８の処理を行うことを繰り返す。
【００４１】
図８において処理が開始されると、まずステップＳ３１で文字列が読み込まれて、ステップＳ３２で文字列の種類が判定される。この種類としては、その文字列が基本データ型のデータを表すか、複合データ開始文字列を表すか、あるいは他のハイパーテキストへのリンクを表すのかを判断する。
【００４２】
基本データ型を表す場合には、その文字列からステップＳ３３でデータ型の詳細が調べられ、ステップＳ３４で基本データが復元されて、その文字列に対応する処理を終了する。
【００４３】
ステップＳ３２で文字列の種類が複合データ開始文字列であると判定された場合には、ステップＳ３５で図９で説明する複合データ復元サブルーチンが再帰的に呼び出され、この処理が行われた後に、その文字列に対応する処理を終了する。
【００４４】
ステップＳ３２で文字列の種類が他のハイパーテキストへのリンクを表すと判定された場合には、ステップＳ３６でハイパーリンクテーブルが検索され、そのハイパーリンクが登録されているか否かがステップＳ３７で判定される。登録されている場合には、そのハイパーリンクに対応するデータのアドレスを示すポインター、すなわち登録されているポインターの内容が実行時データ領域に書き込まれて、この文字列に対応する処理を終了する。
【００４５】
ステップＳ３７でこのハイパーリンクが登録されていないと判定された場合には、ステップＳ３９で図１１で説明するデータ生成アルゴリズムが再帰的に呼び出され、そのアルゴリズムの処理が実行された後に、ステップＳ４０で実行時データ領域へのポインターの書き込みが行われ、その文字列に対応する処理を終了する。なおステップＳ４０で書き込まれるポインターは、ステップＳ３９で行われるデータ生成アルゴリズムの結果として返されるポインターであり、これについては具体例を用いて後述（データ構造復元の具体例における手順の５０と８６）する。
【００４６】
図９は図８のステップＳ３５、すなわち複合データ復元サブルーチンの詳細処理フローチャートである。このサブルーチンに対しては、引数としてハイパーテキストの読み込み開始位置と、現在復元位置ポインターの値が渡される。複合データ復元サブルーチンは、図１０に示す型情報テーブルに登録されている情報に基づいて、複合データの復元処理を実行する。
【００４７】
図１０の型情報テーブルには、データの型名をキーとしてデータの大きさとしてのデータサイズと、データの属性に応じたそのデータの書き込み位置などが格納されている。例えば型名としてＬＩＳＴとデータのデータサイズは１２バイトであり、そのうち属性名ＣＡＲのデータが位置として０バイト目から書き込まれ、ＣＤＲのデータが位置として４バイト目から書き込まれることが型情報テーブルに格納されている。
【００４８】
図９において処理が開始されると、まずステップＳ４１で引数として渡されたハイパーテキスト読み込み開始位置から文字列が読み込まれ、そのデータの型名が得られる。そしてステップＳ４２で型情報テーブルが検索され、その内容に従って複合データ終了文字列が表れるまでステップＳ４３〜Ｓ４７の処理が実行される。
【００４９】
まずステップＳ４３で部分データの属性名が取り出され、それがステップＳ４４で複合データ終了文字列でないと判定されると、ステップＳ４５で型情報テーブル内のその属性名のデータが書き込まれるべき位置を示す相対位置情報が取り出され、ステップＳ４６でその相対位置からデータの復元位置が計算され、この位置が現在復元位置ポインターの値としてセットされ、ステップＳ４７で図８のデータ復元アルゴリズムが再帰的に呼び出され、データ復元アルゴリズムの処理が終了した後にステップＳ４３からの処理が繰り返され、ステップＳ４４で属性名が複合データ終了文字列であると判定された場合に、このサブルーチンの処理を終了する。
【００５０】
図１１は図８のステップＳ３９、すなわちデータ生成アルゴリズムのフローチャートである。このアルゴリズムは図２のデータ生成装置２４によって実行されるものである。データ生成装置２４に対しては、図８のステップＳ３２で種類が判別された文字列としてのハイパーリンクが渡され、そのハイパーリンクに対応して復元されるデータの位置を示すポインターの値などが、ハイパーテキスト保存装置１３の中には格納されていない新規データ（データ構造復元のために必要なデータ）として作成される。
【００５１】
図１１において処理が開始されると、ステップＳ５１で渡されたハイパーリンクによって指定されるファイルがオープンされ、ステップＳ５２で複合データ開始文字列が読み込まれ、ステップＳ５３でデータの型名が読み込まれ、ステップＳ５４で型情報テーブルが検索されてデータサイズが得られ、ステップＳ５５でそのデータサイズ分の大きさを持つ新規データ格納領域が実行時内部データ構造格納メモリ２１上に確保され、ステップＳ５６で渡されたハイパーリンクと新規データ格納領域の先頭位置を示すポインターがハイパーリンクテーブルに登録され、ステップＳ５７で現在の読み込み位置がハイパーテキストの先頭まで戻され、ステップＳ５８でデータ復元アルゴリズムが再帰的に呼び出され、このアルゴリズムの処理が終了した時点でデータ生成アルゴリズムによる処理を終了する。
【００５２】
なおステップＳ５７で現在の読み込み位置をハイパーテキストの先頭まで戻すのは、ステップＳ５６までの処理がデータ格納領域の確保とハイパーリンクテーブルへの登録という実際のデータ出力とは異なる処理であるためであり、図８のデータ復元アルゴリズムがステップＳ５８で呼び出された後に、最初の文字列が複合データ開始文字列と判定され、ステップＳ３５で複合データ復元サブルーチンの処理が実行されて、実際のデータ出力が行われるようにするためである。
【００５３】
次に図２のハイパーテキスト保存装置１３に保存されている実行時内部データ構造の他のシステムとの共有について説明する。ハイパーテキスト転送装置１６として、インターネットに接続されるＷＷＷサーバを用いる場合を接続する。ＷＷＷサーバはこのサーバに送られてきたＵＲＬ（ユニフォームリソースロケータ）と呼ばれるアドレスに対応するｈｔｍｌファイルを要求先に送るシステムであり、このシステムを用いるために本実施例では、ハイパーテキスト保存装置１３として、通常のオペレーティングシステムのファイルシステムにおけるディレィクトリを用いることにする。このディレクトリ中に、任意のアプリケーションの内部データ構造から変換されたハイパーテキストとしてのｈｔｍｌファイルを保存しておくことにする。
【００５４】
更に図１１で説明したデータ生成アルゴリズムのステップＳ５１でハイパーリンクによって指定されたファイルをオープンするにあたり、自システム内のハイパーテキスト保存装置１３に保存されているファイルを開く代わりに、ＷＷＷサーバから他のシステムに対してファイル転送を依頼し、他のシステムから転送されるファイルを用いることによって、直接ハイパーテキストとしてのｈｔｍｌファイルの共有ができない遠隔地の間でも、実行的データ構造の共有を行うことができる。
【００５５】
最後にこれまで詳細に説明したアルゴリズムに従って、実行時内部データ構造をハイパーテキストに変換する変換処理と、ハイパーテキストに変換された実行時内部データ構造の復元処理について、その手順を詳細に説明する。図１２はハイパーテキストに変換されるべき実行時内部データ構造の具体例である。ここでは出力データとしてデータａがリスト型へのポインターによって指定されているものとする。
【００５６】
図１２の内部データ構造には、次のような５つのデータ型がある。
▲１▼整数型  整数型は基本型のデータであり、型名はＩＮＴである。整数型のデータはその値を文字列として出力する。
【００５７】
▲２▼文字列型  文字列型は基本型は基本型のデータであり、型名はＳＴＲＩＮＧである。文字列型のデータはその長さと文字列の内容を出力する。
▲３▼リスト型  リスト型は複合データ型である。型名がＬＩＳＴである。部分データの属性名としては、ＣＡＲとＣＤＲの２つがある。
【００５８】
▲４▼リスト型へのポインター  リスト型へのポインターは参照型である。
▲５▼ＮＵＬＬ方  リストの終わりを表すデータで特別な基本型である。型名はＮＵＬＬである。値を持たない基本型のデータである。
【００５９】
図１３は図１２の実行時内部データ構造から変換されたハイパーテキストを示す。この変換にあたっては、前処理として新たなｈｔｍｌテキストが生成される。このテキストの名前を  ｄａｔａ．ｈｔｍｌとする。変換は次の手順に従って実行される。なお図１４に作成される画面のイメージを、また図１５に画面上でのクリック動作の説明を示す。
１．出力するデータの型情報を調べる。ここでは、「リスト型へのポインター」であり、これは参照データ型である（ステップＳ１，Ｓ２）。
２．参照データの参照先がハイパーリンクテーブルに登録されているかどうかを調べる（ステップＳ７）。現在、ハイパーリンクテーブルには、何も登録されていないので、データ参照先は登録されていない（ステップＳ８）。
３．新たなハイパーテキスト“ｄａｔａ−ａ．ｈｔｍｌ”  を生成する（ステップＳ１０）。
４．“ｄａｔａ−ａ．ｈｔｍｌ”  へのハイパーリンクを登録し、“ｄａｔａ．ｈｔｍｌ”  に出力する（ステップＳ１１）。
５．出力先を“ｄａｔａ−ａ．ｈｔｍｌ”  として、ハイパーテキスト変換アルゴリズムを再帰的に呼び出す（ステップＳ１２）。
６．出力するデータの型情報を調べる。データａは「リスト型の複合データ」であり、これは複合データ型である（ステップＳ１，Ｓ２）。
７．複合データ出力サブルーチンを再帰的に呼び出す（ステップＳ６）。
８．複合データ開始文字列“ｂｅｇｉｎ  ｓｔｒｕｃｔｕｒｅ”  を“ｄａｔａ−ａ．ｈｔｍｌ”  に出力する（ステップＳ１５）。
９．型名“ＬＩＳＴ”を出力する（ステップＳ１６）。
１０．  まず、属性“ＣＡＲ”  について、出力することにする。属性名“ＣＡＲ”  を出力する（ステップＳ１７）。
１１．ハイパーテキスト変換アルゴリズムを再帰的に呼ぶ（ステップＳ１８）。
１２．属性“ＣＡＲ”  に格納されているデータの型情報を調べる。属性“ＣＡＲ”  に格納されているデータは「リスト型へのポインター」であり、これは、参照データである（ステップＳ１，Ｓ２）。
１３．参照データの参照先が、ハイパーリンクテーブルに登録されているかどうかを調べる（ステップＳ７）。現在まだテーブルにはデータｂは登録されていない（ステップＳ８）。
１４．新たなハイパーテキスト“ｄａｔａ−ｂ．ｈｔｍｌ”  を生成する（ステップＳ１０）。
１５．“ｄａｔａ−ｂ．ｈｔｍｌ”  をハイパーリンクテーブルに登録し、“ｄａｔａ−ａ．ｈｔｍｌ”  に出力する（ステップＳ１１）。
１６．出力先をハイパーテキスト“ｄａｔａ−ｂ．ｈｔｍｌ”  として、このハイパーテキスト変換アルゴリズムを再帰的に呼び出す（ステップＳ１２）。
１７．格納されているデータの型を調べる（ステップＳ１）。データｂは、複合データ型である（ステップＳ２）。
１８．複合データ出力サブルーチンを呼び出す（ステップＳ６）。
１９．複合データ開始文字列“ｂｅｇｉｎ  ｓｔｒｕｃｔｕｒｅ”  を“ｄａｔａ−ｂ．ｈｔｍｌ”  に出力する（ステップＳ１５）。
２０．型名“ＬＩＳＴ”を出力する（ステップＳ１６）。
２１．  まず、属性“ＣＡＲ”  について、出力することにする。属性名“ＣＡＲ”  を出力する（ステップＳ１７）。
２２．ハイパーテキスト変換アルゴリズムを再帰的に呼び出す（ステップＳ１８）。
２３．属性“ＣＡＲ”  に格納されているデータの型情報を調べる（ステップＳ１）。属性“ＣＡＲ”  に格納されているデータは基本型である（ステップＳ２）。
２４．データの型情報の詳細を調べる。この場合、整数型である（ステップＳ３）。
２５．属性“ＣＡＲ”  の型名“ＩＮＴ”  を出力する。
２６．格納されている整数値”１０”を文字列として出力する（ステップＳ４）。
２７．出力が終了したので、ハイパーテキスト変換アルゴリズムの呼び出し元（２２の呼び出し）に復帰する（ステップＳ５）。
２８．次に属性“ＣＤＲ”  について、出力する（ステップＳ１９）。
２９．属性名“ＣＤＲ”  を出力する（ステップＳ１７）。
３０．ハイパーテキスト変換アルゴリズムを再帰的に呼び出す（ステップＳ１８）。
３１．属性“ＣＤＲ”  に格納されているデータの型情報を調べる（ステップＳ１）。属性“ＣＤＲ”  に格納されているデータは基本データ型である（ステップＳ２）。
３２．データの型情報の詳細を調べる。この場合、ＮＵＬＬ型である（ステップＳ３）。
３３．  属性“ＣＤＲ”  の型名“ＮＵＬＬ”とデータ“ＮＵＬＬ”を出力する（ステップＳ４）。
３４．ハイパーテキスト変換アルゴリズムが終了したので、呼び出し元（３０の呼び出し）に復帰する（ステップＳ５）。
３５．出力すべき属性名がないので（ステップＳ１９）、複合データ終了文字列“ｅｎｄ  ｓｔｒｕｃｔｕｒｅ”  を出力する（ステップＳ２０）。以上で、データｂの出力は終了である。複合データ出力サブルーチンから呼び出し元（１８の呼び出し）に復帰する。この時の、ハイパーテキスト“ｄａｔａ−ｂ．ｈｔｍｌ”  の状態を、図１４に示す。
３６．ハイパーテキスト変換アルゴリズムが終了したので、呼び出し元（１６の呼び出し）に復帰する。
３７．ハイパーテキスト変換アルゴリズムが終了したので、呼び出し元（１１の呼び出し）に復帰する。
３８．次に、データａの属性“ＣＤＲ”  について、出力する（ステップＳ１９）。
３９．属性名“ＣＤＲ”  を出力する（ステップＳ１７）。
４０．ハイパーテキスト変換アルゴリズムを再帰的に呼び出す（ステップＳ１８）。
４１．属性“ＣＤＲ”  に格納されているデータの型情報を調べる（ステップＳ１）。属性“ＣＤＲ”  に格納されているデータは“ＬＩＳＴ  へのポインター”  であり、これは参照データ型である（ステップＳ２）。
４２．参照データの参照先が、ハイパーリンクテーブルに登録されているかどうかを調べる（ステップＳ７）。この時はまだテーブルには、データｃへの登録はされていない（ステップＳ８）。
４３．新たなハイパーテキスト“ｄａｔａ−ｃ．ｈｔｍｌ”  を生成し（ステップＳ１０）、これをハイパーリンクテーブルに登録し、出力する（ステップＳ１１）。
４４．出力先を、ハイパーテキスト“ｄａｔａ−ｃ．ｈｔｍｌ”  として、再帰的にハイパーテキスト変換アルゴリズムを呼び出す（ステップＳ１２）。
４５．出力するデータの型を調べる（ステップＳ１）。データｃは、複合データ構造なので（ステップＳ２）、複合データ出力サブルーチンを呼び出す（ステップＳ６）。
４６．複合データ開始文字列“ｂｅｇｉｎ  ｓｔｒｕｃｔｕｒｅ”  を“ｄａｔａ−ｃ．ｈｔｍｌ”  に出力する（ステップＳ１５）。
４７．型名“ＬＩＳＴ”を出力する（ステップＳ１６）。
４８．  まず、属性“ＣＡＲ”  について、出力することにする。属性名“ＣＡＲ”  を出力する（ステップＳ１７）。
４９．ハイパーテキスト変換アルゴリズムを再帰的に呼び出す（ステップＳ１８）。
５０．属性“ＣＡＲ”  に格納されているデータの型情報を調べる（ステップＳ１）。属性“ＣＡＲ”  に格納されているデータは基本型である（ステップＳ２）。
５１．データの型情報の詳細を調べる。この場合、文字列型である（ステップＳ３）。
５２．属性“ＣＡＲ”  の型名“ＳＴＲＩＮＧ”を出力する。
５３．文字列の長さ３と、文字列の内容“ＡＢＣ”  を出力する（ステップＳ４）。
５４．ハイパーテキスト変換アルゴリズムが終了したので、呼び出し元（４９の呼び出し）に復帰する（ステップＳ５）。
５５．次に、属性“ＣＤＲ”  について、出力する（ステップＳ１９）。属性名“ＣＤＲ”  を出力する（ステップＳ１７）。
５６．ハイパーテキスト変換アルゴリズムを再帰的に呼び出す（ステップＳ１８）。
５７．属性“ＣＤＲ”  に格納されているデータの型情報を調べる（ステップＳ１）。属性“ＣＤＲ”  に格納されているデータは参照データ型である（ステップＳ２）。
５８．参照データの参照先が、ハイパーリンクテーブルに登録されているかどうかを調べる（ステップＳ７）。既にデータａは、ハイパーリンクテーブルに登録されている（ステップＳ８）。
５９．  登録されていた“ｄａｔａ−ａ．ｈｔｍｌ”  へのハイパーリンクを“ｄａｔａ−ｃ．ｈｔｍｌ”  に出力する（ステップＳ９）。
６０．ハイパーテキスト変換アルゴリズムが終了したので、呼び出し元（５６の呼び出し）に復帰する（ステップＳ５）。
６１．すべての属性の出力が終了したので（ステップＳ１９）、複合データの終了文字列“ｅｎｄ  ｓｔｒｕｃｔｕｒｅ”  を“ｄａｔａ−ｃ．ｈｔｍｌ”  出力する（ステップＳ２０）。
６２．複合データ出力サブルーチンが終了したので、呼び出し元（４５の呼び出し）に復帰する。この時の、“ｄａｔａ−ｃ．ｈｔｍｌ”  の状態を図１４に示す。
６３．ハイパーテキスト変換アルゴリズムが終了したので、呼び出し元（４４の呼び出し）に復帰する。
６４．ハイパーテキスト変換アルゴリズムが終了したので、呼び出し元（４０の呼び出し）に復帰する。
６５．データａのすべてのアトリビュートに対する出力が終わったので（ステップＳ１９）、複合データの終了文字列“ｅｎｄ  ｓｔｒｕｃｔｕｒｅ”  を“ｄａｔａ−ａ．ｈｔｍｌ”  に出力する（ステップＳ２０）。以上で、データａの変換は終了なので、呼び出し元（７を経由した５の呼び出し）に復帰する。
６６．以上で、すべての実行時データ構造が出力されたので、このアルゴリズムを終了する（ステップＳ５）。
【００６０】
このようにして、実行時データ構造を格納することができる。図１６にハイパーテキストへの変換過程におけるアルゴリズムとサブルーチンの呼び出し、復帰関係を示す。
【００６１】
次にハイパーテキストから内部データ構造を復元する処理について説明する。ここでは図１３のハイパーテキストから図１２の実行時内部データ構造を復元する場合を説明する。この復元処理においては、前処理として型情報テーブルが作成され、また格納データの復元先が前もって実行時内部データ構造格納メモリ２１の内部に確保された後、次の手順に従って処理が実行される。
１．“ｄａｔａ．ｈｔｍｌ”  の先頭行を読み込み、文字列を読み込み（ステップＳ３１）。この時、先頭行は、“ｄａｔａ−ａ．ｈｔｍｌ”  へのハイパーリンクである（ステップＳ３２）。
２．ハイパーリンクテーブルを検索し、“ｄａｔａ−ａ．ｈｔｍｌ”  に対応する実行時データのポインターが登録されているかを検索する（ステップＳ３６）。この時は、まだ登録されていないので（ステップＳ３７）、このハイパーリンクを、データ生成装置に渡し、データの生成を依頼する（ステップＳ３９）。
３．データ生成装置は、“ｄａｔａ−ａ．ｈｔｍｌ”  を開く（ステップＳ５１）。
４．複合データ開始文字列を読み込む（ステップＳ５２）。
５．型名を読み込む（ステップＳ５３）。
６．型情報テーブルを検索し、データサイズを得る（ステップＳ５４）。
７．新規に、「リスト型」の大きさをもつデータ領域を確保する（ステップＳ５５）。
８．“ｄａｔａ−ａ．ｈｔｍｌ”  へのハイパーリンクと、確保されたデータ領域の先頭位置をハイパーリンクテーブルに登録する（ステップＳ５６）。
９．現在の読み込み位置をいったん“ｄａｔａ−ａ．ｈｔｍｌ”  の先頭位置まで戻す（ステップＳ５７）。
１０．データ復元アルゴリズムを再帰的に呼び出す（ステップＳ５８）。
１１．文字列を読み込み、解析を行う（ステップＳ３１）。
１２．文字列は、複合データ開始文字列を表すので（ステップＳ３２）、複合データ復元サブルーチンを再帰的に呼び出す（ステップＳ３５）。
１３．型名を読み込む（ステップＳ４１）。型名から、型情報テーブルを検索する（ステップＳ４２）。
１４．属性名を読み込む（ステップＳ４３）。ここで読み込まれる属性名は、“ＣＡＲ”  である。
１５．相対位置情報を取り出し（ステップＳ４５）、復元位置を計算し、現在復元位置にセットする（ステップＳ４６）。
１６．データ復元アルゴリズムを再帰的に呼び出す（ステップＳ４７）。
１７．文字列を読み込む（ステップＳ３１）。ここで読み込まれる文字列は、“ｄａｔａ−ｂ．ｈｔｍｌ”  へのハイパーリンクである（ステップＳ３２）。
１８．ハイパーリンクテーブルを検索し（ステップＳ３６）、“ｄａｔａ−ｂ．ｈｔｍｌ”  に対応する実行時データのポインターが登録されているかを検索する。この時は、まだ登録されていない（ステップＳ３７）。
１９．このハイパーリンクを、データ生成装置に渡し、データ生成アルゴリズムを再帰的に呼び出す（ステップＳ３９）。
２０．データ生成装置は、“ｄａｔａ−ｂ．ｈｔｍｌ”  を開く（ステップＳ５１）。
２１．“ｄａｔａ−ｂ．ｈｔｍｌ”  から複合データ開始文字列を読み込む（ステップＳ５２）。
２２．“ｄａｔａ−ｂ．ｈｔｍｌ”  から型名を読み込む。ここで読み込まれる型名は“ＬＩＳＴ”である（ステップＳ５３）。
２３．型情報テーブルから、“ＬＩＳＴ”に相当する型の情報を取り出す（ステップＳ５４）。
２４．新規に、「リスト型」の大きさをもつデータ領域を確保する（ステップＳ５５）。
２５．“ｄａｔａ−ｂ．ｈｔｍｌ”  へのハイパーリンクと、確保されたデータ領域の先頭位置をハイパーリンクテーブルに登録する（ステップＳ５６）。
２６．現在の読み込み位置をいったん“ｄａｔａ−ｂ．ｈｔｍｌ”  の先頭位置まで戻す（ステップＳ５７）。
２７．データ復元アルゴリズムを再帰的に呼び出す（ステップＳ５８）。
２８．“ｄａｔａ−ｂ．ｈｔｍｌ”  から文字列を読み込み、解析を行う（ステップＳ３１）。
２９．文字列は、複合データ開始文字列を表すので（ステップＳ３２）、複合データ復元サブルーチンを呼び出す（ステップＳ３５）。
３０．文字列を読み込み型名を得る（ステップＳ４１）。
３１．型情報テーブルを検索する（ステップＳ４２）。
３２．属性名を読み込む（ステップＳ４３）。ここで読み込まれる属性名は、“ＣＡＲ”  である（ステップＳ４４）。
３３．相対位置情報を取り出し（ステップＳ４５）、復元位置を計算し、現在復元位置にセットする（ステップＳ４６）。
３４．データ復元アルゴリズムを再帰的に呼び出す（ステップＳ４７）。
３５．“ｄａｔａ−ｂ．ｈｔｍｌ”  の文字列を読み込み（ステップＳ３１）。ここで入力される文字列は、型名“ＩＮＴ”  である（ステップＳ３２）。
３６．データ型の詳細を調べる（ステップＳ３３）。
３７．“ｄａｔａ−ｂ．ｈｔｍｌ”  から文字列を読み込み、これを整数値に変換し、現在のメモリ位置に書き込む（ステップＳ３４）。
３８．データ復元アルゴリズムから、呼び出し元（３４の呼び出し）に復帰する。
３９．“ｄａｔａ−ｂ．ｈｔｍｌ”  から属性名を読み込む（ステップＳ４３）。ここで読み込まれる属性名は、“ＣＤＲ”  である（ステップＳ４４）。
４０．相対位置情報を取り出し（ステップＳ４５）、復元位置を計算し、現在復元位置にセットする（ステップＳ４６）。
４１．データ復元アルゴリズムを再帰的に呼び出す（ステップＳ４７）。
４２．“ｄａｔａ−ｂ．ｈｔｍｌ”  の文字列を読み込み（ステップＳ３１）。ここで入力される文字列は、型名“ＮＵＬＬ”である（ステップＳ３２）。
４３．データ型の詳細を調べる（ステップＳ３３）。
４４．現在のメモリ位置に、値ＮＵＬＬを書き込む（ステップＳ３４）。
４５．データ復元アルゴリズムから、呼び出し元（４１の呼び出し）に復帰する。
４６．“ｄａｔａ−ｂ．ｈｔｍｌ”  から属性名を読み込む（ステップＳ４３）。ここで読み込まれる属性名は、複合データ終了文字列である（ステップＳ４４）。
４７．以上で、複合データ復元サブルーチンは終了したので、呼び出し元（２９の呼び出し）に復帰する。
４８．以上で、データ復元アルゴリズムは終了したので、呼び出し元（２７の呼び出し）に復帰する。
４９．データｂの生成は終了したので、呼び出し元（１９の呼び出し）にデータ生成装置は新しく生成されたデータｂの位置を返し、復帰する。
５０．データｂへのポインターを、データａに書き込む（ステップＳ４０）。
５１．データ復元アルゴリズムが終了したので、呼び出し元（１６の呼び出し）に復帰する。
５２．“ｄａｔａ−ａ．ｈｔｍｌ”  から属性名を読み込む（ステップＳ４３）。ここで読み込まれる属性名は、“ＣＤＲ”  である（ステップＳ４４）。
５３．相対位置情報を取り出し（ステップＳ４５）、復元位置を計算し、現在復元位置にセットする（ステップＳ４６）。
５４．データ復元アルゴリズムを再帰的に呼び出す（ステップＳ４７）。
５５．文字列を読み込む（ステップＳ３１）。ここで読み込まれる文字列は、“ｄａｔａ−ｃ．ｈｔｍｌ”  へのハイパーリンクである（ステップＳ３２）。
５６．ハイパーリンクテーブルを検索し（ステップＳ３６）、“ｄａｔａ−ｃ．ｈｔｍｌ”  に対応する実行時データのポインターが登録されているかを検索する。この時は、まだ登録されていないので（ステップＳ３７）、このハイパーリンクを、データ生成装置に渡し、データの生成を依頼する（ステップＳ３９）。
５７．データ生成装置は、“ｄａｔａ−ｃ．ｈｔｍｌ”  を開く（ステップＳ５１）。
５８．“ｄａｔａ−ｃ．ｈｔｍｌ”  から複合データ開始文字列を読み込む（ステップＳ５２）。
５９．“ｄａｔａ−ｃ．ｈｔｍｌ”  から型名を読み込む（ステップＳ５３）。ここで読み込まれる型名は“ＬＩＳＴ”である。
６０．型情報テーブルから、“ＬＩＳＴ”に相当する型の情報を取り出す（ステップＳ５４）。
６１．新規に、「リスト型」の大きさをもつデータ領域を確保する（ステップＳ５５）。
６２．“ｄａｔａ−ｃ．ｈｔｍｌ”  へのハイパーリンクと、確保されたデータ領域の先頭位置をハイパーリンクテーブルに登録する（ステップＳ５６）。
６３．現在の読み込み位置をいったん“ｄａｔａ−ｃ．ｈｔｍｌ”  の先頭位置まで戻す（ステップＳ５７）。
６４．データ復元アルゴリズムを再帰的に呼び出す（ステップＳ５８）。
６５．“ｄａｔａ−ｃ．ｈｔｍｌ”  から文字列を読み込み、解析を行う（ステップＳ３１）。
６６．文字列は、複合データ開始文字列を表すので（ステップＳ３２）、複合データ復元サブルーチンを呼び出す（ステップＳ３５）。
６７．文字列を読み込み型名を得る（ステップＳ４１）。
６８．型情報テーブルを検索する（ステップＳ４２）。
６９．属性名を読み込む（ステップＳ４３）。ここで読み込まれる属性名は、“ＣＡＲ”  である（ステップＳ４４）。
７０．相対位置情報を取り出し（ステップＳ４５）、復元位置を計算し、現在復元位置にセットする（ステップＳ４６）。
７１．データ復元アルゴリズムを再帰的に呼び出す（ステップＳ４７）。
７２．“ｄａｔａ−ｃ．ｈｔｍｌ”  から文字列を読み込む（ステップＳ３１）。ここで入力される文字列は、型名“ＳＴＲＩＮＧ”である（ステップＳ３２）。
７３．データ型の詳細を調べる（ステップＳ３３）。
７４．“ｄａｔａ−ｃ．ｈｔｍｌ”  から、文字列の長さと文字列の内容を読み込み、これを現在のメモリ位置に書き込む（ステップＳ３４）。
７５．データ復元アルゴリズムが終了したので、呼び出し元（７１の呼び出し）へ復帰する。
７６．“ｄａｔａ−ｃ．ｈｔｍｌ”  から属性名を読み込む（ステップＳ４３）。ここで読み込まれる属性名は、“ＣＤＲ”  である（ステップＳ４４）。
７７．相対位置情報を取り出し（ステップＳ４５）、復元位置を計算し、現在復元位置にセットする（ステップＳ４６）。
７８．データ復元アルゴリズムを再帰的に呼び出す（ステップＳ４７）。
７９．“ｄａｔａ−ｃ．ｈｔｍｌ”  から文字列を読み込み（ステップＳ３１）。ここで入力される文字列は、“ｄａｔａ−ａ．ｈｔｍｌ”  へのハイパーリンクである（ステップＳ３２）。
８０．ハイパーリンクテーブルを検索し、“ｄａｔａ−ｃ．ｈｔｍｌ”  に対応する実行時データのポインターが登録されているかを検索する（ステップＳ３６）。この時は、すでに“ｄａｔａ−ａ．ｈｔｍｌ”  へのハイパーリンクに対応するデータが登録されているので（ステップＳ３７）、このポインターを現在のメモリ位置に書き込む（ステップＳ３８）。
８１．データ復元アルゴリズムが終了したので、呼び出し元（７８の呼び出し）へ復帰する。
８２．“ｄａｔａ−ｃ．ｈｔｍｌ”  から属性名を読み込む（ステップＳ４３）。ここで読み込まれる属性名は、複合データ終了文字列である（ステップＳ４４）。
８３．以上で、データｃに対する複合データ復元サブルーチンは終了したので、呼び出し元（呼び出し６６）へ復帰する。
８４．以上で、データｃに対するデータ復元アルゴリズムは終了したので、呼び出し元（呼び出し６４）へ復帰する。
８５．データｃの生成は終了したので、データ生成装置は新しく生成されたデータｃの位置を返し、呼び出し元（５６の呼び出し）に復帰する。
８６．データｃへのポインターを、データａに書き込む（ステップＳ４０）。
８７．以上で、データｃに対するデータ復元アルゴリズムは終了したので、呼び出し元（呼び出し５４）に復帰する。
８８．“ｄａｔａ−ａ．ｈｔｍｌ”  から属性名を読み込む（ステップＳ４３）。ここで読み込まれる属性名は、複合データ終了文字列である（ステップＳ４４）。
８９．データａに対する複合データ復元サブルーチンが終了したので、呼び出し元（呼び出し１２）へ復帰する。
９０．データａに対するデータ復元アルゴリズムが終了したので、呼び出し元（呼び出し１０）に復帰する。
９１．データａに対するデータ生成装置のアルゴリズムが終了したので、呼び出し元（呼び出し２）に復帰する。
９２．以上で、データａの復元は終了する。
【００６２】
最後に実行時内部データ構造からハイパーテキストへの変換、および逆にハイパーテキストから実行時内部データ構造の復元を行うためのプログラムのコンピュータへのローディングについて、図１７を用いて説明する。同図において、コンピュータ５１は本体５４とメモリ５５とから構成されており、本体５４に対しては可搬型記憶媒体５２からプログラムなどをローディングすることも、またプログラム提供者側からネットワーク５３を介してプログラムなどをローディングすることも可能である。
【００６３】
本発明の特許請求の範囲の請求項１１、および請求項１２に記載されているプログラムや、図３、図７、および図８のフローチャートに示されているプログラムなどは例えば図１７におけるメモリ５５に格納され、そのプログラムが本体５４によって実行される。ここでメモリ５５としては例えばランダムアクセスメモリ（ＲＡＭ）、またはハードディスクなどが用いられる。
【００６４】
また実行時内部データ構造をハイパーテキストに変換したり、逆にハイパーテキストへの変換結果から実行時内部データ構造を復元したりするためのプログラムなどが可搬型記憶媒体５２に記録され、コンピュータ５１にそのプログラムをロードすることによって、データ構造とハイパーテキストとの間の変換を行うことも可能である。この可搬型記憶媒体５２としてはメモリカード、フロッピーディスク、ＣＤ−ＲＯＭ（コンパクトディスク  リードオンリーメモリ）、光ディスク、光磁気ディスクなど市販され、流通可能な任意の記憶媒体を用いることができる。さらに実行時内部データ構造とハイパーテキストとの間の変換のためのプログラムなどが、プログラム提供者側からネットワーク５３を介してコンピュータ５１側に送られ、そのプログラムがロードされることによって変換を実現することも可能である。
【００６５】
【発明の効果】
以上詳細に説明したように、本発明によれば任意のアプリケーションの実行時内部データ構造をハイパーテキストに変換することにより、既存のハイパーテキスト表示装置やハイパーテキスト編集装置を利用して実行時内部データ構造を容易に認識することが可能になり、またデータ構造の変更などのデータの修正や編集が容易に行えるようになる。さらに既存のハイパーテキスト転送装置を用いることにより、ネットワークによって相互に接続された他のシステムとの間で、実行時データ構造の共有を行うことが可能となり、ソフトウェア資産の作成や修正作業の能率化に寄与するところが大きい。
【図面の簡単な説明】
【図１】本発明の原理構成を示すブロック図である。
【図２】本発明のデータ構造−ハイパーテキスト変換装置の実施例としてのコンピュータシステムの構成を示すブロック図である。
【図３】ハイパーテキスト変換アルゴリズムのフローチャートである。
【図４】ハイパーリンクテーブルの例を示す図である。
【図５】複合データ出力サブルーチンのフローチャートである。
【図６】データ−ハイパーテキスト変換定義テーブルの例を示す図である。
【図７】データ−ハイパーテキスト変換定義を用いるハイパーテキスト変換アルゴリズムのフローチャートである。
【図８】データ復元アルゴリズムのフローチャートである。
【図９】複合データ復元サブルーチンのフローチャートである。
【図１０】型情報テーブルの例を示す図である。
【図１１】データ生成アルゴリズムのフローチャートである。
【図１２】実行時内部データ構造の例を示す図である。
【図１３】図１２のデータ構造のハイパーテキストへの変換結果を示す図である。
【図１４】図１２のデータ構造のハイパーテキストへの変換によって表示される画面のイメージを示す図である。
【図１５】図１４の画面におけるクリック動作の説明図である。
【図１６】ハイパーテキストへの変換の具体例におけるアルゴリズムの呼び出し、および復帰関係を示す図である。
【図１７】データ構造−ハイパーテキスト変換を実現するためのプログラムのコンピュータへのローディングを説明する図である。
【符号の説明】
１      ハイパーテキスト変換手段
２      ハイパーテキスト記憶手段
３      中央処理装置（ＣＰＵ）
１２    メモリ
１３    ハイパーテキスト保持装置
１４    ハイパーテキスト表示装置
１５    ハイパーテキスト編集装置
１６    ハイパーテキスト転送装置
２１    実行時内部データ構造格納メモリ
２２    ハイパーテキスト変換装置
２３    データ構造復元装置
２４    データ生成装置
２５    データ−ハイパーテキスト変換定義格納メモリ
【図１】
0003544607.tif 000002
【図２】
0003544607.tif 000003
【図３】
0003544607.tif 000004
【図４】
0003544607.tif 000005
【図５】
0003544607.tif 000006
【図６】
0003544607.tif 000007
【図７】
0003544607.tif 000008
【図８】
0003544607.tif 000009
【図９】
0003544607.tif 000010
【図１０】
0003544607.tif 000011
【図１１】
0003544607.tif 000012
【図１２】
0003544607.tif 000013
【図１３】
0003544607.tif 000014
【図１４】
0003544607.tif 000015
【図１５】
0003544607.tif 000016
【図１６】
0003544607.tif 000017
【図１７】
0003544607.tif 000018