JPH06131170A - ソースプログラム修正装置 - Google Patents

ソースプログラム修正装置

Info

Publication number
JPH06131170A
JPH06131170A JP27859292A JP27859292A JPH06131170A JP H06131170 A JPH06131170 A JP H06131170A JP 27859292 A JP27859292 A JP 27859292A JP 27859292 A JP27859292 A JP 27859292A JP H06131170 A JPH06131170 A JP H06131170A
Authority
JP
Japan
Prior art keywords
source program
variable
information storage
program
declaration
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
JP27859292A
Other languages
English (en)
Inventor
Yoshikazu Miyajima
良和 宮島
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 JP27859292A priority Critical patent/JPH06131170A/ja
Publication of JPH06131170A publication Critical patent/JPH06131170A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 CPUの実行モードが異なっても、この異な
ったモードに合致したソースコードをロジックの変更無
く生成する。 【構成】 ソースプログラム修正装置はバッファ12
と、制御部14および情報記憶部15で構成される。制
御部14では、認識部21がプログラムの修正の必要の
有無を判別し、必要とされたときには宣言部検出部22
が変数の宣言部を検出する。変数とその宣言部は情報記
憶部15に格納される。更新部23は変数の位置アドレ
スの引き渡し先をトレースしその格納場所を変数に照ら
し合わせて情報記憶部15に入力する。アクセス点検出
部24はこれを基にしてアクセス点を検出し、判定部2
5で変数の宣言型とアクセス型が異なっている場合、処
理部26はこれらの組み合わせによってソースプログラ
ムの修正を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、例えばC言語のソース
プログラムがどのようなCPU実行モード用に記述され
たものであるかに係わらず、すなわち、いずれのメモリ
イメージを有するCPUが用いられるかを問わず、目的
とするシステムのCPU実行モードに合致したソースコ
ードのプログラムに修正することのできるソースプログ
ラム修正装置に関する。
【0002】
【従来の技術】C言語は、オペレーティング・システム
(OS)等のシステム記述用のプログラミング言語であ
る。C言語では、それぞれのサブルーチンが関数の形で
記述されており、一般にプログラムの移植性が高いとい
う特徴がある。
【0003】ところでC言語で書かれたプログラムを移
植する場合には、(イ)移植元のシステムのCPU実行
モードと移植先のシステムのCPU実行モードとが異な
り、かつ(ロ)変数の宣言とその変数へのアクセス型も
異なる部分をもったソースプログラムの場合には、その
変数へのアクセス点を含むロジック全体を移植先のシス
テムのCPUに合わせて修正するといった手法を採るの
が一般的であった。
【0004】
【発明の解決しようとする課題】このように従来ではC
言語のソースプログラムをCPUの実行モードが異なる
システム間で移植するような場合には、移植者はプログ
ラム中の宣言型とアクセス型が異なる変数へのアクセス
点を始めとして、一部のロジックを考え直してソースプ
ログラムを修正する必要があった。このため、プログラ
ムの移植効率が悪いといった問題があった。
【0005】そこで本発明の目的は、CPUの実行モー
ドが異なっても、この異なったモードに合致したソース
コードをロジックの変更無く生成することのできるソー
スプログラム修正装置を提供することをその目的とす
る。
【0006】
【課題を解決するための手段】本発明では、ソースプロ
グラムを入力するソースプログラム入力手段と、このソ
ースプログラムに対するCPUの実行モードが異なるか
否かをチェックすることによりソースプログラムの修正
の有無を判別する修正有無判別手段と、ソースプログラ
ムの修正が必要と判別されたときソースプログラム中の
変数の宣言部を検出する変数宣言部検出手段と、検出さ
れた変数の宣言部を記憶する情報記憶手段と、この情報
記憶部に記憶されたデータを基にしてソースプログラム
入力手段によって入力されたソースプログラムに対して
変数の位置アドレスの引き渡し先をトレースし、その格
納場所を変数に照らし合わせて情報記憶部に入力する更
新手段と、この情報記憶部に入力されている各変数にに
ついてソースプログラムを用いてそれへのアクセス点を
検出するアクセス点検出手段と、アクセス点の検出され
た変数の宣言型とアクセス型が同一か否かを判定する判
定手段と、宣言型とアクセス型が異なっている場合には
これらの組み合わせによってソースプログラムの修正を
行う修正手段とをソースプログラム修正装置に具備させ
る。
【0007】ここで、修正有無判別手段は、例えばメモ
リにデータを格納する番地の付けられる方向を所定の方
向とそれと反対の方向のいずれかに設定することによっ
て同一のデータが2通りのメモリイメージのいずれかと
なるようなデータ処理システムにおいて、CPUがメモ
リイメージのいずれを用いてプログラムの実行を行うか
を認識することによってCPUの実行モードが異なるか
否かをチェックすることになる。また、本発明のソース
プログラムは例えばC言語によって記述されたものが適
用される。
【0008】このような本発明によれば、CPU実行モ
ードが異なっている場合には、これを修正有無判別手段
で判別し、変数の宣言部を検出すると共に変数へのアク
セス点を検出して、アクセス点の検出された変数の宣言
型とアクセス型が異なる場合にはこれらの組み合わせに
よってソースコードを生成してプログラムの修正を行う
ようにしている。
【0009】
【実施例】以下実施例につき本発明を詳細に説明する。
【0010】図1は本発明の一実施例におけるソースプ
ログラム修正装置の原理的な構成を表わしたものであ
る。このソースプログラム修正装置は図示しない記憶手
段から読み出したソースプログラム11を格納するバッ
ファ12と、このバッファに対して各種制御を行って修
正されたソースコードによるソースプログラム13を出
力させるための制御部14と、所定の情報を記憶するた
めの情報記憶部15とにより構成されている。
【0011】ここで制御部14は、図示しないCPU
(中央処理装置)と本装置の制御用のプログラムを格納
した磁気ディスクあるいはRAM等の記憶手段によって
構成されている。バッファ12および情報記憶部15は
これらと独立した記憶手段で構成してもよいし、前記し
た記憶手段の一部を割り当てることもできる。
【0012】制御部14はプログラムの実行によってバ
ッファ12に格納されたソースプログラム11に対して
各種機能を実現してその修正を行うことになるが、この
ような機能部分としては次のようなものが存在する。ま
ず、認識部21は、CPUの実行モードの認識を行う。
この認識結果として実行モードが異なっている場合にソ
ースプログラム11の修正が行われることになる。宣言
部検出部22は、CPUの実行モードの修正が必要と判
定されたときに起動するものである。宣言部検出部22
はバッファ12からソースプログラム11を入力し、変
数宣言部の検出を行う。検出された変数宣言部は情報記
憶部15に入力される。
【0013】更新部23は、情報記憶部15に入力され
たデータを基にしてバッファ12内のソースプログラム
11に対して変数の位置アドレスが引き渡される箇所の
トレースを行う。そして、格納箇所に関するデータを変
数に照らし合わせて情報記憶部15に入力していく。ア
クセス点検出部24は、情報記憶部15に入力されてい
る各変数について、バッファ12内のソースプログラム
11からそれへのアクセス点を検出する。検出されたこ
のデータは判定部25に引き渡される。
【0014】判定部25は、その変数の宣言型とアクセ
ス型が同一であるかどうかを判定する。この判定結果は
処理部26に引き渡される。処理部26では、宣言型と
アクセス型の組み合わせによってソースプログラム11
に対する修正内容を決定する。そして、ソースプログラ
ム11をこの内容で修正する。通常処理部27は、この
修正されたソースあるいは認識部21で実行モードが異
なっていないとされて修正を行わなかったソースに対し
て通常処理を行い、ソースプログラム13を構成するソ
ースコードの書き出しを行うようになっている。
【0015】図2は、以上のような構成の本実施例のソ
ースプログラム修正装置の動作を説明するためのもので
ある。前記した磁気ディスク等から読み出されたC言語
によって記述されたソースプログラム11はプリプロセ
ッサに引き渡され、バッファ12に一時的に格納される
(ステップS101)。
【0016】図3はバッファに格納された処理前のソー
スプログラムの一部を表わしたものである。ここでは
変数の宣言部であり、は変数のアドレスを引き渡して
いる代入文である。は変数へのアクセス点を示してい
る。
【0017】バッファ12に図3に示したようなソース
プログラム11が格納されたら、プリプロセッサは現在
のCPUの実行モードを自身が有するテストプログラム
によって検出し、引き渡されたソースが現在のCPUの
実行モード用に記述されたものでないかどうかを調べる
(ステップS102)。現在のCPUの実行モード用に
記述されている場合には(N)、通常のプリプロセス処
理(ステップS103)のみを行った後にソースプログ
ラム13を書き出して(ステップS104)、処理を終
了させる(エンド)。
【0018】これに対して、ステップS102でCPU
の実行モードが異なっていると判別された場合には
(Y)、変数の宣言部の検出が行われる(ステップS1
05)。この際には、“int ”あるいは“short ”等を
キーワードにして変数の宣言部(図3の)を検出す
る。そして、これを情報記憶部15に入力することにな
る。
【0019】図4は情報記憶部の記憶内容の構成を表わ
したものである。情報記憶部15には、変数31、宣言
型32および変数の位置アドレスを保持する変数群33
が記憶されるようになっている。先のステップS105
で宣言部が検出されたときには、変数31と宣言型32
が情報記憶部15に入力される。
【0020】宣言部が検出されたら、ソース内で変数の
アドレスを引き渡している代入文(図3の)の検出が
行われる。そして、変数の位置アドレスを保持する変数
の検出が行われたら、これを変数群33として情報記憶
部15に追加入力していく(ステップS106)。
【0021】以上の処理が終了したら変数へのアクセス
点の検出が行われる(ステップS107)。アクセス点
の検出は、情報記憶部15を参照しながら変数へのアク
セス点(図3の)を検出することによって行う。次
に、宣言型とアクセス型が異なるかどうかの判定が行わ
れる(ステップS108)。同一である場合には
(N)、通常のプリプロセス処理を行って(ステップS
103)、ソースプログラム13を書き出して(ステッ
プS104)、処理を終了させる(エンド)。
【0022】これに対して、宣言型とアクセス型が異な
る場合には(Y)、変数の宣言型とアクセス型の組み合
わせによってそれに対応した処理が行われる(ステップ
S109)。そして、この後に通常処理が行われ(ステ
ップS103)、バッファ12内の修正済みのソースプ
ログラム13が出力されることになる(ステップS10
4)。
【0023】図5は図3に対応させたもので、ソースの
修正が終了した状態を表わしたものである。この図で
で示した部分がステップS109で修正された箇所であ
る。
【0024】
【発明の効果】以上説明したように本発明ではソース自
体を再度書き直すことなく、アクセス点を検出して異な
るCPU実行モードで走行するシステムに対応するソー
スコードのプログラムに修正することにした。したがっ
て、ある特定のシステム用に開発したプログラムをCP
Uの実行モードが異なるシステムでテストするといった
擬似的な使用が可能になる。このため、移植効率が高ま
るといった効果を有することになる。
【図面の簡単な説明】
【図1】本発明の一実施例におけるソースプログラム修
正装置の原理的な構成を示すブロック図である。
【図2】本実施例の装置の動作を表わした流れ図であ
る。
【図3】修正前のソースプログラムの一部を示す説明図
である。
【図4】情報記憶部の記憶内容を示した説明図である。
【図5】図3に示したソースプログラムの修正後の状態
を表わした説明図である。
【符号の説明】
11 (修正前の)ソースプログラム 12 バッファ 13 (修正後の)ソースプログラム 14 制御部 15 情報記憶部 21 認識部 22 宣言部検出部 23 更新部 24 アクセス点検出部 25 判定部 26 処理部 27 通常処理手段 31 変数 32 宣言型 33 変数群

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 ソースプログラムを入力するソースプロ
    グラム入力手段と、 このソースプログラムとCPUの実行モードが異なるか
    否かをチェックすることによりソースプログラムの修正
    の有無を判別する修正有無判別手段と、 ソースプログラムの修正が必要と判別されたときソース
    プログラム中の変数の宣言部を検出する変数宣言部検出
    手段と、 検出された変数の宣言部を記憶する情報記憶手段と、 情報記憶手段に記憶されたデータを基にして前記ソース
    プログラム入力手段によって入力されたソースプログラ
    ムに対して変数の位置アドレスの引き渡し先をトレース
    し、その格納場所を変数に照らし合わせて前記情報記憶
    部に入力する更新手段と、 この情報記憶部に入力されている各変数について前記ソ
    ースプログラムを用いてそれへのアクセス点を検出する
    アクセス点検出手段と、 アクセス点の検出された変数の宣言型とアクセス型が同
    一か否かを判定する判定手段と、 宣言型とアクセス型が異なっている場合にはこれらの組
    み合わせによって前記ソースプログラムの修正を行う修
    正手段とを具備することを特徴とするソースプログラム
    修正装置。
  2. 【請求項2】 前記修正有無判別手段は、メモリにデー
    タを格納する番地の付けられる方向を所定の方向とそれ
    と反対の方向のいずれかに設定することによって同一の
    データが2通りのメモリイメージのいずれかとなるよう
    なデータ処理システムにおいて、CPUが前記メモリイ
    メージのいずれを用いてプログラムの実行を行うかを認
    識することによってCPUの実行モードが異なるか否か
    をチェックすることを特徴とする請求項1記載のソース
    プログラム修正装置。
  3. 【請求項3】前記ソースプログラムはC言語によって記
    述されていることを特徴とする請求項1記載のソースプ
    ログラム修正装置。
JP27859292A 1992-10-16 1992-10-16 ソースプログラム修正装置 Pending JPH06131170A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27859292A JPH06131170A (ja) 1992-10-16 1992-10-16 ソースプログラム修正装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27859292A JPH06131170A (ja) 1992-10-16 1992-10-16 ソースプログラム修正装置

Publications (1)

Publication Number Publication Date
JPH06131170A true JPH06131170A (ja) 1994-05-13

Family

ID=17599415

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27859292A Pending JPH06131170A (ja) 1992-10-16 1992-10-16 ソースプログラム修正装置

Country Status (1)

Country Link
JP (1) JPH06131170A (ja)

Similar Documents

Publication Publication Date Title
KR930016880A (ko) 전자장치 및 그것의 고정정보 수정방법
US5617564A (en) Program source file preprocessing method and apparatus to detect modifications and generate a class of files
JPH06131170A (ja) ソースプログラム修正装置
JPS62168229A (ja) システム構成自動認識処理方法
JPH0317760A (ja) データ書込み確認方式
JPH05297911A (ja) シーケンスコントローラ用シーケンス制御回路
JPH0210435A (ja) アドレストラップ回路
JPH0769822B2 (ja) 演算レジスタのバイパスチェック方式
JPH0535499A (ja) データ処理装置及びデータ処理方法
JP2764358B2 (ja) データ駆動型情報処理装置
JPH0527986A (ja) コンパイラの最適化方法および最適化装置
JPH0353348A (ja) マイクロプログラムのデバッグ方式
JPS59116999A (ja) メモリ破壊検証方式
JPH0660205A (ja) データ駆動型情報処理装置
JPH0981381A (ja) オブジェクトプログラム比較方式
JPH07121380A (ja) コンパイル装置
JPS6327937A (ja) 計算機システムの絶対マイナス1番地認識方式
JPS63165931A (ja) 不連続命令フエツチアドレス情報記憶方式
JPS6341928A (ja) プログラム特性のロ−ド時変更方式
JPH04344938A (ja) 割込発生回路
JPH06149713A (ja) データ処理装置
JPH0566949A (ja) 関数定義コンパイルドコード呼出し方式
JPH0378833A (ja) リスト処理言語を使用するデ―タ処理装置
JPS6269329A (ja) メモリ破壊位置検出方式
JPH02230336A (ja) 情報処理装置