JPH11272475A - 非リエントラントプログラムの自動リエントラント化方法及びシステム - Google Patents

非リエントラントプログラムの自動リエントラント化方法及びシステム

Info

Publication number
JPH11272475A
JPH11272475A JP10092447A JP9244798A JPH11272475A JP H11272475 A JPH11272475 A JP H11272475A JP 10092447 A JP10092447 A JP 10092447A JP 9244798 A JP9244798 A JP 9244798A JP H11272475 A JPH11272475 A JP H11272475A
Authority
JP
Japan
Prior art keywords
variable
program
source file
file
variables
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.)
Granted
Application number
JP10092447A
Other languages
English (en)
Other versions
JP3266097B2 (ja
Inventor
Takuya Murakami
卓弥 村上
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP09244798A priority Critical patent/JP3266097B2/ja
Publication of JPH11272475A publication Critical patent/JPH11272475A/ja
Application granted granted Critical
Publication of JP3266097B2 publication Critical patent/JP3266097B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】非リエントラントプログラムからリエントラン
トプログラムへの自動変換を行う方法の提供。 【解決手段】ソースファイルをソース解析部で解析し、
グローバル変数及びスタティック変数の宣言部を抽出し
て変数データベースに登録し、サポートファイル生成部
で、変数データベースを基に書換え後のソースファイル
で必要な定義文を記述した定義ファイルと、変数の初期
化に必要な初期化関数などのプログラムを記述したサポ
ートプログラムソースファイルを生成し、ソース書換部
でソースファイルから変数データベースに登録されたグ
ローバル変数及びスタティック変数の定義の削除を行
い、変数の使用箇所を書き換えタスク毎に保持される代
替変数を使用するように変更を行い、リエントラント化
されたソースファイルを生成し、これを定義ファイル、
サポートプログラムをコンパイルリンクしてリエントラ
ント型の実行形式プログラムを生成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ソフトウェア開発
支援システムに関し、特に非リエントラント構造のプロ
グラムをリエントラント構造のプログラムに自動変換す
る方法及び方式に関する。
【0002】
【従来の技術】情報処理システムでは、メモリ空間が全
タスクで共有される方式をとっているものがある。この
ようなシステムで、複数のタスクから呼び出される(c
allされる)ようなリエントラントなプログラムを作
成する場合、以下に説明する2つの方法が知られてい
る。
【0003】その第1の方法は、このプログラムのコー
ド領域とグローバル変数及びスタティック変数領域を、
このプログラムを呼び出すプログラム毎に用意するとい
うものである。しかし、この方法は、メモリの使用効率
が悪くなるため、メモリの制約が厳しいシステムでは採
用できない場合がある。
【0004】これを解決するための方法(第2の方法)
として、コード領域をこのプログラムを呼び出す全プロ
グラム間で共有させればよい。この場合、このプログラ
ムのコード領域は1つだけあればよいのでメモリの使用
効率が良い。
【0005】しかしながら、コード領域を共有させる
と、メモリ空間が共有されているシステムでは、グロー
バル変数及びスタティック変数領域まで共有されてしま
うため、プログラムが非リエントラントになってしま
い、複数のタスクから呼び出して使用することができな
い。
【0006】これを回避するためには、プログラム内で
使用するグローバル変数、及びスタティック変数の代替
となる変数をタスク毎に用意し、タスク毎に自動的に切
り替えて使用する機構を導入する必要がある。そして、
これを行うには、プログラムのソースファイル自体を修
正する必要がある。
【0007】具体的には、プログラムのソースファイル
において、グローバル変数とスタティック変数の宣言部
の削除と、これらの変数の使用箇所の書き換えが必要で
ある。
【0008】
【発明が解決しようとする課題】従来、この書き換え
は、全て人手作業で行う必要があったが、人手作業で行
うと、以下に示すような問題が生じることになる。
【0009】(1)プログラムが巨大な場合、人手作業
では莫大な労力、作業工数を要する。
【0010】(2)手作業のためミスが発生しやすい。
【0011】(3)ミスを犯した場合、見つけにくいバ
グの原因となる。
【0012】(4)修正前と修正後の2つのプログラム
を保守管理する必要があるため、保守性が低下する。
【0013】このため、この作業を自動化したいという
要求があった。この書き換え作業を自動化することがで
きれば、以上の問題は、全て解決することになる。
【0014】したがって、本発明は、上記技術的認識に
基づき創案されたものであって、その目的は、非リエン
トラント型のプログラムからリエントラント型のプログ
ラムへの自動変換を行う方法及びシステムを提供するこ
とにある。
【0015】
【課題を解決するための手段】前記目的を達成するた
め、本発明は、(a)非リエントラントプログラムのソ
ースファイルを解析し、グローバル変数、及びスタティ
ック変数の宣言部を抽出してこれを変数データベースに
登録し、(b)前記変数データベースの情報を基にし
て、書き換え後のソースファイルで必要とされる定義文
などを記述した定義ファイルと、変数の初期化に必要な
初期化関数及び代替変数アクセス関数などのプログラム
を記述したサポートプログラムソースファイルを生成
し、(c)前記ソースファイルから、前記変数データベ
ースに登録されたグローバル変数、及びスタティック変
数の定義の削除を行い、変数の使用箇所を書き換え、タ
スク毎に保持される代替変数を使用するように変更を行
い、リエントラント化されたソースファイルを生成し、
(d)リエントラント化されたソースファイルと、前記
定義ファイル、及びサポートプログラムファイルを参照
してコンパイル及びリンクしリエントラント型の実行形
式プログラムを生成するようにしたものである。
【0016】
【発明の実施の形態】本発明は、非リエントラント型の
プログラムを、メモリ空間が共有されているシステム用
のリエントラント型のプログラムに修正するために、自
動的にリエントラント化するための手段を提供するもの
である。より詳細には、本発明は、プログラム内で使用
される、リエントラント時に問題になるグローバル変
数、及びスタティック変数の削除を、ソースプログラム
レベルで行い、このように変更されたソースプログラム
に対して、もとのプログラムと同等の動作を行うように
させるために必要なコード(ソースコード)の追加を自
動的に行うものである。
【0017】また、本発明は、プログラムをROM(読
み出し専用メモリ)対応プログラムに自動的に修正する
ための方法も提供する。
【0018】本発明の実施の形態について図面を参照し
て説明する。図1は、本発明の実施の形態の処理動作を
説明するための図である。図1を参照すると、ソースフ
ァイル11はリエントラント化の対象となる非リエント
ラントプログラムのソースコードであり、本発明を適用
することにより、このソースファイル11からリエント
ラント化がなされた、実行形式プログラム19が生成さ
れる。本発明は、その好ましい実施の形態において、ソ
ース解析部12、サポートファイル生成部14、ソース
解析部17を備える。これらの各部の処理は、コンパイ
ラ18等と同様コンピュータ上で実行されるプログラム
で実現される。
【0019】まず、全てのソースファイル11をソース
解析部12を用いて解析し、グローバル変数、及びスタ
ティック変数の宣言部を抽出し、これを変数データベー
ス13に登録する。
【0020】次に、この変数データベース13を基にし
て、サポートファイル生成部14で、定義ファイル1
5、及びサポートプログラムソースファイル16を生成
する。定義ファイル15には、書き換え後のソースファ
イルで必要とされる定義文などが記述されている。ま
た、サポートプログラムソースファイル16には、変数
の初期化に必要な処理などのプログラムが納められる。
【0021】その後、変数データベース13の情報を基
にして、ソースファイル11をソース書換部17で書き
換える。この際、変数データベース13に登録されたグ
ローバル変数、及びスタティック変数の定義の削除を行
い、変数の使用箇所を書き換えて、タスク毎に保持され
る代替変数を使用するように変更を行う。
【0022】この時点でリエントラント化されたソース
ファイルが全て生成されている。このソースファイル
を、定義ファイル、サポートプログラムソースファイル
とともにコンパイラ18でコンパイルし、リンカでリン
クすることでリエントラント化された実行形式プログラ
ム19が得られる。
【0023】
【実施例】上記した本発明の実施の形態についてさらに
詳細に説明すべく、本発明の実施例について以下に説明
する。以下では、C言語で記述されたソースプログラム
を対象とする。
【0024】図2は、本発明の一実施例の構成を示すブ
ロック図である。図2を参照すると、本実施例は、ソー
スファイル記憶領域21と、プリプロセッサ22と、ソ
ース解析部23と、変数データベース24と、サポート
ファイル生成部25と、ソース書換部26と、コンパイ
ラ27と、リンカ28と、実行形式プログラムファイル
記憶領域29と、を備えて構成されている。
【0025】ソースファイル記憶領域21は、プログラ
ムのソースプログラムファイルを記憶しておく領域であ
る。
【0026】プリプロセッサ22は、Cプログラム用の
プリプロセッサ(前処理系)である。
【0027】ソース解析部23は、ソースプログラム中
のグローバル変数、及びスタティック変数の定義部を抽
出し、この情報を変数データベース24に登録する。
【0028】サポートファイル生成部は、変数データベ
ース24に格納された情報から、ソース書換部26およ
びコンパイラ27で必要になるファイルを生成する。
【0029】ソース書換部26は、ソースプログラム中
のグローバル変数、及びスタティック変数の宣言部およ
び使用部(プログラム中でグローバル変数、スタティッ
ク変数をアクセスする部分)を書き換えたものを出力す
る。
【0030】コンパイラ27は、この出力をコンパイル
してオブジェクトコードを出力し、リンカ28はコンパ
イラ27が生成したオブジェクトコードをリンクして、
実行形式プログラムを生成する。リンカ28が生成する
実行形式プログラムファイルは、実行形式プログラムフ
ァイル記憶領域29に保存される。
【0031】図3は、本発明の一実施例の処理を説明す
るための図である。図2及び図3を参照して、本発明の
一実施例の動作について以下に説明する。図3におい
て、変数データベース34は図2の変数データベース2
4に対応し、プロプロセス32、ソース解析33、ソー
ス書換37等は、図2のプリプロセッサ22、ソース解
析部23、ソース解析部26等の処理を表している。
【0032】まず、ソースファイル31を、プリプロセ
ッサ22でプリプロセス(前処理)する(32)。その
後、ソース解析部23で解析処理を行い(33)、スタ
ティック変数データベース34を出力する。
【0033】図4は、本発明の一実施例におけるソース
解析部23の処理フローを説明するための流れ図であ
る。図4の流れ図を参照して、ソース解析部23の処理
について説明する。
【0034】初めに、ステップA1で、ソースファイル
31を構文解析し、変数定義を探す。
【0035】次にステップA2で、ファイルの終端(E
OF)に達したかどうか否かを判定し、終端に達したな
らば処理を終了する。
【0036】変数が見つかったら、ステップA3で、そ
の変数が関数内で定義されたローカル(local)な
ものかである否かを調べ、ローカルだった場合、ステッ
プA4で、その変数に、さらにstatic(スタティック)
キーワードがついているか否かを調べ、付いていなけれ
ば、その変数は無視してステップA1に戻る。
【0037】ステップA3で変数がローカルでない場
合、及びローカルである場合で且つスタティックと定義
されている場合にはステップA5に進む。
【0038】次に、ステップA5でconst(コンスタン
ト)キーワードが付いているか否かを調べる。constが
付いている場合、その変数は定数であって書き換えは不
可能であるため、リエントラント化の考慮を行う必要は
ない。よって、この変数は無視してステップA1に戻
る。
【0039】次に、ステップA5において変数がconst
でない場合、ステップA6で、変数の初期化処理がある
か否かを調べ、初期化処理があれば、ステップA7で、
その初期化処理を取り出す。
【0040】最後に、ステップA8で変数データベース
34に登録し、ステップA1に戻る。
【0041】一例として、図6に示したソースプログラ
ムを解析した結果得られる変数データベースの例を図7
に示す。
【0042】データベースには、変数の型名(整数型in
t、文字型char等)、スコープ(変数がプログラム中で
有効となる範囲を表す情報、global、sub()等)、変数
名、初期化処理を記録する。
【0043】再び図2及び図3を参照すると、また、こ
の変数データベース24から、サポートファイル生成部
25で必要なヘッダファイル35とサポートプログラム
ソースファイル36を生成する。
【0044】ヘッダファイル35には、グローバル変
数、及びスタティック変数の代替変数をひとまとめにし
た構造体の定義、およびマクロ、外部関数定義が入る。
【0045】また、サポートプログラムソースファイル
36には、初期化が必要なグローバル変数及びスタティ
ック変数の初期化処理ルーチンと、代替変数アクセスル
ーチン処理が入る。
【0046】図7のデータベースから作成されるヘッダ
ファイル(gsdef.h)の例を図8に、サポートプログラ
ムファイル(gsinit.c)の例を図9に示す。
【0047】なお、変数名が衝突しないように名前付け
を行う必要がある。この例では、例えば、図6に示した
ソースプログラムの関数sub中の変数cは、図8に示すよ
うに、_sub_dという代替の名前を付けている。なお、こ
の例では、ヘッダファイル(gsdef.h)には、グローバ
ル変数(_global_a、_global_b)、及びスタティック
変数(_sub_d)の代替変数をひとまとめにした構造体(s
truct GSData)の定義、およびマクロ(#define GSDAT
(x) (gsdat()->(x)))、外部関数定義(extrern st
ruct GSData *gsdat(void))が導入される。
【0048】またサポートプログラムファイル(gsini
t.c)では、ヘッダファイル(gsdef.h)をインクルード
ファイルとし(#include)、初期化処理関数(InitGSDa
ta)として、ポインタ変数pで参照される代替変数構造
体のうちb(p->_global_b)を20、d(p->_sub_
d)を5に設定している。そして、代替変数構造体アク
セス関数(GetGSData)は、グローバル変数及びスタテ
ィック変数のタスク毎に固有な代替変数の構造体を返す
関数であり、タスク固有のID(識別)番号から対応す
る代替変数の構造体GSDataへのポインタpを関数値とし
て返却する。すなわち、この構造体GSDataへのポインタ
pにはタスクID値からタスク毎のGSDataのテーブルが
探索され、もしpがnullの場合、pを新たに割り当てて
テーブルに登録し、初期化関数InitGSData(引数p)を
呼び出して初期化処理を行った後に返却する(return
p)。
【0049】再び図2及び図3を参照すると、次に、プ
リプロセス済みのソースファイルをソース書換部26を
使って書き換える(37)。
【0050】図5は、本発明におけるソース書換部26
の処理フローを説明するための流れ図である。図5を参
照して、ソース書換部26の処理について説明する。
【0051】まず、ステップB1、B2でソースコード
の先頭から順に変数定義を全て探す。変数が見つかった
ら、ステップB3、B4で、それが変数データベース2
4に登録されているか否かを調べる。登録されていた場
合、ステップB5で、それが変数の宣言部であるか否か
を調べ、宣言部であれば、ステップB6で削除する。
【0052】宣言部でなければ、ステップB7で書き換
えを行い、代替変数へのアクセスに切り替える。
【0053】これは、サポートプログラム中に含まれる
アクセスルーチンの呼び出しに置き換えることで行う。
【0054】このようにして、図6に示したソースプロ
グラムを書き換えた例を図10に示す。
【0055】図9のサポートプログラムファイル中に
は、関数‘GetGSData’が含まれている。この関数は、
グローバル変数及びスタティック変数のタスク毎に固有
な代替変数のセット(構造体)を返す関数であり、タス
ク固有のID番号から対応する代替変数のセットを返すよ
うになっている。
【0056】ソース書換後のプログラムでは、全てこの
関数を経由して代替変数にアクセスするようになってい
る。
【0057】このため、このプログラムを使用するタス
ク毎に代替変数が切り替わることになり、プログラムが
リエントラント化される。
【0058】再び図2及ぶ図3を参照すると、この書換
後のソースファイルとヘッダファイル35を用いて再び
プリプロセスを行い(38)、コンパイラ27を用いて
コンパイルする(39)。
【0059】また、サポートプログラムソースファイル
36も同様にコンパイルする。得られたオブジェクトフ
ァイルをリンカ28を使ってリンクし(310)、最終
的にリエントラントな実行形式プログラムが得られる
(311)。
【0060】以上、C言語の場合の例に説明したが、ソ
ース解析部、サポートファイル生成部、ソース書換部
を、他言語対応のものに置き換えることにより、所望の
言語への適用が可能である。
【0061】本発明の第二の実施例として、C++言語に
適用する場合について説明する。
【0062】C++言語に適用する場合、以下の2つの方
法がある。 1.C++ソースをCに変換し、C言語の場合と同様に処理
する。 2.C++ソースをそのまま処理する。
【0063】第1の方法については、AT&T社製によ
るcfrontというC++トランスレータを使うことにより、C
++をCのソースファイルに変換することができる。C言語
のソースファイルに対して、上記した本発明の実施例が
そのまま適用される。
【0064】第2の方法については、ほぼCの場合と同
じように処理できるが、C++ソースのclass(クラ
ス)内で宣言されているスタティック変数が使用される
ことがあるので、それを考慮する必要がある。そのた
め、図2のソース解析部3のアルゴリズムを修正し、c
lass内スタティック変数も変数データベースに登録
するようにする。
【0065】また、C++ではグローバル及びスタティッ
クなオブジェクトが存在した場合、サポートプログラム
内の初期化処理において、このオブジェクトのコンスト
ラクタを呼び出す処理を追加する。
【0066】さらに、本発明は、プログラムをROM対
応プログラムに修正する際にも応用することができる。
プログラムをROM化する場合、初期化が必要なグロー
バル変数及びスタティック変数をROM化することがで
きないため、これを取り除かねばならない。
【0067】この場合、上記した本発明の実施例の方法
をそのまま適用すれば、これらの変数を取り除くことが
できるため、簡単にROM対応を行うことができる。
【0068】本発明をC言語に適用する場合において、
図2のソース解析部23を一部修正し、変数データベー
ス24には、初期化が必要な変数のみを登録するように
してもよい。
【0069】
【発明の効果】以上説明したように、本発明によれば、
下記記載の効果を奏する。
【0070】本発明の第1の効果は、リエントラント化
のための人手による変換作業・労力を完全に不要とする
ことができ、開発効率を向上し作業工数を特段に削減す
ることができる、ということである。
【0071】その理由は、本発明においては、リエント
ラントプログラムへの変換を完全に自動化しており、人
手作業を一切必要としないためである。
【0072】本発明の第2の効果は、プログラムのリエ
ントラント化に伴うバグの発生が生じない、ということ
である。
【0073】その理由は、本発明においては、変換にエ
ディット(編集)作業等の、手作業が介入せず、変数名
の見落とし、書き換え間違いなどの人為ミスが混入する
ことがないためである。
【0074】本発明の第3の効果は、保守性を向上す
る、ということである。
【0075】その理由は、本発明においては、ソースフ
ァイルを自動修正できるため、修正後のソースファイル
を保守管理する必要がないためである。
【0076】本発明の第4の効果は、開発環境および実
行環境への依存度が低く、汎用性、可用性が高い、とい
うことである。
【0077】その理由は、本発明においては、ソースフ
ァイルに対して修正を行うのみであるため、特定のコン
パイラやOS(オペレーティングシステム)に依存しな
いためである。
【図面の簡単な説明】
【図1】本発明の実施の形態を説明するための図であ
る。
【図2】本発明の一実施例の構成を示すブロック図であ
る。
【図3】本発明の一実施例の処理の流れを示す図であ
る。
【図4】本発明の一実施例におけるソース解析部の処理
フローを示す流れ図である。
【図5】本発明の一実施例におけるソース書換部の処理
フローを示す流れ図である。
【図6】本発明の一実施例を説明するための図であり、
非リエントラントソースプログラムの一例を示す図であ
る。
【図7】本発明の一実施例を説明するための図であり、
変数データベースの一例を示す図である。
【図8】本発明の一実施例を説明するための図であり、
サポートファイル生成部で生成されたヘッダファイルの
一例を示す図である。
【図9】本発明の一実施例を説明するための図であり、
サポートファイル生成部で生成されたサポートプログラ
ムファイルの一例を示す図である。
【図10】本発明の一実施例を説明するための図であ
り、リエントラント化されたソースプログラムの一例を
示す図である。
【符号の説明】
11 ソースファイル 12 ソース解析部 13 変数データベース 14 サポートファイル生成部 15 定義ファイル 16 サポートプログラムソースファイル 17 ソース書換部 18 コンパイラ 19 実行形式プログラム 21 ソースファイル記憶領域 22 プリプロセッサ 23 ソース解析部 24 変数データベース 25 サポートファイル生成部 26 ソース書換部 27 コンパイラ 28 リンカ 29 実行形式プログラム記憶領域 31 ソースファイル 32 プリプロセス 33 ソース解析部 34 変数データベース 35 ヘッダファイル 36 サポートプログラムソースファイル 37 ソース書換 38 プリプロセス 39 コンパイル 40 リンク 41 実行形式プログラム
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成10年11月16日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図6
【補正方法】変更
【補正内容】
【図6】
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図8
【補正方法】変更
【補正内容】
【図8】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図9
【補正方法】変更
【補正内容】
【図9】

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】(a)非リエントラントプログラムのソー
    スファイルを解析し、グローバル変数、及びスタティッ
    ク変数の宣言部を抽出してこれを変数データベースに登
    録し、 (b)前記変数データベースの情報を基にして、書き換
    え後のソースファイルで必要とされる定義文などを記述
    した定義ファイルと、変数の初期化に必要な初期化関数
    及び代替変数アクセス関数などのプログラムを記述した
    サポートプログラムソースファイルを生成し、 (c)前記ソースファイルから、前記変数データベース
    に登録されたグローバル変数、及びスタティック変数の
    定義の削除を行い、変数の使用箇所を書き換え、タスク
    毎に保持される代替変数を使用するように変更を行い、
    リエントラント化されたソースファイルを生成し、 (d)前記リエントラント化されたソースファイルと、
    前記定義ファイル、及び、前記サポートプログラムをコ
    ンパイル及びリンクしてリエントラント型の実行形式プ
    ログラムを生成する、 ことを特徴とする非リエントラントプログラムの自動リ
    エントラント化方法。
  2. 【請求項2】非リエントラントプログラムのソースファ
    イルを解析し、グローバル変数、及びスタティック変数
    の宣言部を抽出し、これを変数データベースに登録する
    ソース解析手段と、 前記変数データベースの情報を基にして、書き換え後の
    ソースファイルで必要とされる定義文などを記述した定
    義ファイルと、変数の初期化に必要な初期化関数及び代
    替変数アクセス関数などのプログラムを記述したサポー
    トプログラムソースファイルとを生成するサポートファ
    イル生成手段と、 前記ソースファイルから、前記変数データベースに登録
    されたグローバル変数、及びスタティック変数の定義の
    削除を行い、変数の使用箇所を書き換え、タスク毎に保
    持される代替変数を使用するように変更を行うソース書
    換手段と、 を備え、 前記ソース書換手段で書換えられたソースファイルと、
    前記定義ファイル、及び前記サポートプログラムソース
    ファイルをコンパイル及びリンクしてリエントラント型
    の実行形式プログラムを生成する、ことを特徴とする非
    リエントラントプログラムの自動リエントラント化シス
    テム。
  3. 【請求項3】前記ソース書換手段が、前記ソースファイ
    ルを走査し、変数が見つかった場合に、該変数が前記変
    数データベースに登録されているか否かを検索し、登録
    されている場合には、これが変数の宣言部であるか調
    べ、変数の宣言部である場合には前記ソースファイルか
    ら該宣言部を削除し、一方宣言部でなければ、前記ソー
    スファイルにおける前記変数へのアクセスを、前記サポ
    ートプログラムソースファイルに定義されている代替変
    数アクセス関数へ置き換える、ことを特徴とする請求項
    2記載の非リエントラントプログラムの自動リエントラ
    ント化システム。
  4. 【請求項4】(a)非リエントラントプログラムのソー
    スファイルを解析し、グローバル変数、及びスタティッ
    ク変数の宣言部を抽出し、これを変数データベースに登
    録する処理、 (b)前記変数データベースの情報を基にして、書き換
    え後のソースファイルで必要とされる定義文などを記述
    した定義ファイルと、変数の初期化に必要な初期化関数
    及び代替変数アクセス関数などのプログラムを記述した
    サポートプログラムソースファイルを生成する処理、 (c)前記ソースファイルから、前記変数データベース
    に登録されたグローバル変数、及びスタティック変数の
    定義の削除を行い、変数の使用箇所を書き換え、タスク
    毎に保持される代替変数を使用するように変更を行う処
    理、 の上記(a)〜(c)の各処理をコンピュータで実行さ
    せるためのプログラムを記録した記録媒体。
JP09244798A 1998-03-20 1998-03-20 非リエントラントプログラムの自動リエントラント化方法及びシステム Expired - Fee Related JP3266097B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP09244798A JP3266097B2 (ja) 1998-03-20 1998-03-20 非リエントラントプログラムの自動リエントラント化方法及びシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP09244798A JP3266097B2 (ja) 1998-03-20 1998-03-20 非リエントラントプログラムの自動リエントラント化方法及びシステム

Publications (2)

Publication Number Publication Date
JPH11272475A true JPH11272475A (ja) 1999-10-08
JP3266097B2 JP3266097B2 (ja) 2002-03-18

Family

ID=14054672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09244798A Expired - Fee Related JP3266097B2 (ja) 1998-03-20 1998-03-20 非リエントラントプログラムの自動リエントラント化方法及びシステム

Country Status (1)

Country Link
JP (1) JP3266097B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004234634A (ja) * 2003-01-06 2004-08-19 Matsushita Electric Ind Co Ltd コンパイラプログラム、コンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体、コンパイル方法及びコンパイル装置
KR100658918B1 (ko) 2004-03-29 2006-12-15 주식회사 팬택앤큐리텔 블록 단위 입출력 명령어를 이용한 시스템 전역 변수초기화 장치 및 그 방법
WO2020008855A1 (ja) * 2018-07-03 2020-01-09 オムロン株式会社 コンパイル装置およびコンパイル方法
CN110688320A (zh) * 2019-09-30 2020-01-14 潍柴动力股份有限公司 全局变量的检测方法、装置及终端设备
JP2020087033A (ja) * 2018-11-27 2020-06-04 株式会社日立システムズ プログラム生成装置、及びプログラム生成方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004234634A (ja) * 2003-01-06 2004-08-19 Matsushita Electric Ind Co Ltd コンパイラプログラム、コンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体、コンパイル方法及びコンパイル装置
US7590976B2 (en) 2003-01-06 2009-09-15 Panasonic Corporation Compiler program, a computer-readable storage medium storing a compiler program, a compiling method and a compiling unit
KR100658918B1 (ko) 2004-03-29 2006-12-15 주식회사 팬택앤큐리텔 블록 단위 입출력 명령어를 이용한 시스템 전역 변수초기화 장치 및 그 방법
WO2020008855A1 (ja) * 2018-07-03 2020-01-09 オムロン株式会社 コンパイル装置およびコンパイル方法
JP2020008942A (ja) * 2018-07-03 2020-01-16 オムロン株式会社 コンパイル装置およびコンパイル方法
US11226814B2 (en) 2018-07-03 2022-01-18 Omron Corporation Compiler device and compiling method
JP2020087033A (ja) * 2018-11-27 2020-06-04 株式会社日立システムズ プログラム生成装置、及びプログラム生成方法
CN110688320A (zh) * 2019-09-30 2020-01-14 潍柴动力股份有限公司 全局变量的检测方法、装置及终端设备
CN110688320B (zh) * 2019-09-30 2023-05-23 潍柴动力股份有限公司 全局变量的检测方法、装置及终端设备

Also Published As

Publication number Publication date
JP3266097B2 (ja) 2002-03-18

Similar Documents

Publication Publication Date Title
KR101150003B1 (ko) 소프트웨어 개발 툴 생성 방법
US20030088860A1 (en) Compiler annotation for binary translation tools
US5361357A (en) Method and apparatus for optimizing computer file compilation
US5680622A (en) System and methods for quickly detecting shareability of symbol and type information in header files
US5408665A (en) System and methods for linking compiled code with extended dictionary support
US5280613A (en) ANDF installer using the HPcode-Plus compiler intermediate language
US9086931B2 (en) System for translating diverse programming languages
US9965259B2 (en) System for translating diverse programming languages
US8370820B2 (en) Method and apparatus for enabling parallel processing during execution of a Cobol source program using two-stage compilation
US6961931B2 (en) Dependency specification using target patterns
US5367683A (en) Smart recompilation of performing matchup/difference after code generation
US8122440B1 (en) Method and apparatus for enumerating external program code dependencies
US8869126B2 (en) Method and apparatus enabling multi threaded program execution for a Cobol program including OpenMP directives by utilizing a two-stage compilation process
JP6418696B2 (ja) 命令セットシミュレータおよびそのシミュレータ生成方法
US7702499B1 (en) Systems and methods for performing software performance estimations
US20230113783A1 (en) Cross-platform code conversion method and device
CN112379917A (zh) 浏览器兼容性提升方法、装置、设备及存储介质
CN112882718A (zh) 编译处理方法、装置、设备及存储介质
CN111880801A (zh) 应用程序动态化方法、装置、电子设备
US5446899A (en) Hint generation in smart recompilation
JP3266097B2 (ja) 非リエントラントプログラムの自動リエントラント化方法及びシステム
US7120905B2 (en) System and method for transformation of assembly code for conditional execution
CN110737431B (zh) 软件开发方法、开发平台、终端设备及存储介质
CN114489653A (zh) 基于编译器的数据处理方法、装置以及可读存储介质
Wang et al. Ompparser: A standalone and unified OpenMP parser

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20011204

LAPS Cancellation because of no payment of annual fees