JP3045083B2 - Storage area management device - Google Patents
Storage area management deviceInfo
- Publication number
- JP3045083B2 JP3045083B2 JP8294578A JP29457896A JP3045083B2 JP 3045083 B2 JP3045083 B2 JP 3045083B2 JP 8294578 A JP8294578 A JP 8294578A JP 29457896 A JP29457896 A JP 29457896A JP 3045083 B2 JP3045083 B2 JP 3045083B2
- Authority
- JP
- Japan
- Prior art keywords
- storage area
- rewriting
- rewritten
- rule
- 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.)
- Expired - Fee Related
Links
Landscapes
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】[0001]
【発明の属する技術分野】本発明は、プログラミング言
語、仕様記述言語などにおいて木構造で表現される入力
仕様データを書き換え規則集合によって書き換えてプロ
グラムを自動合成する装置における記憶領域管理装置に
関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a storage area management device in an apparatus for automatically synthesizing a program by rewriting input specification data expressed in a tree structure in a programming language, a specification description language, or the like according to a set of rewrite rules.
【0002】[0002]
【従来の技術】木構造で表現されたデータ構造を書き換
え規則集合を用いて書き換えを実行する際、書き換えに
よってどこからも参照されることのない不必要なデータ
構造が発生する。記憶領域回収装置は、記憶領域中から
不必要なデータ構造の占める記憶領域を再び利用可能な
記憶領域中に回収することにより、記憶領域を効率よく
利用する。従来の技術では記憶領域中から不必要なデー
タ構造を回収する際に、現在使用している記憶領域全て
を走査し、全記憶領域中、走査された領域に含まれない
記憶領域を不必要な記憶領域として回収を行っていた。2. Description of the Related Art When a data structure represented by a tree structure is rewritten using a set of rewrite rules, an unnecessary data structure that is not referred to from anywhere by the rewrite occurs. The storage area recovery device recovers a storage area occupied by an unnecessary data structure from the storage area into a usable storage area again, thereby efficiently using the storage area. In the related art, when recovering an unnecessary data structure from a storage area, the entire storage area currently being used is scanned, and a storage area that is not included in the scanned area in the entire storage area is unnecessary. It was being collected as a storage area.
【0003】図10に記憶領域中で木構造を表現するデ
ータ構造と、それにより表された入力の具体例を示す。
木構造は木のノードの値と記憶領域中の木のノードを指
すボインタによって表されるデータ構造を用いて表現さ
れる。木構造は、このデータ構造を用いて、各ノードの
値に関数記号を、ボインタに部分木へのボインタを代入
しリンクを張ることにより表現される。FIG. 10 shows a data structure expressing a tree structure in a storage area, and a specific example of an input represented thereby.
The tree structure is expressed using a data structure represented by a value of the tree node and a pointer indicating the tree node in the storage area. Using this data structure, the tree structure is expressed by substituting a function symbol for the value of each node and a pointer to a subtree for the pointer, and establishing a link.
【0004】図11に書き換え規則の具体例と、それに
よって書き換えられる入力データ構造の例を示す。書き
換え規則301の適用により、木構造で表される入力デ
ータ構造が書き換えられる。図中、c,f,g,hは関
数記号を、X,Yは変数を表し、この例では関数記号c
から構成される木をhで構成される木に書き換える動作
を表している。書き換え規則301の適用の結果、書き
換え規則の右辺に現れるデータ構造が新たに記憶領域中
に確保され、書き換えの結果不必要となった領域は記憶
領域中どこからも参照されない領域として残る。FIG. 11 shows a specific example of a rewrite rule and an example of an input data structure rewritten by the rewrite rule. By applying the rewriting rule 301, the input data structure represented by the tree structure is rewritten. In the figure, c, f, g, and h represent function symbols, and X and Y represent variables. In this example, the function symbol c
Represents an operation of rewriting a tree composed of h into a tree composed of h. As a result of the application of the rewrite rule 301, a data structure appearing on the right side of the rewrite rule is newly secured in the storage area, and an area that becomes unnecessary as a result of the rewrite remains as an area that is not referenced from anywhere in the storage area.
【0005】図12に記憶領域の回収の具体例を示す。
木構造を表すデータ構造は概念的には図中左に示すよう
な木構造となっているが、計算機上の記憶領域では図中
右に示すように連続した記憶領域310に記憶され、各
データ構造の領域がポインタによって結ばれている。FIG. 12 shows a specific example of collecting a storage area.
Although the data structure representing the tree structure is conceptually a tree structure as shown on the left side of the figure, the storage area on the computer is stored in a continuous storage area 310 as shown on the right side of the figure. The areas of the structure are connected by pointers.
【0006】書き換えを繰り返すうち、記憶領域310
で使用可能な領域が少なくなった場合、記憶領域の回収
を行なう記憶領域管理装置は、入力データ構造の木のル
ートから、現在使用している木構造全てに走査を行なう
ことにより、使用中の記憶領域部分にマークを付する
(図中、ハッチング部分)。次に、記憶領域310全体
の走査を行い、マーク付けがされていない部分を不必要
な領域部分311として回収し記憶領域310を再利用
するものである。While rewriting is repeated, the storage area 310
In the case where the usable area becomes small in the storage area, the storage area management device for reclaiming the storage area scans all the currently used tree structures from the root of the tree of the input data structure, thereby obtaining the currently used tree structure. A mark is attached to the storage area (hatched part in the figure). Next, the entire storage area 310 is scanned, the unmarked part is collected as an unnecessary area part 311 and the storage area 310 is reused.
【0007】[0007]
【発明が解決しようとする課題】上述した従来の記憶領
域管理装置では、記憶領域中から不必要な記憶領域を見
つける際に、現在使われている領域を全て探索すること
により、記憶領域中で現在使用中の領域と不必要な領域
の区別を行っていた。このため、記憶領域を回収する度
に使用中の領域全てにわたって探索を行う必要があり、
記憶領域の回収処理に時間がかかるという問題があっ
た。In the conventional storage area management apparatus described above, when finding an unnecessary storage area from a storage area, all of the currently used areas are searched for, so that the storage area can be searched for in the storage area. The area currently in use and the unnecessary area were distinguished. Therefore, every time the storage area is collected, it is necessary to perform a search over all the used areas,
There is a problem that it takes time to collect the storage area.
【0008】本発明の目的は、書き換え規則を予め解析
することにより、書き換えの実行によって書き換えられ
ることのない不変部分を書き換え対象中から抽出し、こ
の部分を記憶領域中に不変部分として予め記憶しておく
ことにより、不変部分は不必要な領域となることがない
ことを利用し、使用中の記憶領域の走査に要する時間を
短縮することにより、記憶領域の回収処理の高速化を実
現することのできる記憶領域管理装置を提供することに
ある。An object of the present invention is to analyze a rewrite rule in advance, to extract an invariant portion that is not rewritten by execution of rewrite from a rewrite target, and to store this portion as an invariable portion in a storage area in advance. By taking advantage of the fact that the invariable part does not become an unnecessary area, the time required for scanning the storage area in use is shortened, thereby realizing a high-speed recovery processing of the storage area. It is an object of the present invention to provide a storage area management device capable of performing the above.
【0009】[0009]
【課題を解決するための手段】上記目的を達成する本発
明は、木構造で表現される入力仕様を書き換え規則集合
によって書き換えてプログラムを自動合成する装置の記
憶領域管理装置において、前記書き換え規則の左辺部か
ら、前記入力仕様のうち書き換え規則によって書き換え
られる可能性のあるデータと書き換えられる可能性のな
いデータを検出するための情報を抽出する書き換え規則
解析手段と、第1の領域と第2の領域とに分けて前記木
構造で表現される入力仕様を記憶する記憶領域と、前記
書き換え規則解析手段からの情報を元に、前記入力仕様
中前記書き換え規則で書き換わることのないデータ部分
を前記記憶領域の第1の領域に記憶し、書き換えが行わ
れるデータ部分を前記記憶領域の第2の領域に記憶する
記憶領域割り当て手段と、前記記憶領域の前記第2の領
域を走査することにより、書き換えの実行により発生し
た前記記憶領域内の不必要な木構造データを回収する回
収手段とを備えることを特徴とする。SUMMARY OF THE INVENTION In order to achieve the above object, the present invention provides a storage area management device for an apparatus for automatically synthesizing a program by rewriting an input specification expressed in a tree structure by a set of rewriting rules. A rewriting rule analyzing means for extracting, from the left side, information for detecting data which is likely to be rewritten by the rewriting rule and data which is not likely to be rewritten among the input specifications, a first area and a second area A storage area for storing the input specification expressed in the tree structure separately from the area, and a data portion which is not rewritten by the rewrite rule in the input specification based on information from the rewrite rule analysis means. Storage area allocation for storing in a first area of a storage area and storing a data portion to be rewritten in a second area of the storage area And the step, by scanning the second region of the storage area, characterized in that it comprises a recovery means for recovering unwanted tree structure data of the storage area generated by the execution of the rewriting.
【0010】請求項2の本発明による記憶領域管理装置
では、前記書き換え規則解析手段は、前記書き換え規則
から左辺部を一つ取りだし、該左辺部が関数記号の構造
であるかを判定し、関数記号の構造であれば、関数記号
を書き換える可能性のある関数記号の集合に追加する処
理を繰り返すことにより、前記書き換え規則の左辺に現
れる関数記号全てを前記集合に追加し、得られた前記集
合を前記書き換え規則の左辺部によって書き換えられる
可能性のある関数記号の集合とし、前記記憶領域割り当
て手段は、前記木構造で表現される入力仕様の関数記号
が前記書き換え規則解析手段によって得られた関数記号
の集合に属するかを判定し、属する場合に該関数記号に
よる木構造データを書き換えられる可能性のあるデータ
とし、属さない場合に該関数記号による木構造データを
書き換えられる可能性のないデータとして、前記記憶領
域の第1の領域及び第2の領域に記憶する。In the storage area management apparatus according to the present invention, the rewriting rule analyzing means extracts one left side from the rewriting rule, determines whether the left side has a function symbol structure, and If it is a symbol structure, by repeating the process of adding a function symbol to a set of function symbols that may be rewritten, all the function symbols appearing on the left side of the rewriting rule are added to the set, and the obtained set Is a set of function symbols that can be rewritten by the left side of the rewrite rule, and the storage area allocating means is a function in which the function symbol of the input specification represented by the tree structure is obtained by the rewrite rule analyzing means. Judge whether it belongs to a set of symbols, and if so, make the tree-structured data by the function symbol data that can be rewritten. To as data having no possibility of being rewritten tree structure data by the function number symbols, stored in the first region and the second region of the storage area.
【0011】請求項3の本発明による記憶領域管理装置
では、前記書き換え規則解析手段は、前記関数記号の引
数に関し、関数記号の構造であるかを判定し、関数記号
の構造であれば、書き換える可能性のある関数記号の集
合に追加する処理を繰り返すことを特徴とする。According to a third aspect of the present invention, the rewriting rule analyzing means determines whether the argument of the function symbol has a function symbol structure, and if the function symbol has a function symbol structure, rewrites the argument. It is characterized in that a process of adding to a set of possible function symbols is repeated.
【0012】[0012]
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して詳細に説明する。図1に、本発明を適
用したソフト自動合成装置の構成を示す。図1に示すよ
うに、このソフトウェア自動合成装置は、プログラム仕
様11を入力とし、プログラム12を出力する装置であ
り、構文解析部14、出力部15、書き換え対象検索/
書き換え規則適用部16、記憶領域管理部17、書き換
え規則コンパイラ18を備えて構成される。Embodiments of the present invention will be described below in detail with reference to the drawings. FIG. 1 shows the configuration of an automatic software synthesis apparatus to which the present invention is applied. As shown in FIG. 1, this software automatic synthesizing apparatus is an apparatus that receives a program specification 11 as an input and outputs a program 12, and includes a syntax analysis unit 14, an output unit 15,
It comprises a rewrite rule application unit 16, a storage area management unit 17, and a rewrite rule compiler 18.
【0013】入力されたプログラム仕様11は、構文解
析部14を用いて構文木13に変換される。構文木13
は、書き換え対象検索/書き換え規則適用部16を用い
て書き換えられ、最終的に書き換える対象が無くなった
場合、出力部16によりプログラム12が生成される。The input program specification 11 is converted into a syntax tree 13 by using a syntax analyzer 14. Syntax tree 13
Is rewritten using the rewrite target search / rewrite rule application unit 16, and when there is finally no rewrite target, the output unit 16 generates the program 12.
【0014】書き換え規則110は、構文木13の部分
木の書き換えを行うための規則であり、書き換え規則コ
ンパイラ18によって実際に書き換えを実行する書き換
え関数19にコンパイルされる。The rewriting rule 110 is a rule for rewriting a subtree of the syntax tree 13 and is compiled by a rewriting rule compiler 18 into a rewriting function 19 for actually executing rewriting.
【0015】記憶領域管理部17は、構文木13を格納
するために必要な記憶領域や、書き換え対象検索/書き
換え規則適用部16により書き換えた結果を格納するた
めに必要な記憶領域を管理する部分であり、図2に示す
ように、記憶領域割り当て部21、記憶領域22、規則
解析部23、回収部24とで構成される。The storage area management unit 17 manages a storage area required to store the syntax tree 13 and a storage area required to store the result of rewriting by the rewrite target search / rewrite rule application unit 16. As shown in FIG. 2, the storage system includes a storage area allocation unit 21, a storage area 22, a rule analysis unit 23, and a collection unit 24.
【0016】記憶領域22は、構文木を表現するための
記憶領域を計算機上に確保する部分であり、その内部は
書き換えのない部分の割り当て記憶を行なう領域である
不変部221と、書き換えの可能性がある部分の割り当
て記憶を行なう領域である可変部222に分割される。The storage area 22 is a section which secures a storage area for expressing a syntax tree on a computer. The storage area 22 includes an invariable section 221 for allocating and storing a non-rewritable portion, and a rewritable portion. Is divided into variable sections 222, which are areas for assigning and storing parts having potential.
【0017】記憶領域割り当て部21は、構文解析部1
4や書き換え対象検索/書き換え規則適用部16が構文
木13を表現するために必要な領域を記憶領域部22に
割り当てる部分であり、図2に示すように書き換わる可
能性のない部分のための領域を記憶領域22の不変部2
21に割り当てて記憶する不変部割り当て部211と、
書き換わる可能性のある部分のための領域を記憶領域2
2の可変部222に割り当てて記憶する可変部割り当て
部212とを備える。この記憶領域割り当て部21は、
記憶領域22に領域なくなった場合に、回収部24を呼
び出すことにより、記憶領域22でどこからも参照され
なくなった領域部分の回収処理を実行する。The storage area allocating section 21 includes the syntax analyzing section 1
4 and the rewrite target search / rewrite rule application unit 16 allocates an area necessary for expressing the syntax tree 13 to the storage area unit 22. As shown in FIG. The area is the invariable part 2 of the storage area 22
An invariable part allocating unit 211 that allocates and stores the same to
The area for the part that may be rewritten is the storage area 2
And a variable unit allocating unit 212 that allocates and stores the variable units to the two variable units 222. This storage area allocating unit 21
When the storage area 22 is exhausted, the collection unit 24 is called to execute a collection process of the area part of the storage area 22 that is no longer referred to from anywhere.
【0018】規則解析部23は、書き換え規則コンパイ
ラ18より書き換え規則の左辺部を受取り、この中でパ
ターンマッチングを行う際に現れる関数記号を記憶領域
割り当て部21に渡す。The rule analysis unit 23 receives the left side of the rewrite rule from the rewrite rule compiler 18 and passes a function symbol appearing when performing pattern matching in the rewrite rule to the storage area allocating unit 21.
【0019】上述した記憶領域管理部17の構成におい
て、記憶領域割り当て部21は、構文解析部14より入
力仕様を受け取り、記憶領域部22の領域を確保する際
に、パターンマッチングで現れる関数記号を含む部分は
書き換わる可能性があるので、可変部割り当て部212
によって記憶領域22の可変部222に記憶し、それ以
外の書き換わる可能性のない部分は不変部割り当て部2
11によって記憶領域22の不変部221に記憶する。In the configuration of the storage area management section 17 described above, the storage area allocation section 21 receives the input specification from the syntax analysis section 14 and, when reserving an area of the storage area section 22, specifies a function symbol appearing in pattern matching. Since the included part may be rewritten, the variable part allocating part 212
Is stored in the variable section 222 of the storage area 22, and the other non-rewritable portions are stored in the variable section allocating section 2.
11 to the invariable part 221 of the storage area 22.
【0020】回収部25は、記憶領域22から参照され
ていない部分木を検出するために、記憶領域22の領域
の走査を行うが。記憶領域22は予め不変部221と可
変部222に分割されており、この不変部221の領域
は書き換え規則によって書き換えられることがないた
め、記憶領域22の走査は可変部222に対してのみ実
行すればよい。この結果、走査する記憶領域を減少させ
ることが可能となり、回収処理のための速度が高速化さ
れる。The recovery unit 25 scans the area of the storage area 22 in order to detect a subtree that is not referred to from the storage area 22. The storage area 22 is divided into an invariable section 221 and a variable section 222 in advance. Since the area of the invariable section 221 is not rewritten according to the rewriting rule, scanning of the storage area 22 is performed only for the variable section 222. I just need. As a result, the storage area to be scanned can be reduced, and the speed for the collection process is increased.
【0021】次いで、本発明の具体的な実施例について
図面を参照して詳細に説明する。Next, specific embodiments of the present invention will be described in detail with reference to the drawings.
【0022】図3に、書き換え規則110の一具体例を
示す。図3に示す規則は、入力仕様中の関数記号”ap
pend”で表された木を書き換える規則であり、図中
大文字の英数字(X,Y,Z)は変数を表し、書き換え
は書き換え規則の左辺を入力仕様と単一化し、得られた
単一化演算子を右辺に適用することにより、それを書き
換え結果とする。FIG. 3 shows a specific example of the rewriting rule 110. The rule shown in FIG. 3 is based on the function symbol “ap” in the input specification.
This is a rule for rewriting the tree represented by “pend”, where uppercase alphanumeric characters (X, Y, Z) in the figure represent variables, and rewriting unifies the left side of the rewriting rule with the input specification, and By applying the conversion operator to the right side, it is made a rewrite result.
【0023】図2に示す記憶領域管理部17の規則解析
部26は、書き換え規則コンパイラ18から書き換え規
則110の左辺部を入力とし、図4及び図5のフローチ
ャートに示すような手順に従って解析を行う。The rule analysis unit 26 of the storage area management unit 17 shown in FIG. 2 receives the left side of the rewrite rule 110 from the rewrite rule compiler 18 and performs analysis according to the procedure shown in the flowcharts of FIGS. .
【0024】まず、書き換え規則中に現れる関数記号の
パターンを登録する集合Pを初期化し(ステップ40
1)、書き換え規則の左辺の集合を集合Rに代入する
(ステップ402)。次に、この集合Rから規則の左辺
を一つ取りだし、それをLに代入する(ステップ40
3)。ここで、このLを元に、パターンマッチングの可
能性のある部分を取り出す処理である図5に示す第2の
処理の呼出しを行う(ステップ404)。First, a set P for registering a pattern of a function symbol appearing in a rewrite rule is initialized (step 40).
1), the set on the left side of the rewrite rule is assigned to the set R (step 402). Next, one left side of the rule is extracted from the set R and is substituted for L (step 40).
3). Here, based on the L, a second process shown in FIG. 5, which is a process for extracting a portion that may be subjected to pattern matching, is called (step 404).
【0025】図5に示すように、第2の処理では、Lが
関数記号f(arg1,arg2,..,argn)な
る構造であるかの判別、すなわちLの構造による条件分
岐を行い(ステップ501)、関数記号の現れるパター
ンである場合は、その関数記号fを集合Pに追加する
(ステップ502)。次に、この関数記号の引数に関し
ても同様の処理を繰り返し(ステップ503)、書き換
え規則の左辺に現れる関数記号全てを集合Pに追加す
る。As shown in FIG. 5, in the second process, it is determined whether or not L is a structure of a function symbol f (arg1, arg2,..., Argn), that is, a conditional branch is performed based on the L structure (step 501), if the pattern is a pattern in which a function symbol appears, the function symbol f is added to the set P (step 502). Next, the same processing is repeated for the argument of the function symbol (step 503), and all the function symbols appearing on the left side of the rewrite rule are added to the set P.
【0026】第2の処理が終了すると、集合RからLを
除く(ステップ405)。全ての左辺に関して処理を行
うまで、集合Rに対するステップ403〜ステップ40
5の処理を繰り返す(ステップ406)。全ての集合R
に繰り返し処理を行った結果、集合Pを取得する(ステ
ップ407)。この得られた集合Pが、この書き換え規
則110の左辺部の集合Rによって書き換えられる可能
性のある関数記号の集合となっている。When the second processing is completed, L is removed from the set R (step 405). Steps 403 to 40 for the set R until the processing is performed for all the left sides
Step 5 is repeated (step 406). All sets R
The set P is obtained as a result of performing the repetitive processing (step 407). The obtained set P is a set of function symbols that may be rewritten by the set R on the left side of the rewriting rule 110.
【0027】図6に、図4,5に示す解析方法によって
解析した図3に示す書き換え規則の解析結果を示す。こ
の例では書き換え規則の左辺により書き換える可能性の
ある関数記号として、”append”、”con
s”、”nil”の3つの関数記号が得られている。FIG. 6 shows an analysis result of the rewrite rule shown in FIG. 3 analyzed by the analysis method shown in FIGS. In this example, "append" and "con" are function symbols that may be rewritten by the left side of the rewriting rule.
Three function symbols “s” and “nil” are obtained.
【0028】記憶領域管理部17の記憶領域割り当て部
21は、入力仕様11の構文解析を行う構文解析部14
に対して、図7のフローチャートに示す処理を行う。The storage area allocating section 21 of the storage area management section 17 has a syntax analysis section 14 for performing syntax analysis of the input specification 11.
The processing shown in the flowchart of FIG.
【0029】記憶領域割り当て部21は、まず記憶領域
22を不変部221と可変部222に分割する(ステッ
プ701)。次に、構文解析部14より記憶領域22に
割り当てる木構造データのテキスト表現を入力する(ス
テップ702)。そして、このデータ中より、関数記号
fを一つ取り出し(ステップ703)、この関数記号f
が図4,5で求めた集合Pに属するかどうか判定する
(ステップ704)。The storage area allocating section 21 first divides the storage area 22 into an invariable section 221 and a variable section 222 (Step 701). Next, a text expression of the tree structure data to be assigned to the storage area 22 is input from the syntax analyzer 14 (step 702). Then, one function symbol f is extracted from the data (step 703), and the function symbol f
Is included in the set P obtained in FIGS. 4 and 5 (step 704).
【0030】もし、関数記号fが集合Pに属する場合
は、この関数記号fで作られる木構造データは書き換え
られる可能性があるので、記憶領域割り当て部21の可
変部割り当て部212を用いて記憶領域22の可変部2
22に領域を確保して記憶し(ステップ705)、関数
記号fが集合Pに属さない場合は、関数記号fにより作
られる木構造データは書き換えられることがないので、
記憶領域割り当て部21の不変部割り当て部211を用
いて記憶領域22の不変部221に領域を確保して記憶
する(ステップ706)。これらの処理を全ての入力に
対して行う(ステップ707)。If the function symbol f belongs to the set P, the tree structure data created by the function symbol f may be rewritten. Variable part 2 of area 22
When the function symbol f does not belong to the set P, the tree structure data created by the function symbol f is not rewritten.
An area is secured and stored in the invariable part 221 of the storage area 22 using the invariable part allocating part 211 of the storage area allocating part 21 (Step 706). These processes are performed for all inputs (step 707).
【0031】図8に入力仕様11の例と、その記憶領域
22上でのデータ構造表現の例を示す。この例では、関
数記号”append”、”cons”を含むデータ構
造は記憶領域22の可変部222に記憶され、それ以外
の関数記号を含むデータ構造は記憶部22の不変部22
1に記憶される。FIG. 8 shows an example of the input specification 11 and an example of the data structure expression on the storage area 22. In this example, a data structure including the function symbols “append” and “cons” is stored in the variable section 222 of the storage area 22, and a data structure including other function symbols is stored in the invariable section 22 of the storage section 22.
1 is stored.
【0032】また、図9に記憶領域22の回収の例を示
す。書き換えが実行されると記憶領域22中に不必要な
木構造データの領域が発生する。記憶領域管理装置17
の回収部25は、このような書き換えによって発生した
不必要な木構造データの領域を回収するために記憶領域
22の走査を行う。この時、記憶領域22中で不変部2
21となっている部分は書き換え規則によって書き換え
られることがないため、不必要な領域が生じることがな
いので、記憶領域22中の可変部222のみを走査する
だけで、現在使われている領域を特定することができる
ことになる。従って、回収処理の際における記憶領域2
2の走査は、記憶領域22全体を走査するのに比べて極
めて短時間で終了し、この結果として回収処理の高速化
が実現される。FIG. 9 shows an example of collecting the storage area 22. When the rewriting is executed, an unnecessary tree structure data area is generated in the storage area 22. Storage area management device 17
The collection unit 25 scans the storage area 22 in order to collect the unnecessary tree structure data area generated by such rewriting. At this time, the invariable part 2
21 is not rewritten according to the rewriting rule, so that an unnecessary area does not occur. Therefore, by scanning only the variable section 222 in the storage area 22, the currently used area can be changed. It can be specified. Therefore, the storage area 2 during the collection process
Scanning 2 is completed in an extremely short time as compared with scanning the entire storage area 22, and as a result, speeding up of the collection process is realized.
【0033】以上好ましい実施の形態及び実施例を用い
て本発明を説明したが、本発明は必ずしも上記実施の形
態及び実施例に限定されるものではない。Although the present invention has been described with reference to the preferred embodiments and examples, the present invention is not necessarily limited to the above embodiments and examples.
【0034】[0034]
【発明の効果】以上説明したように本発明の木構造で表
現される入力仕様データを書き換え規則集合によって書
き換えてプログラムを自動合成する装置における記憶領
域管理装置は、書き換え規則を予め解析することによ
り、書き換えの実行によって書き換えられる可能性のな
い部分と書き換えられる可能性のある部分を、それぞれ
記憶領域の不変部と可変部に分割して記憶する構成とす
ることにより、記憶領域の回収処理において記憶領域の
走査を行う際に、記憶領域の可変部のみを走査するだけ
で済むので、使用中の領域を走査する領域を減らすこと
が可能になり、その結果、記憶領域の回収処理の高速化
を実現できるという効果が得られる。As described above, the storage area management apparatus in the apparatus for automatically synthesizing a program by rewriting input specification data expressed by a tree structure according to the present invention as described above, analyzes the rewriting rules in advance. By storing the part that is not likely to be rewritten by the execution of the rewriting and the part that is likely to be rewritten into the invariable part and the variable part of the storage area, respectively, When scanning the area, it is only necessary to scan the variable portion of the storage area, so it is possible to reduce the area for scanning the area in use. As a result, it is possible to speed up the processing for collecting the storage area. The effect of realizing is obtained.
【図1】 本発明を適用するソフトウェア自動合成装置
の構成を示すブロック図である。FIG. 1 is a block diagram illustrating a configuration of an automatic software synthesis apparatus to which the present invention is applied.
【図2】 本発明の実施の形態による記憶領域管理部の
構成を示すブロック図である。FIG. 2 is a block diagram illustrating a configuration of a storage area management unit according to the embodiment of the present invention.
【図3】 書き換え規則の一具体例を示す図である。FIG. 3 is a diagram showing a specific example of a rewriting rule.
【図4】 記憶領域管理部の書き換え規則の解析部の処
理手順を示すフローチャートである。FIG. 4 is a flowchart illustrating a processing procedure of a rewriting rule analysis unit of a storage area management unit.
【図5】 記憶領域管理部の書き換え規則の解析部の第
2の処理を示すフローチャートである。FIG. 5 is a flowchart showing a second process of the rewriting rule analysis unit of the storage area management unit.
【図6】 図4,5の処理手順により、図3の書き換え
規則を解析した結果を示す図である。FIG. 6 is a diagram showing a result of analyzing the rewriting rule of FIG. 3 according to the processing procedures of FIGS.
【図7】 記憶領域管理部の記憶領域割り当て部の処理
手順を示すフローチャートである。FIG. 7 is a flowchart illustrating a processing procedure of a storage area allocation unit of the storage area management unit.
【図8】 図7の処理手順により記憶領域の確保を行っ
た一具体例を示す図である。8 is a diagram showing a specific example in which a storage area is secured according to the processing procedure of FIG. 7;
【図9】 図8に示す記憶領域の回収処理を行う場合の
具体例を説明する図である。9 is a diagram illustrating a specific example in a case where the storage area collection processing illustrated in FIG. 8 is performed.
【図10】 木構造を表現するデータ構造の例とそれに
より表現した木構造の一具体例を示す図である。FIG. 10 is a diagram showing an example of a data structure expressing a tree structure and a specific example of a tree structure expressed thereby.
【図11】 書き換え規則による木構造データの書き換
えの一具体例を示す図である。FIG. 11 is a diagram showing a specific example of rewriting tree structure data according to a rewriting rule.
【図12】 従来における記憶領域の回収処理の例を示
す図である。FIG. 12 is a diagram showing an example of a conventional storage area collection process.
11 プログラム仕様 12 プログラム 13 構文木 14 構文解析部 15 出力部 16 書き換え対象検索/書き換え規則適用部 17 記憶領域管理部 18 書き換え規則コンパイラ 19 書き換え関数 110 書き換え規則 21 記憶領域割り当て部 211 不変部割り当て部 212 可変部割り当て部 22 記憶領域部 221 不変部 222 可変部 25 回収部 26 規則解析部 DESCRIPTION OF SYMBOLS 11 Program specification 12 Program 13 Syntax tree 14 Syntax analysis part 15 Output part 16 Rewrite target search / rewrite rule application part 17 Storage area management part 18 Rewrite rule compiler 19 Rewrite function 110 Rewrite rule 21 Storage area allocation part 211 Invariant part allocation part 212 Variable part allocating part 22 Storage area part 221 Invariable part 222 Variable part 25 Collection part 26 Rule analysis part
フロントページの続き (56)参考文献 特開 平6−251066(JP,A) 特開 平2−69842(JP,A) 友部実、他2名,”項書換えシステム に基づくソフトウェア自動合成システム の実現”,情報処理学会研究報告,平成 7年11月30日,VOL.95,NO.114 (PRO−4),P.13−18 (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 - 12/02 G06F 9/44 G06F 9/06 Continuation of the front page (56) References JP-A-6-251066 (JP, A) JP-A-2-69842 (JP, A) Minoru Tomobe, and two others, "Realization of an automatic software synthesis system based on the term rewriting system"", Information Processing Society of Japan Research Report, November 30, 1995, VOL. 95, NO. 114 (PRO-4), P.E. 13-18 (58) Field surveyed (Int.Cl. 7 , DB name) G06F 12/00-12/02 G06F 9/44 G06F 9/06
Claims (3)
規則集合によって書き換えてプログラムを自動合成する
装置の記憶領域管理装置において、 前記書き換え規則の左辺部から、前記入力仕様のうち書
き換え規則によって書き換えられる可能性のあるデータ
と書き換えられる可能性のないデータを検出するための
情報を抽出する書き換え規則解析手段と、 第1の領域と第2の領域とに分けて前記木構造で表現さ
れる入力仕様を記憶する記憶領域と、 前記書き換え規則解析手段からの情報を元に、前記入力
仕様中前記書き換え規則で書き換わることのないデータ
部分を前記記憶領域の第1の領域に記憶し、書き換えが
行われるデータ部分を前記記憶領域の第2の領域に記憶
する記憶領域割り当て手段と、 前記記憶領域の前記第2の領域を走査することにより、
書き換えの実行により発生した前記記憶領域内の不必要
な木構造データを回収する回収手段とを備えることを特
徴とする記憶領域管理装置。1. A storage area management device for an apparatus for automatically synthesizing a program by rewriting an input specification expressed in a tree structure by a rewrite rule set, wherein a rewrite rule of the input specification is rewritten from a left side of the rewrite rule. Rewriting rule analysis means for extracting information for detecting data that is likely to be rewritten and data that is not likely to be rewritten; and an input represented by the tree structure divided into a first area and a second area. A storage area for storing specifications, and a data portion that is not rewritten by the rewriting rule in the input specifications is stored in a first area of the storage area based on information from the rewriting rule analysis means, Storage area allocating means for storing a data portion to be performed in a second area of the storage area, and running in the second area of the storage area By,
A storage area management device, comprising: a recovery unit that recovers unnecessary tree structure data in the storage area generated by execution of rewriting.
が関数記号の構造であるかを判定し、関数記号の構造で
あれば、関数記号を書き換える可能性のある関数記号の
集合に追加する処理を繰り返すことにより、前記書き換
え規則の左辺に現れる関数記号全てを前記集合に追加
し、得られた前記集合を前記書き換え規則の左辺部によ
って書き換えられる可能性のある関数記号の集合とし、 前記記憶領域割り当て手段は、 前記木構造で表現される入力仕様の関数記号が前記書き
換え規則解析手段によって得られた関数記号の集合に属
するかを判定し、属する場合に該関数記号による木構造
データを書き換えられる可能性のあるデータとし、属さ
ない場合に該関数記号による木構造データを書き換えら
れる可能性のないデータとして、前記記憶領域の第1の
領域及び第2の領域に記憶することを特徴とする請求項
1に記載の記憶領域管理装置。2. The rewriting rule analyzing means extracts one left side from the rewriting rule, determines whether the left side has a structure of a function symbol, and rewrites the function symbol if the left side has a function symbol structure. By repeating the process of adding to the set of possible function symbols, all the function symbols appearing on the left side of the rewriting rule can be added to the set, and the obtained set can be rewritten by the left side of the rewriting rule. The storage area allocating means determines whether the function symbol of the input specification represented by the tree structure belongs to the set of function symbols obtained by the rewriting rule analysis means, In such a case, the tree structure data by the function symbol is regarded as data that can be rewritten, and when it does not belong, the tree structure data by the function symbol is rewritten. 2. The storage area management device according to claim 1, wherein data that is not likely to be stored is stored in a first area and a second area of the storage area.
記号の引数に関し、関数記号の構造であるかを判定し、
関数記号の構造であれば、書き換える可能性のある関数
記号の集合に追加する処理を繰り返すことを特徴とする
請求項2に記載の記憶領域管理装置。3. The rewriting rule analysis means determines whether an argument of the function symbol has a function symbol structure.
3. The storage area management device according to claim 2, wherein if the structure is a function symbol, a process of adding the function symbol to a set of function symbols that may be rewritten is repeated.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8294578A JP3045083B2 (en) | 1996-10-16 | 1996-10-16 | Storage area management device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8294578A JP3045083B2 (en) | 1996-10-16 | 1996-10-16 | Storage area management device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10124382A JPH10124382A (en) | 1998-05-15 |
JP3045083B2 true JP3045083B2 (en) | 2000-05-22 |
Family
ID=17809600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8294578A Expired - Fee Related JP3045083B2 (en) | 1996-10-16 | 1996-10-16 | Storage area management device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3045083B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016115737A1 (en) * | 2015-01-23 | 2016-07-28 | Hewlett-Packard Development Company, L.P. | Aligned variable reclamation |
US9665496B2 (en) | 2013-01-30 | 2017-05-30 | Hewlett Packard Enterprise Development Lp | Non-volatile memory write mechanism |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7490117B2 (en) * | 2003-12-31 | 2009-02-10 | Intel Corporation | Dynamic performance monitoring-based approach to memory management |
JP5159713B2 (en) * | 2009-06-30 | 2013-03-13 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Automatic design apparatus, automatic design method and automatic design program for automatically designing design architecture of system components |
CN107024191A (en) * | 2017-03-29 | 2017-08-08 | 中国林业科学研究院热带林业研究所 | A kind of intellectualizing system for being used to study semiarid zone tree growth management |
-
1996
- 1996-10-16 JP JP8294578A patent/JP3045083B2/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
友部実、他2名,"項書換えシステムに基づくソフトウェア自動合成システムの実現",情報処理学会研究報告,平成7年11月30日,VOL.95,NO.114(PRO−4),P.13−18 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9665496B2 (en) | 2013-01-30 | 2017-05-30 | Hewlett Packard Enterprise Development Lp | Non-volatile memory write mechanism |
WO2016115737A1 (en) * | 2015-01-23 | 2016-07-28 | Hewlett-Packard Development Company, L.P. | Aligned variable reclamation |
US10482008B2 (en) | 2015-01-23 | 2019-11-19 | Hewlett Packard Enterprise Development Lp | Aligned variable reclamation |
Also Published As
Publication number | Publication date |
---|---|
JPH10124382A (en) | 1998-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6195664B1 (en) | Method and system for controlling the conversion of a file from an input format to an output format | |
DE69801186T2 (en) | Method and device for finding object pointers, for recognizing / collecting non-referenced data objects | |
CN111767055A (en) | Quantum program compiling method and device | |
JP2624753B2 (en) | How to create higher-level specifications | |
US20090249307A1 (en) | Program analysis apparatus, program analysis method, and program storage medium | |
KR100456023B1 (en) | Method and apparatus for wrapping existing procedure oriented program into component based system | |
CN105138335A (en) | Function call path extracting method and device based on control flow diagram | |
CN112379917A (en) | Browser compatibility improving method, device, equipment and storage medium | |
JP3045083B2 (en) | Storage area management device | |
JP3205406B2 (en) | Reference target variable determination processing method and translation processing system | |
CN115098368A (en) | Intelligent verification method and device for recognizing brain picture use case | |
US20040010780A1 (en) | Method and apparatus for approximate generation of source code cross-reference information | |
JP3318051B2 (en) | Translation processing method | |
JPH11272503A (en) | Device for automatically generating test data of program | |
EP4191438A1 (en) | Software information organization method and device, and computer-readable medium | |
US6055529A (en) | Method, apparatus and computer program product for extracting known patterns from a data structure in a single pass | |
JP3999949B2 (en) | Alias name search apparatus, alias name search method, and alias name search program | |
JPH0660067A (en) | Document processor | |
JPS6284337A (en) | Specification information analyzing system | |
JP3328056B2 (en) | Information extraction device from parse tree | |
CN111651773B (en) | Automatic binary security vulnerability mining method | |
JPH0728691A (en) | Garbage collection efficiency increasing method | |
Harianto et al. | Enhancing Incremental Dataflow Analysis in an IDE | |
CN114003234A (en) | Local compiling method, device and equipment for small program and computer readable storage medium | |
JPH06282443A (en) | Method and device for editing program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080317 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090317 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090317 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100317 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |