JP2001325120A - Information processor - Google Patents

Information processor

Info

Publication number
JP2001325120A
JP2001325120A JP2001065278A JP2001065278A JP2001325120A JP 2001325120 A JP2001325120 A JP 2001325120A JP 2001065278 A JP2001065278 A JP 2001065278A JP 2001065278 A JP2001065278 A JP 2001065278A JP 2001325120 A JP2001325120 A JP 2001325120A
Authority
JP
Japan
Prior art keywords
area
dynamic variable
variable
initial value
specifying
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
JP2001065278A
Other languages
Japanese (ja)
Inventor
Koji Takahara
浩二 高原
Masaki Aoki
正樹 青木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001065278A priority Critical patent/JP2001325120A/en
Publication of JP2001325120A publication Critical patent/JP2001325120A/en
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

PROBLEM TO BE SOLVED: To inspect the undefined reference of a dynamic variable. SOLUTION: A dynamic variable specification means 2 specifies a target dynamic variable form a source file 1. An area specification means 3 specifies an area to be secured in the case of developing the dynamic variable specified by the means 2 on a memory 5 at the time of carrying out a load module. An initializing means 4 initializes the area specified by the means 3 by a prescribed initial value.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は情報処理装置に関
し、特に、動的変数を含むソースコードをコンパイル処
理によりオブジェクトコードに翻訳し、リンク処理によ
り実行可能形式のロードモジュールに変換して実行する
情報処理装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing apparatus, and more particularly to information which translates a source code including a dynamic variable into an object code by a compiling process, converts the source code into an executable load module by a linking process, and executes it. It relates to a processing device.

【0002】[0002]

【従来の技術】FORTRANやC言語のような言語で
使用されている変数には、実行時のメモリへの配置の態
様により、静的変数と動的変数の2種類に分類すること
ができる。静的変数は、プログラムの実行過程によらず
記憶領域への割り当てが不変である変数であり、また、
動的変数は、プログラムの実行中に記憶領域の割り当て
が行われる変数である。
2. Description of the Related Art Variables used in languages such as FORTRAN and the C language can be classified into two types, static variables and dynamic variables, depending on the arrangement in a memory at the time of execution. A static variable is a variable whose allocation to a storage area is invariant regardless of the execution process of a program.
A dynamic variable is a variable to which a storage area is allocated during execution of a program.

【0003】ところで、これらの言語によってプログラ
ムを記述する場合、使用する変数に対しては初期値を設
定する必要がある。初期値を設定しないで変数を参照し
た場合には、変数の値が未定であるため、予期せぬエラ
ーが発生する場合が想定されるからである。
When writing programs in these languages, it is necessary to set initial values for variables to be used. This is because if a variable is referred to without setting an initial value, an unexpected error may occur because the value of the variable is undecided.

【0004】同様の不具合は配列の場合にも存在する。
即ち、配列の場合では、配列添字が宣言された範囲を超
えた場合には未定義の領域を参照することになるので、
その場合にも前述の場合と同様の問題が発生することに
なる。
[0004] A similar problem exists with arrays.
In other words, in the case of an array, if the array subscript exceeds the declared range, it refers to an undefined area.
In this case, the same problem as in the case described above occurs.

【0005】[0005]

【発明が解決しようとする課題】従来において、初期設
定されていない変数が参照されていることの検査(以
下、未定義参照の検査と称する)としては、次の2つの
方法が一般的に用いられていた。 (1)対象となる変数に所定の初期値を設定する命令を
プログラムに追加し、プログラムの実行時において、そ
の所定の値が検出された場合には、未定義の変数が参照
されていると判断する。 (2)コンパイル時に、対象となる変数に所定の初期値
をコンパイラが代入し、プログラムの実行時にその値が
検出された場合には、未定義の変数が使用されていると
判断する。
Conventionally, the following two methods are generally used for checking whether a variable that has not been initialized is referred to (hereinafter referred to as an undefined reference check). Had been. (1) An instruction for setting a predetermined initial value for a target variable is added to a program. If the predetermined value is detected during execution of the program, it is determined that an undefined variable is being referred to. to decide. (2) At the time of compiling, the compiler assigns a predetermined initial value to a target variable, and when the value is detected at the time of executing the program, it is determined that an undefined variable is used.

【0006】また、宣言されていない範囲の配列添字が
参照されていることの検査(以下、配列添字の検査と称
する)としては、次の2つの方法が一般的に用いられて
いた。 (3)配列添字をプリントアウトする命令をプログラム
に追加するなどして、配列添字の内容をプログラマが直
接参照することにより判断する。 (4)コンパイル時に、配列が参照されている命令をプ
ログラムから検出し、その命令の前後に配列添字が適正
な範囲に存在するか否かをチェックする新たな命令をコ
ンパイラが追加する。
In addition, the following two methods have been generally used as a check for referring to an array subscript in a range that is not declared (hereinafter, referred to as an array subscript check). (3) The programmer directly refers to the contents of the array subscript, for example, by adding an instruction to print out the array subscript to the program. (4) At compile time, the compiler detects an instruction that refers to an array from the program, and adds a new instruction before and after the instruction to check whether or not the array subscript exists in an appropriate range.

【0007】ところで、(1),(3)の方法の場合で
は、新たな命令をプログラマが手入力で追加する必要が
あるため、煩雑であるという問題点があった。また、
(2),(4)の方法の場合、プログラムを再度コンパ
イルする必要が生じ、コンパイルに長時間を要するプロ
グラムに対しては効率がよくないという問題点があっ
た。
In the methods (1) and (3), however, there is a problem that it is complicated since a new instruction must be added manually by a programmer. Also,
In the case of the methods (2) and (4), it is necessary to compile the program again, and there is a problem that it is not efficient for a program requiring a long time for compiling.

【0008】更に、(2),(4)の方法では、前述の
動的変数に対しては、初期値を設定することができない
という問題点があった。この点について以下に詳述す
る。即ち、動的変数は、プログラムが実行される際にメ
モリ領域への割り当てが初めて決定される変数であり、
その割り当て先はOS(Operating System)が管理して
いる。従って、変数の内容を所定の値で初期化するため
には、OSが割り当てた領域を知る必要があるが、その
ような方法は従来存在していなかったため、動的変数に
関しては任意の値への初期化が困難であった。
Further, the methods (2) and (4) have a problem that an initial value cannot be set for the above-mentioned dynamic variables. This will be described in detail below. That is, a dynamic variable is a variable whose allocation to a memory area is determined for the first time when a program is executed,
The allocation destination is managed by an OS (Operating System). Therefore, in order to initialize the contents of a variable with a predetermined value, it is necessary to know the area allocated by the OS. However, since such a method has not existed in the past, a dynamic variable is set to an arbitrary value. Was difficult to initialize.

【0009】本発明は、このような点に鑑みてなされた
ものであり、デバッグオプションにより動的変数を任意
の値で初期化することが可能な情報処理装置を提供する
ことを目的とする。
The present invention has been made in view of such a point, and an object of the present invention is to provide an information processing apparatus capable of initializing a dynamic variable with an arbitrary value by a debug option.

【0010】[0010]

【課題を解決するための手段】本発明では上記課題を解
決するために、図1に示す、動的変数を含むソースファ
イル1をコンパイル処理によってオブジェクトファイル
に翻訳し、リンク処理によって実行可能形式のロードモ
ジュールに変換する情報処理装置において、前記ソース
ファイル1から対象となる動的変数を特定する動的変数
特定手段2と、前記動的変数特定手段2によって特定さ
れた動的変数が、前記ロードモジュールの実行時にメモ
リ5上に展開される際に確保される領域を特定する領域
特定手段3と、前記領域特定手段3によって特定された
領域を、所定の初期値によって初期化する初期化手段4
と、を有することを特徴とする情報処理装置が提供され
る。
According to the present invention, in order to solve the above-mentioned problems, a source file 1 including dynamic variables shown in FIG. 1 is translated into an object file by a compiling process, and is converted into an executable file by a linking process. In an information processing apparatus for converting into a load module, a dynamic variable specifying unit 2 for specifying a target dynamic variable from the source file 1 and a dynamic variable specified by the dynamic variable specifying unit 2 are loaded into the load module. Area specifying means 3 for specifying an area secured when the module is expanded on the memory 5 during execution of the module, and initialization means 4 for initializing the area specified by the area specifying means 3 with a predetermined initial value.
And an information processing apparatus characterized by having the following.

【0011】動的変数特定手段2は、ソースファイル1
から対象となる動的変数を特定する。領域特定手段3
は、動的変数特定手段2によって特定された動的変数
が、ロードモジュールの実行時にメモリ5上に展開され
る際に確保される領域を特定する。初期化手段4は、領
域特定手段3によって特定された領域を、所定の初期値
によって初期化する。
The dynamic variable specifying means 2 includes a source file 1
Specify the target dynamic variable from. Area specifying means 3
Specifies an area secured when the dynamic variable specified by the dynamic variable specifying means 2 is expanded on the memory 5 when the load module is executed. The initialization means 4 initializes the area specified by the area specification means 3 with a predetermined initial value.

【0012】また、配列を含むソースファイルをコンパ
イル処理によってオブジェクトファイルに翻訳し、リン
ク処理によって実行可能形式のロードモジュールに変換
する情報処理装置において、前記ソースファイルから対
象となる配列を特定する配列特定手段と、前記配列特定
手段によって特定された配列において宣言されている領
域よりも所定のバイト数だけ多い領域を、前記ロードモ
ジュールの実行時においてメモリ上に確保する領域確保
手段と、前記領域確保手段によって確保された領域を所
定の初期値で初期化する初期化手段と、を有することを
特徴とする情報処理装置が提供される。
Also, in an information processing apparatus for translating a source file including an array into an object file by a compiling process and converting the source file into an executable load module by a link process, an array specifying device for specifying a target array from the source file Means, an area securing means for securing an area on the memory at the time of execution of the load module, an area larger than the area declared in the array identified by the array identifying means by a predetermined number of bytes, and the area securing means And an initialization unit for initializing the area secured by the above with a predetermined initial value.

【0013】ここで、配列特定手段は、ソースファイル
から対象となる配列を特定する。領域確保手段は、配列
特定手段によって特定された配列において宣言されてい
る領域よりも所定のバイト数だけ多い領域を、ロードモ
ジュールの実行時においてメモリ上に確保する。初期化
手段は、領域確保手段によって確保された領域を所定の
初期値で初期化する。
Here, the array specifying means specifies a target array from the source file. The area securing means secures an area larger by a predetermined number of bytes than the area declared in the array specified by the array specifying means on the memory when the load module is executed. The initialization means initializes the area secured by the area securing means with a predetermined initial value.

【0014】[0014]

【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。図1は、本発明の動作原理を説明
する原理図である。この図において、ソースコードは、
例えば、FORTRANやC言語で記述されたプログラ
ムであり、動的変数を含んでいる。
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a principle diagram for explaining the operation principle of the present invention. In this figure, the source code is
For example, it is a program described in FORTRAN or C language, and includes dynamic variables.

【0015】動的変数特定手段2は、ソースファイル1
から対象となる動的変数を特定する。領域特定手段3
は、動的変数特定手段2によって特定された動的変数
が、実行時においてメモリ上に展開される際に確保され
る領域を特定する。
[0015] The dynamic variable specifying means 2 includes:
Specify the target dynamic variable from. Area specifying means 3
Specifies an area secured when the dynamic variable specified by the dynamic variable specifying means 2 is expanded on the memory at the time of execution.

【0016】初期化手段4は、領域特定手段3によって
特定された領域を、所定の初期値によって初期化する。
メモリ5には、ソースファイル1がコンパイルされ、リ
ンクされて生成されたロードモジュールが格納される。
The initializing means 4 initializes the area specified by the area specifying means 3 with a predetermined initial value.
The memory 5 stores a load module generated by compiling and linking the source file 1.

【0017】次に、以上の原理図の動作について説明す
る。いま、動的変数を含むソースファイル1が入力され
たとすると、動的変数特定手段2は、ソースファイル1
から動的変数を特定する。
Next, the operation of the above principle diagram will be described. Now, assuming that a source file 1 including a dynamic variable is input, the dynamic variable specifying means 2
Identify dynamic variables from

【0018】領域特定手段3は、動的変数特定手段2に
よって特定された動的変数がメモリ5に展開された際の
領域を特定する。具体的には、領域特定手段3は、オブ
ジェクトファイルにおいて、対象となる動的変数に係る
オブジェクトコードが格納されている相対アドレス(先
頭アドレスと末尾アドレス)を取得し、初期化手段4に
対して供給する。
The area specifying means 3 specifies an area when the dynamic variable specified by the dynamic variable specifying means 2 is expanded in the memory 5. More specifically, the area specifying means 3 obtains, in the object file, the relative addresses (the start address and the end address) at which the object codes related to the target dynamic variables are stored, and Supply.

【0019】初期化手段4は、プログラムが実行された
際に、そのオブジェクトコードが格納されたメモリの先
頭アドレス(絶対アドレス)と、前述の先頭アドレスお
よび末尾アドレス(相対アドレス)とから、動的変数が
格納されるメモリの絶対アドレスを特定し、デバッグオ
プション等によって指定された初期値(この例では“8
B”)によってその領域を初期化する。
When the program is executed, the initialization means 4 dynamically determines the starting address (absolute address) of the memory in which the object code is stored, and the starting address and the ending address (relative address). The absolute address of the memory in which the variable is stored is specified, and the initial value (in this example, “8
B ”) initializes the area.

【0020】その結果、メモリ5の動的変数が割り当て
られた領域は、所定の初期値によって初期化されること
になる。以上に説明したように、本発明に係る情報処理
装置によれば、動的変数を任意の値で初期化することが
可能となるので、動的変数についてもデバッグオプショ
ンの指定により未定義参照の検査が可能となる。
As a result, the area of the memory 5 to which the dynamic variables are assigned is initialized with a predetermined initial value. As described above, according to the information processing apparatus according to the present invention, it is possible to initialize a dynamic variable with an arbitrary value. Inspection becomes possible.

【0021】次に、図2および図3を参照して、本発明
の実施の形態について説明する。図2は、本発明の実施
の形態の構成例を示す図である。この図に示すように、
本発明に係る情報処理装置10は、CPU(Central Pr
ocessing Unit)10a、ROM(Read Only Memory)
10b、RAM(Random Access Memory)10c、HD
D(Hard Disk Drive)10d、GC(Graphics Card)
10e、I/F(Interface)10f、および、バス1
0gによって構成されており、外部には表示装置11お
よび入力装置12が接続されている。
Next, an embodiment of the present invention will be described with reference to FIGS. FIG. 2 is a diagram illustrating a configuration example of the embodiment of the present invention. As shown in this figure,
The information processing apparatus 10 according to the present invention includes a CPU (Central Pr
Ocessing Unit) 10a, ROM (Read Only Memory)
10b, RAM (Random Access Memory) 10c, HD
D (Hard Disk Drive) 10d, GC (Graphics Card)
10e, I / F (Interface) 10f, and bus 1
The display device 11 and the input device 12 are connected to the outside.

【0022】ここで、CPU10aは、装置の各部を制
御するとともに、HDD10dに格納されているプログ
ラム等に応じて各種演算処理を実行する。ROM10b
は、CPU10aが実行する基本的なプログラムやデー
タ等を格納している。
Here, the CPU 10a controls various parts of the apparatus and executes various arithmetic processes according to programs and the like stored in the HDD 10d. ROM 10b
Stores basic programs executed by the CPU 10a, data, and the like.

【0023】RAM10cは、CPU10aが実行途中
のプログラムや演算途中のデータ等を一時的に格納す
る。HDD10dは、システム全体を制御するOS、コ
ンパイラ、デバッガ、リンカ、および、コンパイルの対
象となるソースファイルやコンパイル後のオブジェクト
ファイル等を格納している。
The RAM 10c temporarily stores programs being executed by the CPU 10a, data being calculated, and the like. The HDD 10d stores an OS for controlling the entire system, a compiler, a debugger, a linker, a source file to be compiled, an object file after compilation, and the like.

【0024】GC10eは、CPU10aから供給され
た描画命令に従って描画処理を実行し、得られた画像デ
ータを映像信号に変換して表示装置11に出力する。I
/F10fは、入力装置12から供給されたデータの表
現形式を変換して、入力する。
The GC 10e executes a drawing process according to a drawing command supplied from the CPU 10a, converts the obtained image data into a video signal, and outputs the video signal to the display device 11. I
The / F10f converts the expression format of the data supplied from the input device 12 and inputs the converted data.

【0025】バス10gは、CPU10a、ROM10
b、RAM10c、HDD10d、GC10e、およ
び、I/F10fを相互に接続し、これらの間でデータ
の授受を可能とする。
The bus 10g includes a CPU 10a, a ROM 10
b, the RAM 10c, the HDD 10d, the GC 10e, and the I / F 10f are interconnected, and data can be exchanged among them.

【0026】表示装置11は、例えば、CRT(Cathod
e Ray Tube)モニタによって構成され、GC10eから
供給された画像信号を表示出力する。入力装置12は、
例えば、キーボードまたはマウスによって構成され、ユ
ーザの操作に応じたデータを発生して、I/F10fに
供給する。
The display device 11 is, for example, a CRT (Cathod).
e Ray Tube) monitor, and displays and outputs an image signal supplied from the GC 10e. The input device 12
For example, it is constituted by a keyboard or a mouse, generates data according to a user operation, and supplies the data to the I / F 10f.

【0027】ここで、OS、コンパイラ、リンカ、ソー
スファイル、および、オブジェクトファイルは、HDD
10dに格納されており、必要に応じて読み出されてR
AM10cに展開され、CPU10aによって実行され
る。
Here, the OS, compiler, linker, source file, and object file are stored on the HDD.
10d, read as needed and read R
It is developed in the AM 10c and executed by the CPU 10a.

【0028】図3は、OS20、コンパイラ20a、リ
ンカ20b、ソースファイル21、ライブラリ22、お
よび、ロードモジュール23の対応関係を模式的に示し
た図である。
FIG. 3 is a diagram schematically showing the correspondence among the OS 20, the compiler 20a, the linker 20b, the source file 21, the library 22, and the load module 23.

【0029】この図に示すように、OS20は、コンパ
イラ20aおよびリンカ20bの実行を管理するととも
に、これらからの要求に応じてHDD10dに格納され
ているソースファイル21およびライブラリ22を読み
出すとともに、生成されたロードモジュール23をHD
D10dに対して格納する。また、ロードモジュールに
対する実行要求が入力装置12からなされた場合には、
HDD10dに格納されている該当するロードモジュー
ルを読み出して実行する。
As shown in this figure, the OS 20 manages the execution of the compiler 20a and the linker 20b, reads out the source file 21 and the library 22 stored in the HDD 10d in response to a request from the compiler, and generates and generates the library. Load module 23 to HD
D10d is stored. When an execution request for the load module is made from the input device 12,
The corresponding load module stored in the HDD 10d is read and executed.

【0030】ここで、ライブラリ22は、例えば、数学
の関数を演算するための数学関数ライブラリや、ロード
モジュールを実行する際の初期化処理を行う初期化ライ
ブラリ等によって構成されており、リンカ20bによっ
てリンク処理を実行する際に、必要に応じて読み出され
る。
Here, the library 22 is composed of, for example, a mathematical function library for calculating a mathematical function, an initialization library for performing initialization processing when executing a load module, and the like. When executing the link processing, it is read as needed.

【0031】次に、図4を参照して、本発明の実施の形
態の動作の概要について説明する。先ず、コンパイラ2
0aに対して、ソースファイル30が供給されると、コ
ンパイラ20aは、ソースファイル30に含まれている
動的変数を検出する。この例では、「DIMENSIO
N A(1000)」によって宣言されている配列A
(初期値無しのローカル変数)と、「COMMON /
BLK/B(1000)」によって宣言されている配列
B(初期値無しのグローバル変数)とが目的とする動的
変数であるとして検出される。
Next, an outline of the operation of the embodiment of the present invention will be described with reference to FIG. First, Compiler 2
When the source file 30 is supplied to 0a, the compiler 20a detects a dynamic variable included in the source file 30. In this example, "DIMENSIO
Array A declared by "NA (1000)"
(Local variable without initial value) and "COMMON /
The array B (global variable without an initial value) declared by “BLK / B (1000)” is detected as a target dynamic variable.

【0032】次に、コンパイラ20aは、検出した動的
変数を、新たなデータセクション(以下、新データセク
ションと称する)の変数としてオブジェクトファイルに
埋め込み、ソースファイル30に記述された他の命令群
に対するコンパイル処理を施した後、得られたオブジェ
クトファイル31を出力する。
Next, the compiler 20a embeds the detected dynamic variable in an object file as a variable of a new data section (hereinafter, referred to as a new data section), and executes the same for another instruction group described in the source file 30. After performing the compiling process, the obtained object file 31 is output.

【0033】この例では、オブジェクトファイル31に
は、新データセクションを示す「new1」が付与され
たオブジェクトコード「.bssnew1 main.
local,4000」と「.commonnew1
blk,4000」とが記載されている。ここで、「b
ss」はセクション名を、「main」および「loc
al」はメイン関数に属するローカル変数であること
を、また、「4000」は4000バイト(単精度実数
は4バイトから構成されるので)の領域を確保すること
を示す。また、「common」はコモン変数であるこ
とを、また、「blk」は確保する領域に対して付与さ
れた名称である。
In this example, the object file 31 has an object code “.bssnew1 main.
local, 4000 "and" .common1 "
blk, 4000 ". Here, "b
"ss" is the section name, "main" and "loc
“al” indicates that the variable is a local variable belonging to the main function, and “4000” indicates that an area of 4000 bytes (because a single-precision real number is composed of 4 bytes) is secured. “Common” is a common variable, and “blk” is a name given to an area to be secured.

【0034】なお、従来のコンパイラで同様のプログラ
ムをコンパイル処理した場合には、「.bss mai
n.local,4000」と「.common bl
k,4000」とが出力され、実質的な差異は「new
1」のみである。
When a similar program is compiled by a conventional compiler, ".bss mai"
n. local, 4000 "and" .common bl
k, 4000 ”, and the substantial difference is“ new
1 "only.

【0035】リンカ20bは、コンパイラ20aから出
力されたオブジェクトファイル31に対してリンク処理
を施す。即ち、リンカ20bは、先ず、ライブラリ22
から初期化ライブラリ22aおよび必要なライブラリを
読み出し、オブジェクトファイル31に対して付加す
る。
The linker 20b performs link processing on the object file 31 output from the compiler 20a. That is, the linker 20b first
The initialization library 22a and necessary libraries are read out from the library and added to the object file 31.

【0036】ここで、初期化ライブラリ22aは、ロー
ドモジュールを実行した場合に、最初に実行すべき命令
群によって構成されており、本実施の形態では、この初
期化ライブラリ22aによって、目的とする動的変数の
初期化処理を実行する。
Here, the initialization library 22a is composed of a group of instructions to be executed first when a load module is executed. In the present embodiment, the initialization library 22a uses the initialization library 22a to execute a desired operation. Performs initialization of dynamic variables.

【0037】続いて、リンカ20bは、オブジェクトフ
ァイル31に含まれている新データセクションの変数を
検索する。新データセクションの変数が検出された場合
には、その変数が格納されている領域の先頭の相対アド
レス(オブジェクトプログラムの先頭からの距離)であ
るbss_startと、末尾の相対アドレスbss_
endとを取得する。そして、取得した相対アドレスb
ss_startと、bss_endとを、先に付与し
た初期化ライブラリ22aに対して引き渡す(例えば、
所定の位置に埋め込む)。
Subsequently, the linker 20b searches for a variable of the new data section included in the object file 31. When a variable of the new data section is detected, bss_start which is a relative address at the head of the area where the variable is stored (distance from the head of the object program) and a relative address bss_at the end
and end. Then, the obtained relative address b
The ss_start and the bss_end are transferred to the initialization library 22a given earlier (for example,
Embed in place).

【0038】続いて、リンカ20bは、リンク処理によ
ってオブジェクトファイルを統合して実行可能形式のロ
ードモジュール32を生成する。ロードモジュール32
が実行されると、OS20は、HDD10dからロード
モジュール32を読み出し、RAM10c上の所定の領
域に配置する。
Subsequently, the linker 20b integrates the object files by a link process to generate the executable load module 32. Load module 32
Is executed, the OS 20 reads the load module 32 from the HDD 10d and places it in a predetermined area on the RAM 10c.

【0039】RAM10c上にロードモジュール32が
配置されると、先ず、初期化ライブラリ22aが実行さ
れ、相対アドレスbss_start,bss_end
と、メモリ上に展開されたロードモジュールの先頭アド
レス(絶対アドレス)とから、初期化すべき領域の先頭
アドレスabss_startと末尾アドレスabss
_end(絶対アドレス)とを算出する。そして、算出
された先頭アドレスabss_startと末尾アドレ
スabss_endによって指定されたメモリ33の領
域に対して、例えば、プログラムが実行される際に指定
された初期値(この例では、“8B”)が書き込まれる
ことになる。
When the load module 32 is placed on the RAM 10c, first, the initialization library 22a is executed, and the relative addresses bss_start and bss_end are set.
From the start address (absolute address) of the load module expanded on the memory, the start address abss_start and the end address abss of the area to be initialized are obtained.
_End (absolute address). Then, for example, an initial value (“8B” in this example) specified when the program is executed is written into the area of the memory 33 specified by the calculated start address abss_start and end address abss_end. Will be.

【0040】以上の処理によれば、メモリ上に配置され
るまでその格納位置が未定である動的変数に対しても、
任意の値による初期化処理が可能となるので、デバッグ
オプションを利用して、未定義参照の検査を行うことが
可能となる。
According to the above processing, even for a dynamic variable whose storage position is undecided until it is arranged on the memory,
Since initialization processing with an arbitrary value becomes possible, it is possible to check for an undefined reference using a debug option.

【0041】次に、以上に説明した処理を実現するフロ
ーチャートについて説明する。図5は、コンパイラ20
aが実行する処理の一例を説明するフローチャートであ
る。このフローチャートが開始されると、以下の処理が
実行される。 [S1]コンパイラ20aは、コンパイル処理の対象と
なるソースファイルから所定の変数を抽出する。 [S2]コンパイラ20aは、抽出した変数が動的変数
であるか否かを判定し、動的変数である場合にはステッ
プS3に進み、それ以外の場合にはステップS4に進
む。 [S3]コンパイラ20aは、新データセクションに係
るオブジェクトコードを出力する。 [S4]コンパイラ20aは、通常データセクションに
係るオブジェクトコードを出力する。 [S5]コンパイラ20aは、ソースファイルに未処理
の変数が存在するか否かを判定し、存在する場合にはス
テップS1に戻って同様の処理を繰り返し、それ以外の
場合にはステップS6に進む。 [S6]コンパイラ20aは、変数以外の部分に対する
コンパイル処理を実行する。
Next, a flowchart for realizing the above-described processing will be described. FIG.
6 is a flowchart illustrating an example of a process performed by a. When this flowchart is started, the following processing is executed. [S1] The compiler 20a extracts a predetermined variable from a source file to be compiled. [S2] The compiler 20a determines whether the extracted variable is a dynamic variable. If the extracted variable is a dynamic variable, the process proceeds to step S3; otherwise, the process proceeds to step S4. [S3] The compiler 20a outputs an object code relating to the new data section. [S4] The compiler 20a outputs an object code related to the normal data section. [S5] The compiler 20a determines whether or not an unprocessed variable exists in the source file, and if so, returns to step S1 and repeats the same processing. Otherwise, proceeds to step S6. . [S6] The compiler 20a executes a compile process on a part other than the variable.

【0042】図6は、リンカ20bが実行する処理の一
例を説明するフローチャートである。このフローチャー
トが開始されると、以下の処理が実行される。 [S20]リンカ20bは、初期化ライブラリ22aを
リンクする処理を実行する。 [S21]リンカ20bは、他のライブラリ(例えば、
数学関数ライブラリ)をリンクする処理を実行する。 [S22]リンカ20bは、オブジェクトファイルから
新データセクションに係るオブジェクトコードを検索す
る。 [S23]リンカ20bは、新データセクションに係る
オブジェクトコードが存在しているか否かを判定し、存
在している場合にはステップS24に進み、それ以外の
場合にはステップS27に進む。 [S24]リンカ20bは、新データセクションの先頭
の相対アドレスであるbss_startを取得する。 [S25]リンカ20bは、新データセクションの末尾
の相対アドレスであるbss_endを取得する。 [S26]リンカ20bは、取得した相対アドレスbs
s_startとbss_endとを初期化ライブラリ
22aに受け渡す。
FIG. 6 is a flowchart illustrating an example of a process executed by the linker 20b. When this flowchart is started, the following processing is executed. [S20] The linker 20b executes a process of linking the initialization library 22a. [S21] The linker 20b uses another library (for example,
Execute the process of linking the mathematical function library. [S22] The linker 20b searches the object file for the object code associated with the new data section. [S23] The linker 20b determines whether or not the object code related to the new data section exists. If the object code exists, the process proceeds to step S24; otherwise, the process proceeds to step S27. [S24] The linker 20b acquires bss_start, which is the relative address at the head of the new data section. [S25] The linker 20b obtains bss_end, which is the relative address at the end of the new data section. [S26] The linker 20b obtains the relative address bs
s_start and bss_end are passed to the initialization library 22a.

【0043】具体的には、例えば、これらの相対アドレ
スを、初期化ライブラリ22aの所定の領域に埋め込
む。 [S27]リンカ20bは、リンク処理を実行する。
Specifically, for example, these relative addresses are embedded in a predetermined area of the initialization library 22a. [S27] The linker 20b executes a link process.

【0044】次に、図7を参照して、初期化ライブラリ
22aの処理の一例を説明する。この処理は、ロードモ
ジュール32が実行され、RAM10c上に配置された
場合に実行される処理である。 [S40]CPU10aは、ロードモジュール32に埋
め込まれている相対アドレスbss_startおよび
bss_endの値が同一であるか否かを判定し、同一
である場合には処理を終了し、それ以外の場合にはステ
ップS41に進む。
Next, an example of the processing of the initialization library 22a will be described with reference to FIG. This processing is executed when the load module 32 is executed and arranged on the RAM 10c. [S40] The CPU 10a determines whether or not the values of the relative addresses bss_start and bss_end embedded in the load module 32 are the same. If the values are the same, the CPU 10a ends the process. Proceed to S41.

【0045】ここで、これらの値が同一である場合に
は、相対アドレスは書き込まれていないデフォルト状態
であることを意味するので、その場合には初期化の対象
となる動的変数は存在しないとして処理を終了する。 [S41]CPU10aは、例えば、実行時に入力装置
12から供給された初期値を取得する。
Here, if these values are the same, it means that the relative address is in a default state where no data is written. In this case, there is no dynamic variable to be initialized. And the process ends. [S41] For example, the CPU 10a acquires an initial value supplied from the input device 12 at the time of execution.

【0046】なお、この初期値は、後述するように、コ
ンパイル時に指定し、ロードモジュールの所定の領域に
格納しておくことも可能である。 [S42]CPU10aは、bss_startとbs
s_endによって特定されるRAM10c上の領域に
対してステップS41で取得した初期値を配置する。
The initial value can be specified at the time of compiling and stored in a predetermined area of the load module, as described later. [S42] The CPU 10a sets the bss_start and bs
The initial value acquired in step S41 is arranged in the area on the RAM 10c specified by s_end.

【0047】以上の処理によれば、既述した処理を実現
できる。なお、以上の例では、初期化の対象となるデー
タ領域が1つの場合について説明したが、複数の場合に
は前述の処理を必要回数だけ繰り返すことにより実現可
能となる。
According to the above processing, the processing described above can be realized. In the above example, a case has been described in which the number of data areas to be initialized is one. However, in the case of a plurality of data areas, this can be realized by repeating the above-described processing a required number of times.

【0048】次に、本実施の形態の更に具体的な動作に
ついて説明する。先ず、図8を参照して、対象となる変
数の新データセクションへの割り当て方法について説明
する。
Next, a more specific operation of the present embodiment will be described. First, a method of assigning a target variable to a new data section will be described with reference to FIG.

【0049】図8の例では、ソースファイル40の2行
目では、配列X1と配列X2とが宣言されており、同一
のブロック名ALKが付与されている。また、3行目で
は、配列X3が宣言されており、ブロック名BLKが付
与されている。
In the example of FIG. 8, on the second line of the source file 40, an array X1 and an array X2 are declared, and the same block name ALK is given. In the third line, an array X3 is declared, and a block name BLK is given.

【0050】このようなソースファイル40がコンパイ
ルされると、オブジェクトファイル41が生成されるこ
とになる。このオブジェクトファイルでは、同一のブロ
ック名が付与された配列X1と配列X2とに対しては、
同一のデータセクションが割り当てられている。また、
配列X3に対しては、前2者とは異なるデータセクショ
ンが割り当てられている。
When such a source file 40 is compiled, an object file 41 is generated. In this object file, for the arrays X1 and X2 to which the same block name is assigned,
The same data section is assigned. Also,
A data section different from the former two is assigned to the array X3.

【0051】この例では、ブロック名に応じてデータセ
クションを割り当てるようにしたが、それ以外にも種々
の割り当て方法が考えられる。例えば、配列とそれ以外
の変数を分けて別々のデータセクションを割り当てる方
法、配列の要素数に応じて割り当てる方法、データの型
(4バイト整数、8バイト整数、4バイト実数、8バイ
ト実数)に応じて割り当てる方法、変数名に応じて割り
当てる方法、および、手続きの名前に応じて割り当てる
方法などがある。
In this example, the data section is allocated according to the block name. However, other various allocation methods are conceivable. For example, the method of allocating separate data sections by dividing the array and other variables, the method of allocating according to the number of elements in the array, and the data type (4 byte integer, 8 byte integer, 4 byte real number, 8 byte real number) There is a method of allocating according to a variable name, a method of allocating according to a variable name, and a method of allocating according to the name of a procedure.

【0052】以上の例は、コンパイラが自動的にデータ
セクションを割り当てる方法の一例であるが、プログラ
マがコンパイル時にコンパイルオプション等によって直
接指定するようにしてもよい。
The above example is an example of a method in which the compiler automatically allocates a data section. However, a programmer may directly specify the data section by a compile option or the like at the time of compilation.

【0053】何れの方法にせよ、データセクションの割
り当てを適宜変更することにより、所望の変数のみを所
望の値によって初期化することが可能となる。次に、図
9を参照して、ソースファイル内に同一の変数に関する
宣言が散在している場合において、これらの変数を統合
する処理について説明する。
In any case, by appropriately changing the assignment of the data sections, it becomes possible to initialize only desired variables with desired values. Next, with reference to FIG. 9, a description will be given of a process of integrating these variables when declarations regarding the same variables are scattered in the source file.

【0054】図9に示すソースファイル50では、メイ
ンプログラムであるMAIN内においてブロック名がB
LKの配列X3が宣言されている。また、サブルーチン
であるSUB内において、同一の配列(ブロック名BL
Kの配列X3)が宣言されている。
In the source file 50 shown in FIG. 9, the block name is B in the main program MAIN.
The array X3 of LK is declared. In the subroutine SUB, the same array (block name BL
K array X3) is declared.

【0055】このようなソースファイル50をコンパイ
ラ20aによってコンパイルすると、MAIN内および
SUB内のそれぞれに新データセクションに係るオブジ
ェクトコードを有するオブジェクトファイル51が得ら
れる。
When such a source file 50 is compiled by the compiler 20a, an object file 51 having object codes relating to the new data section in MAIN and SUB is obtained.

【0056】そして、このようなオブジェクトファイル
51に対してリンカ20bによってリンク処理を施す
と、オブジェクトファイル51においてMAINおよび
SUB内に別個に存在していた新データセクションに係
るオブジェクトコードが統合されて1つにまとめられた
リンクモジュール52が生成される。
When such a link processing is performed on the object file 51 by the linker 20b, the object codes related to the new data section which existed separately in the MAIN and the SUB in the object file 51 are integrated into one. A combined link module 52 is generated.

【0057】従って、ソースファイル内に同一の変数に
関する宣言が散在している場合であっても、これらを統
合して1つの変数とすることが可能となる。次に、図1
0を参照して、複数のソースファイル内に同一の変数に
関する宣言が存在している場合において、これらの変数
を統合する処理について説明する。
Therefore, even if declarations relating to the same variable are scattered in the source file, these can be integrated into one variable. Next, FIG.
With reference to FIG. 0, a description will be given of a process of integrating these variables when declarations regarding the same variable exist in a plurality of source files.

【0058】図10に示す例において、ソースファイル
60ではブロック名がBLKである配列X3がMAIN
内で宣言されており、また、ソースファイル61では同
一の配列X3がSUB内で宣言されている。ここで、ソ
ースファイル60は従来のコンパイラでコンパイルさ
れ、また、ソースファイル61は本実施の形態のコンパ
イラ20aによってコンパイルされたとする。
In the example shown in FIG. 10, in the source file 60, the array X3 whose block name is BLK is MAIN.
In the source file 61, the same array X3 is declared in the SUB. Here, it is assumed that the source file 60 is compiled by a conventional compiler, and the source file 61 is compiled by the compiler 20a of the present embodiment.

【0059】その結果、オブジェクトファイル62で
は、配列X3には従来通りのデータセクションが割り当
てられ、また、オブジェクトファイル63では、配列X
3には新データセクションが割り当てられている。
As a result, in the object file 62, the conventional data section is allocated to the array X3, and in the object file 63, the array X3 is allocated.
3 is assigned a new data section.

【0060】このような2種類のオブジェクトファイル
62,63を、リンカ20bによってリンクする処理を
実行すると、リンカ20bは、オブジェクトファイル6
2,63に含まれている同一の配列X3に係るデータセ
クションを比較し、一方が新データセクションで、他方
が通常のデータセクションであるので、双方を通常のデ
ータセクションに統一する。
When the two types of object files 62 and 63 are linked by the linker 20b, the linker 20b sets the object file 6
2, 63 are compared, and one is a new data section and the other is a normal data section, so that both are unified into a normal data section.

【0061】その結果、図10に示すように、双方の配
列X3が通常のデータセクションに対して割り当てられ
たロードモジュール64を得ることになる。このよう
に、異なるデータセクションが割り当てられた変数をリ
ンク処理によって統合する場合には、通常のデータセク
ションを優先するようにしたので、同一の変数が異なる
領域に割り当てられることを防止し、従来と同様の動作
を保証することが可能となる。
As a result, as shown in FIG. 10, a load module 64 in which both arrays X3 are allocated to a normal data section is obtained. As described above, when variables to which different data sections are assigned are integrated by link processing, the normal data section is prioritized, so that the same variable is prevented from being assigned to different areas, and the conventional data section is prevented from being assigned. A similar operation can be guaranteed.

【0062】なお、以上の実施の形態では、通常のデー
タセクションに統合するようにしたが、新データセクシ
ョンに統合するようにしてもよい。その場合には、従来
のコンパイラによってコンパイルされたオブジェクトフ
ァイル62の動作が保証できないが、未定義参照の検査
は実行することが可能となる。
In the above embodiment, the data is integrated into the normal data section. However, the data may be integrated into the new data section. In that case, the operation of the object file 62 compiled by the conventional compiler cannot be guaranteed, but the check for undefined references can be executed.

【0063】次に、変数を初期化する際の初期値の設定
の方法について説明する。初期値を設定する方法として
は、(1)コンパイル時に指定する方法と、(2)実行
時に指定する方法の2通りがある。以下では、先ず、
(1)の方法について説明した後、続いて(2)の方法
について説明する。
Next, a method of setting an initial value when a variable is initialized will be described. There are two methods for setting the initial value: (1) a method of specifying at the time of compiling and (2) a method of specifying at the time of execution. Below, first,
After describing the method (1), the method (2) will be described.

【0064】(1)の方法では、コンパイラの起動コマ
ンドに続いて、ソースファイルのファイル名と初期値と
を入力することにより初期値を指定する。例えば、図8
に示す例のように、ブロック名ALKとBLKの2種類
の新データセクションが存在する場合において、ALK
のみを値“8B”で初期化する場合の一例を以下に示
す。なお、ソースファイルのファイル名は「abc.
f」であり、コンパイラの起動コマンドは「frt」で
あるとする。
In the method (1), the initial value is specified by inputting the file name of the source file and the initial value following the start command of the compiler. For example, FIG.
When there are two types of new data sections with the block names ALK and BLK as in the example shown in
An example of the case where only “8B” is initialized is shown below. The file name of the source file is "abc.
f ”, and the activation command of the compiler is“ frt ”.

【0065】frt abc.f −X(A)=8B ここで、「−」以降は、コンパイルオプションであり、
X(A)はブロック名の先頭文字がAである新データセ
クションに対して初期値“8B”による初期化を行うこ
とを示している。
Frt abc. f−X (A) = 8B Here, “−” and following are compile options,
X (A) indicates that a new data section whose first character of the block name is A is to be initialized with an initial value “8B”.

【0066】以上のようなコマンドによって、コンパイ
ルオプションが指定され、コンパイルがなされると、生
成されたオブジェクトファイルの所定の領域には初期値
“8B”が埋め込まれることになる。実行時には、この
初期値が読み出されて目的となる変数(この例では配列
X1,X2)が、指定された初期値“8B”によって初
期化されることになる。
When a compile option is specified by the command as described above and compilation is performed, an initial value “8B” is embedded in a predetermined area of the generated object file. At the time of execution, the initial values are read out, and the target variables (arrays X1 and X2 in this example) are initialized with the specified initial value “8B”.

【0067】次に、(2)の実行時に初期値を指定する
方法について説明する。いま、ロードモジュールのファ
イル名がa.outであり、また、図8に示すブロック
名がBLKの新データセクションを初期値“8B”によ
って初期化する場合には、以下のようにしてロードモジ
ュールを起動する。
Next, a method of specifying an initial value at the time of executing (2) will be described. Now, the file name of the load module is a. When the new data section with the block name BLK shown in FIG. 8 is initialized by the initial value “8B”, the load module is activated as follows.

【0068】a.out −X(B)=8B このようにしてロードモジュールを起動することによ
り、任意の変数を任意の初期値で初期化してからプログ
ラムを実行することが可能となる。
A. out-X (B) = 8B By activating the load module in this way, it is possible to execute a program after initializing an arbitrary variable with an arbitrary initial value.

【0069】なお、以上の例では、16進数“8B”に
よって初期化する場合を例に挙げて説明したが、これ以
外にも、例えば、非数によって初期化することも可能で
ある。以下は、前述の例において、ブロック名がBLK
の新データセクションを非数によって初期化する場合の
例である。
In the above example, the case of initialization using hexadecimal number "8B" has been described as an example. However, other than this, initialization may be performed using, for example, a not-a-number. The following is an example where the block name is BLK
Is an example in which a new data section is initialized by a not-a-number.

【0070】a.out −X(B)=R4NaN ここで、R4NaNは、4バイトの実数(R)の非数
(NaN:Not a Number)によって初期化することを示
している。
A. out-X (B) = R4NaN Here, R4NaN indicates that it is initialized by a 4-byte real number (R) not a number (NaN: Not a Number).

【0071】以上の処理により、任意の変数を任意の初
期値によって初期化することが可能となる。なお、コン
パイル時において初期値を指定した後、実行時にも初期
値を指定した場合には、指定が重複することになるが、
そのような場合には何れか一方を優先して採用するよう
にすればよい。
With the above processing, any variable can be initialized with an arbitrary initial value. If the initial value is specified at compile time and then at run time, the specification will be duplicated.
In such a case, either one may be preferentially adopted.

【0072】次に、初期化された変数を用いて未定義参
照の検査を行う場合の一例について説明する。先ず、最
も簡単な方法として、ソースコードに対して初期化され
た変数の内容をプリントアウトする命令を追加し、変数
の内容を直接確認する方法について説明する。
Next, an example will be described in which an undefined reference is checked using initialized variables. First, as the simplest method, a method will be described in which an instruction for printing out the contents of variables initialized in the source code is added and the contents of the variables are directly confirmed.

【0073】図11は、変数の内容をプリントアウトす
る命令が追加されたソースファイルの一例を示してい
る。この例では、上から2行目にブロック名がBLKで
ある配列Xが定義されており、下から2行目に配列Xの
第1番目の内容をプリントアウトする命令が追加されて
いる。なお、「WRITE」は出力命令であり、括弧内
の“6”は出力装置の番号(この例ではプリンタ)を示
し、シングルクォートで囲繞された(8Z)は、16進
数で出力することを示している。
FIG. 11 shows an example of a source file to which an instruction to print out the contents of a variable has been added. In this example, an array X whose block name is BLK is defined in the second line from the top, and an instruction to print out the first content of the array X is added in the second line from the bottom. Note that “WRITE” is an output command, “6” in parentheses indicates the number of the output device (printer in this example), and (8Z) surrounded by single quotes indicates that the output is in hexadecimal. I have.

【0074】このようなプログラムをコンパイル時のオ
プションとして初期値“8B”を指定してコンパイルし
た後に実行するか、または、実行時において初期値“8
B”を指定して実行した場合に、プリントアウトされる
値が“8B8B8B8B”である場合には、未定義で参
照されていると判断することができる。
Such a program may be executed after compiling by designating the initial value “8B” as an option at the time of compiling, or may be executed at the time of execution.
If the value to be printed out is “8B8B8B8B” when the command is executed with “B” specified, it can be determined that the reference is undefined.

【0075】次に、コンパイル時のデバッグオプション
を拡張して用いる場合の一例について説明する。従来、
FORTRANにおいては、コンパイル時にデバッグオ
プションである「−Du」を指定すると、COMMON
変数以外の変数については初期値“8B”によって初期
化され、この“8B”が代入された変数が参照された場
合には、メッセージ「未定義データが参照されまし
た。」が表示されていた。
Next, a description will be given of an example of a case where the debugging options at the time of compiling are extended and used. Conventionally,
In FORTRAN, if the debug option "-Du" is specified at compile time, COMMON
Variables other than variables are initialized with the initial value “8B”, and when the variable to which this “8B” is assigned is referenced, the message “Undefined data was referenced.” Was displayed. .

【0076】ところで、本発明を適用することで、この
ようなデバッグオプション「−Du」の機能を、COM
MON変数にも拡張することが可能となる。即ち、デバ
ッグオプション「−Du」が指定された場合には、CO
MMON変数に関しても初期値“8B”によって自動的
に初期化するとともに、変数が参照された際に“8B”
が検出された場合にはエラーを通知するようにすれば、
デバッグオプション「−Du」の機能をCOMMON変
数にも拡張することが可能となる。
By applying the present invention, the function of such a debug option "-Du" can be provided by COM.
It can be extended to MON variables. That is, when the debug option "-Du" is specified, CO
The MMON variable is also automatically initialized with an initial value “8B”, and “8B” when the variable is referred to.
If an error is detected, an error is notified,
The function of the debug option "-Du" can be extended to COMMON variables.

【0077】次に、ANSI(American National Stan
dards Institute)/IEEE(Institute of Electric
al and Electronics Engineers)754規格に準拠した
トラップを用いる方法について説明する。
Next, ANSI (American National Stan)
dards Institute) / IEEE (Institute of Electric)
al and Electronics Engineers) A method of using a trap conforming to the 754 standard will be described.

【0078】従来のFORTRANにおいては、目的の
変数を非数で初期化する命令をプログラムにうめこんで
おくとともに、実行時はオプション「−trap」を指
定することにより、その変数の値が未定義で参照された
場合には、メッセージ「無効演算例外が発生しまし
た。」が表示されていた。本実施の形態によれば、この
ようなトラップを動的変数であるCOMMON変数に対
して実行時のオプションの指定のみで行うことが可能と
なる。
In the conventional FORTRAN, an instruction for initializing a target variable by a non-numeral value is embedded in a program, and at the time of execution, the value of the variable is undefined by specifying an option "-trap". When it was referenced, the message "Invalid operation exception occurred." Was displayed. According to the present embodiment, such a trap can be performed only by specifying an option at the time of execution for a COMMON variable that is a dynamic variable.

【0079】以下では、図12に示すように、ブロック
名がBLKの配列Xが宣言されており、この配列Xが未
定義のままで、最後から2行目において参照されている
ソースファイル80を例に挙げて説明する。
In the following, as shown in FIG. 12, an array X whose block name is BLK is declared, and this array X is undefined and the source file 80 referred to in the second line from the end is copied. This will be described using an example.

【0080】このソースファイル80のファイル名が
a.fであるとすると、先ず、以下のコマンドを実行す
ることにより、ソースファイル80をコンパイラ20a
によってコンパイルする。
The file name of the source file 80 is a. f, the following command is executed to convert the source file 80 into the compiler 20a.
Compile by

【0081】frt a.f次に、得られたロードモジ
ュールa.outを実行する際には、以下のように、配
列Xを非数で初期化するとともに、トラップオプション
を指定する。
Frt a. Next, the obtained load module a. When executing out, the array X is initialized with a not-a-number and a trap option is specified as follows.

【0082】 a.out −X=R4NaN −trap 以上のような指定により、配列Xが4バイトの非数によ
って初期化されて実行される。その場合、図12に示す
下から2番目の代入文が実行される際には、配列Xの1
番目の要素が参照されるが、未定義である場合には非数
が代入されていることから、トラップオプションが動作
して、既述したエラーメッセージ「無効演算例外が発生
しました。」が表示されることになる。
A. out-X = R4NaN-trap With the above specification, the array X is initialized and executed by a 4-byte not-a-number. In this case, when the second assignment statement from the bottom shown in FIG.
The second element is referenced, but if it is undefined, a not-a-number is assigned, so the trap option operates and the error message "Invalid operation exception has occurred" is displayed. Will be done.

【0083】次に、配列の内容を参照する際に、宣言さ
れた範囲を超えた添字が使用されているか否かを判定す
る場合について説明する。例えば、図13に示すソース
ファイル90があったとする。このソースファイル90
では、2行目において単精度実数型であって要素数が1
000の配列Aと配列Bとが宣言されている。
Next, a case will be described where it is determined whether or not a subscript exceeding the declared range is used when referring to the contents of the array. For example, assume that there is a source file 90 shown in FIG. This source file 90
In the second line, the single-precision real type is used and the number of elements is 1
000 arrays A and B are declared.

【0084】このような配列がコンパイルされた場合、
従来においては、以下のようなオブジェクトコードが生
成されていた。 .bss main.local,8000 しかしながら、本実施の形態のコンパイラでは、以下の
ようなオブジェクトコードが生成される。
When such an array is compiled,
Conventionally, the following object codes have been generated. . bss main. local, 8000 However, the compiler according to the present embodiment generates the following object code.

【0085】.bss main.local,800
8 即ち、必要な領域よりも8バイトだけ多い領域を確保す
るオブジェクトコードが生成される。ここで、8008
バイトの内訳を図14に示す。この図に示すように、8
008バイトの最初の4000バイトは、配列Aに対し
て割り当てられ、続く4バイトは冗長部とされ、続く4
000バイトは配列Bに対して割り当てられ、最後の4
バイトは冗長部とされる。
[0085] bss main. local, 800
8 That is, an object code is generated that secures an area 8 bytes larger than the required area. Here, 8008
FIG. 14 shows the breakdown of the bytes. As shown in FIG.
The first 4000 bytes of 008 bytes are allocated to array A, the next 4 bytes are redundant,
000 bytes are allocated for array B and the last 4
The bytes are redundant.

【0086】このように、本実施の形態では、配列が宣
言された場合には、必要な領域とともに一定の余分な領
域が確保され、その余分な領域が冗長部とされる。この
ようにして確保した冗長部は、宣言された範囲を超えた
添字が使用されたか否かをチェックする場合に使用する
ことができる。即ち、このようにして確保された全ての
領域を、例えば、非数によって初期化しておき、実行時
にトラップオプションを指定すれば、配列が適切に初期
化されている場合には、冗長部のみに非数が格納されて
いることになるので、メッセージ「無効演算例外が発生
しました。」が表示された場合には、宣言された範囲を
超えた添字が使用された可能性が高い。例えば、図13
に示す例では、2番目のDOループ(6行目〜8行目)
において、配列添字が1〜1001の範囲で使用されて
おり、添字が1001となった場合には前述のエラーが
出力されることになる。
As described above, in the present embodiment, when an array is declared, a certain extra area is secured along with a necessary area, and the extra area is used as a redundant portion. The redundant portion secured in this way can be used to check whether a subscript exceeding the declared range has been used. That is, all the areas thus secured are initialized by, for example, a not-a-number, and if the trap option is specified at the time of execution, if the array is properly initialized, only Since a not-a-number is stored, if the message "Invalid operation exception has occurred" is displayed, it is highly likely that a subscript beyond the declared range was used. For example, FIG.
In the example shown in, the second DO loop (lines 6 to 8)
, The array subscript is used in the range of 1 to 1001, and when the subscript becomes 1001, the above-described error is output.

【0087】なお、このようなメッセージだけでは、配
列添字が宣言された範囲を超えて使用されたか、それ以
外のエラーによるのかは明確ではないが、配列添字のミ
スの可能性もあることは伺い知ることが可能となる。従
来においては、配列添字が宣言された範囲を超えて使用
した場合には、何の表示もなされなかったので、エラー
の存在に気付くことすら困難であったが、このような実
施の形態によれば、エラーが含まれている可能性に気付
くことが可能となる。
It is not clear from such a message alone whether the array subscript was used beyond the declared range or was due to an error other than that, but it is possible that the array subscript may be incorrect. It becomes possible to know. In the past, if an array subscript was used beyond the declared range, no indication was made, and it was difficult to even notice the presence of an error. Thus, it is possible to notice the possibility that an error is included.

【0088】なお、以上の実施の形態と、既述した方法
とを組み合わせれば、動的変数である配列についても、
配列添字の検査を行うことが可能となる。また、このよ
うな実施の形態では、従来のデバッグオプションを活用
するようにしたので、新たなプログラムを作成する手間
を省略するとともに、新たなオプションを付加すること
によりその処理の分だけ全体の処理速度が低下すること
を防止することが可能となる。
By combining the above-described embodiment with the above-described method, it is possible to obtain an array that is a dynamic variable.
Inspection of array subscripts can be performed. Also, in such an embodiment, the conventional debugging options are used, so that the trouble of creating a new program is omitted, and by adding a new option, the entire processing can be performed by the amount of the processing. It is possible to prevent the speed from decreasing.

【0089】なお、以上の実施の形態では、主にFOR
TRANを例に挙げて説明を行ったが、本発明はその他
の言語にも適用可能であり、例えば、C言語その他の言
語に対しても適用することが可能である。
In the above embodiment, mainly the FOR
Although the description has been given by taking TRAN as an example, the present invention is also applicable to other languages, for example, C language and other languages.

【0090】また、動的変数を初期化する既述の方法に
おいては、動的変数のメモリ上への格納先を、相対アド
レスとして初期化ライブラリに引き渡すようにしたが、
本発明はこのような場合のみに限定されるものではな
い。例えば、ロードモジュールが実行された際には、動
的変数が格納されているメモリ上の領域の前後に所定の
識別符号を配置するようにし、この識別符号で囲繞され
た領域を初期化ライブラリによって検出し、指定された
初期値で初期化するようにしてもよい。要は、初期化ラ
イブラリに対して、動的変数が格納されているメモリ上
の領域を通知するようにすればよい。
In the above-described method of initializing a dynamic variable, the storage destination of the dynamic variable in the memory is passed to the initialization library as a relative address.
The present invention is not limited to only such a case. For example, when the load module is executed, a predetermined identification code is arranged before and after the area in the memory where the dynamic variable is stored, and the area surrounded by the identification code is set by the initialization library. It may be detected and initialized with a designated initial value. The point is that the initialization library may be notified of the area in the memory where the dynamic variables are stored.

【0091】最後に、上記の処理機能は、コンピュータ
によって実現することができる。その場合、情報処理装
置が有すべき機能の処理内容を記述したプログラムが提
供される。そのプログラムをコンピュータで実行するこ
とにより、上記処理機能がコンピュータ上で実現され
る。処理内容を記述したプログラムは、コンピュータで
読み取り可能な記録媒体に記録しておくことができる。
コンピュータで読み取り可能な記録媒体としては、磁気
記録装置、光ディスク、光磁気記録媒体、半導体メモリ
などがある。磁気記録装置には、ハードディスク装置
(HDD)、フロッピー(登録商標)ディスク(F
D)、磁気テープなどがある。光ディスク装置には、D
VD(Digital Versatile Disc)、CD−ROM(Compact
Disc Read Only Memory)などがある。光磁気記録媒体
には、CD−R(Recordable)/RW(ReWritable)、DV
D−RAM(Random Access Memory)、MO(Magneto-Opt
ical disk)などがある。
Finally, the above processing functions can be realized by a computer. In that case, a program is provided that describes the processing content of the function that the information processing apparatus should have. By executing the program on a computer, the processing functions are realized on the computer. The program describing the processing content can be recorded on a computer-readable recording medium.
Computer-readable recording media include magnetic recording devices, optical disks, magneto-optical recording media, and semiconductor memories. Magnetic recording devices include a hard disk device (HDD) and a floppy (registered trademark) disk (F
D), magnetic tape and the like. The optical disk drive has D
VD (Digital Versatile Disc), CD-ROM (Compact
Disc Read Only Memory). Magneto-optical recording media include CD-R (Recordable) / RW (ReWritable), DV
D-RAM (Random Access Memory), MO (Magneto-Opt
ical disk).

【0092】プログラムを流通させる場合には、たとえ
ば、そのプログラムが記録されたDVD、CD−ROM
などの可搬型記録媒体が販売される。また、プログラム
をサーバコンピュータの記憶装置に格納しておき、ネッ
トワークを介して、サーバコンピュータから他のコンピ
ュータにそのプログラムを転送することもできる。
When distributing a program, for example, a DVD or CD-ROM on which the program is recorded
And other portable recording media are sold. Alternatively, the program may be stored in a storage device of a server computer, and the program may be transferred from the server computer to another computer via a network.

【0093】プログラムを実行するコンピュータは、た
とえば、可搬型記録媒体に記録されたプログラムもしく
はサーバコンピュータから転送されたプログラムを、自
己の記憶装置に格納する。そして、コンピュータは、自
己の記憶装置からプログラムを読み取り、プログラムに
従った処理を実行する。なお、コンピュータは、可搬型
記録媒体から直接プログラムを読み取り、そのプログラ
ムに従った処理を実行することもできる。また、コンピ
ュータは、サーバコンピュータからプログラムが転送さ
れる毎に、逐次、受け取ったプログラムに従った処理を
実行することもできる。
The computer that executes the program stores, for example, the program recorded on a portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. Note that the computer can also read the program directly from the portable recording medium and execute processing according to the program. Further, each time the program is transferred from the server computer, the computer may sequentially execute processing according to the received program.

【0094】[0094]

【発明の効果】以上説明したように本発明では、動的変
数を含むソースファイルをコンパイル処理によってオブ
ジェクトファイルに翻訳し、リンク処理によって実行可
能形式のロードモジュールに変換する情報処理装置にお
いて、ソースファイルから対象となる動的変数を特定す
る動的変数特定手段と、動的変数特定手段によって特定
された動的変数が、ロードモジュールの実行時にメモリ
上に展開される際に確保される領域を特定する領域特定
手段と、領域特定手段によって特定された領域を、所定
の初期値によって初期化する初期化手段と、を有するよ
うにしたので、動的変数の未定義参照の検査を行うこと
が可能となる。
As described above, according to the present invention, in an information processing apparatus for translating a source file including a dynamic variable into an object file by a compiling process and converting it into an executable load module by a linking process, Identifies the dynamic variable specifying means that specifies the target dynamic variable from the, and specifies the area secured when the dynamic variable specified by the dynamic variable specifying means is expanded in memory when the load module is executed And an initializing unit for initializing the area specified by the area specifying unit with a predetermined initial value, so that an undefined reference of a dynamic variable can be inspected. Becomes

【0095】また、本発明では、配列を含むソースファ
イルをコンパイル処理によってオブジェクトファイルに
翻訳し、リンク処理によって実行可能形式のロードモジ
ュールに変換する情報処理装置において、ソースファイ
ルから対象となる配列を特定する配列特定手段と、配列
特定手段によって特定された配列において宣言されてい
る領域よりも所定のバイト数だけ多い領域を、ロードモ
ジュールの実行時においてメモリ上に確保する領域確保
手段と、領域確保手段によって確保された領域を所定の
初期値で初期化する初期化手段と、を有するようにした
ので、配列において、宣言された範囲を超えた添字が使
用されたことを検出することが可能となる。
Further, according to the present invention, in an information processing apparatus which translates a source file including an array into an object file by a compiling process and converts the object file into an executable load module by a linking process, a target array is specified from the source file. An array specifying means for performing the load module execution, and an area reserving means for reserving an area larger than the area declared in the array specified by the array specifying means by a predetermined number of bytes when executing the load module. And initialization means for initializing an area secured by a predetermined initial value, so that it is possible to detect that a subscript exceeding a declared range is used in an array. .

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の動作原理を説明する原理図である。FIG. 1 is a principle diagram for explaining the operation principle of the present invention.

【図2】本発明の実施の形態の構成例を示すブロック図
である。
FIG. 2 is a block diagram illustrating a configuration example of an embodiment of the present invention.

【図3】OS、コンパイラ、リンカ、ソースファイル、
ライブラリ、および、オブジェクトファイルの関係を示
す図である。
FIG. 3 shows an OS, a compiler, a linker, a source file,
FIG. 4 is a diagram illustrating a relationship between a library and an object file.

【図4】本発明の実施の形態の動作の概要を説明する図
である。
FIG. 4 is a diagram illustrating an outline of an operation of the exemplary embodiment of the present invention.

【図5】図3に示すコンパイラにおいて実行される処理
の一例を説明するフローチャートである。
FIG. 5 is a flowchart illustrating an example of a process executed by the compiler illustrated in FIG. 3;

【図6】図3に示すリンカにおいて実行される処理の一
例を説明するフローチャートである。
FIG. 6 is a flowchart illustrating an example of a process performed by the linker illustrated in FIG. 3;

【図7】図4に示す初期化ライブラリによって実行され
る処理の一例を説明するフローチャートである。
FIG. 7 is a flowchart illustrating an example of a process performed by an initialization library illustrated in FIG. 4;

【図8】対象となる変数の新データセクションへの割り
当て方法を説明する図である。
FIG. 8 is a diagram illustrating a method of assigning a target variable to a new data section.

【図9】ソースファイル内に同一の変数に係る宣言が散
在している場合において、これらの変数を統合する処理
を説明する図である。
FIG. 9 is a diagram illustrating a process of integrating variables when declarations related to the same variable are scattered in a source file.

【図10】複数のソースファイル内に同一の変数に関す
る宣言が存在している場合において、これらの変数を統
合する処理を説明する図である。
FIG. 10 is a diagram illustrating a process of integrating variables when declarations regarding the same variable exist in a plurality of source files.

【図11】未定義参照の検査を行う場合のソースファイ
ルの一例である。
FIG. 11 is an example of a source file when checking for undefined references.

【図12】ANSI/IEEE 754規格準拠のトラ
ップを使用して、未定義参照の検査を行う場合のソース
ファイルの一例である。
FIG. 12 is an example of a source file in a case where an undefined reference is inspected using a trap conforming to the ANSI / IEEE 754 standard.

【図13】定義された範囲を超えた配列添字の使用を検
査するためのソースファイルの一例である。
FIG. 13 is an example of a source file for checking the use of array subscripts beyond a defined range.

【図14】本実施の形態において確保される配列の領域
の一例を示す図である。
FIG. 14 is a diagram showing an example of an array area secured in the present embodiment.

【符号の説明】[Explanation of symbols]

1 ソースコード 2 動的変数特定手段 3 領域特定手段 4 初期化手段 5 メモリ 10 情報処理装置 10a CPU 10b ROM 10c RAM 10d HDD 10e GC 10f I/F 11 表示装置 12 入力装置 20 OS 20a コンパイラ 20b リンカ 21 ソースファイル 22 ライブラリ 23 オブジェクトファイル DESCRIPTION OF SYMBOLS 1 Source code 2 Dynamic variable specifying means 3 Area specifying means 4 Initializing means 5 Memory 10 Information processing device 10a CPU 10b ROM 10c RAM 10d HDD 10e GC 10f I / F 11 Display device 12 Input device 20 OS 20a Compiler 20b Linker 21 Source file 22 Library 23 Object file

───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B042 GA02 HH01 HH42 JJ43 JJ46 LA01 5B081 BB07 CC27 CC64  ──────────────────────────────────────────────────続 き Continued on the front page F-term (reference) 5B042 GA02 HH01 HH42 JJ43 JJ46 LA01 5B081 BB07 CC27 CC64

Claims (13)

【特許請求の範囲】[Claims] 【請求項1】 動的変数を含むソースファイルをコンパ
イル処理によってオブジェクトファイルに翻訳し、リン
ク処理によって実行可能形式のロードモジュールに変換
する情報処理装置において、 前記ソースファイルから対象となる動的変数を特定する
動的変数特定手段と、 前記動的変数特定手段によって特定された動的変数が、
前記ロードモジュールの実行時にメモリ上に展開される
際に確保される領域を特定する領域特定手段と、 前記領域特定手段によって特定された領域を、所定の初
期値によって初期化する初期化手段と、 を有することを特徴とする情報処理装置。
1. An information processing apparatus for translating a source file including a dynamic variable into an object file by a compiling process and converting the object file into an executable load module by a linking process. Dynamic variable specifying means for specifying, and the dynamic variable specified by the dynamic variable specifying means,
Area specifying means for specifying an area to be secured when expanded on a memory at the time of execution of the load module; and initialization means for initializing the area specified by the area specifying means with a predetermined initial value. An information processing apparatus comprising:
【請求項2】 前記動的変数特定手段によって複数の異
なる動的変数が特定された場合には、前記メモリ上に展
開される際に確保される領域を必要に応じて統合する領
域統合手段を更に有することを特徴とする請求項1記載
の情報処理装置。
2. A method according to claim 1, wherein when a plurality of different dynamic variables are specified by said dynamic variable specifying means, an area integrating means for integrating an area secured when being developed on said memory as necessary. The information processing apparatus according to claim 1, further comprising:
【請求項3】 前記リンク処理によって統合される1ま
たは2以上のオブジェクトファイル内に同一の動的変数
が散在している場合には、これらを統合する変数統合手
段を更に有することを特徴とする請求項1記載の情報処
理装置。
3. When one or more object files integrated by the link processing have the same dynamic variables scattered therein, the apparatus further comprises variable integration means for integrating these variables. The information processing device according to claim 1.
【請求項4】 前記動的変数特定手段は、対象となる動
的変数を新たなデータセクションに割り当て、 前記初期化手段は、前記新たなデータセクションに割り
当てられた動的変数のみを対象として初期化処理を実行
することを特徴とする請求項1記載の情報処理装置。
4. The dynamic variable specifying unit assigns a target dynamic variable to a new data section, and the initialization unit initializes only the dynamic variable assigned to the new data section as a target. The information processing apparatus according to claim 1, wherein the information processing apparatus executes a conversion process.
【請求項5】 前記初期化手段は、複数のオブジェクト
ファイルをリンクして前記ロードモジュールを生成する
際に、所定のオブジェクトファイルでは前記新たなデー
タセッションに割り当てられ、他のオブジェクトファイ
ルでは通常のデータセクションに割り当てられている動
的変数が存在する場合には、その動的変数に関しては初
期化処理を実行しないことを特徴とする請求項4記載の
情報処理装置。
5. When the initialization module links the plurality of object files to generate the load module, the initialization means is assigned to the new data session for a predetermined object file, and the normal data for another object file. 5. The information processing apparatus according to claim 4, wherein when there is a dynamic variable assigned to the section, the initialization process is not performed on the dynamic variable.
【請求項6】 前記初期化手段による初期値を、コンパ
イル処理前に入力する初期値入力手段を更に有すること
を特徴とする請求項1記載の情報処理装置。
6. The information processing apparatus according to claim 1, further comprising an initial value input unit for inputting an initial value by said initialization unit before a compiling process.
【請求項7】 前記初期化手段による初期値を、前記ロ
ードモジュールの実行前に入力する初期値入力手段を更
に有することを特徴とする請求項1記載の情報処理装
置。
7. The information processing apparatus according to claim 1, further comprising initial value input means for inputting an initial value by said initialization means before execution of said load module.
【請求項8】 前記初期化の対象となる動的変数を指定
する初期化変数指定手段を更に有することを特徴とする
請求項1記載の情報処理装置。
8. The information processing apparatus according to claim 1, further comprising initialization variable designating means for designating a dynamic variable to be initialized.
【請求項9】 前記ロードモジュールの実行時におい
て、前記初期値が設定されたままの動的変数が参照され
た場合には、エラーを通知するエラー通知手段を更に有
することを特徴とする請求項1記載の情報処理装置。
9. The apparatus according to claim 1, further comprising an error notifying unit for notifying an error when the dynamic variable in which the initial value is set is referred to during execution of the load module. The information processing apparatus according to claim 1.
【請求項10】 前記動的変数が配列である場合には、
ソースコードにおいて宣言された配列の要素数よりも所
定量だけ多いメモリ領域を確保するメモリ確保手段を更
に有し、 前記初期化手段は、前記メモリ確保手段によって確保さ
れたメモリ上の全ての領域を所定の初期値によって初期
化し、 前記エラー通知手段は、前記初期値が設定されたままの
配列が参照された場合には、エラーを通知することを特
徴とする請求項9記載の情報処理装置。
10. When the dynamic variable is an array,
The memory further includes a memory securing unit that secures a memory area larger by a predetermined amount than the number of elements of the array declared in the source code, wherein the initializing unit allocates all areas on the memory secured by the memory securing unit. 10. The information processing apparatus according to claim 9, wherein the information is initialized by a predetermined initial value, and the error notifying unit notifies an error when the array in which the initial value is set is referred to.
【請求項11】 動的変数を含むソースファイルをコン
パイル処理によってオブジェクトファイルに翻訳し、リ
ンク処理によって実行可能形式のロードモジュールに変
換する処理をコンピュータに実行させるプログラムを記
録したコンピュータ読み取り可能な記録媒体において、 コンピュータを、 前記ソースファイルから対象となる動的変数を特定する
動的変数特定手段、 前記動的変数特定手段によって特定された動的変数が、
前記ロードモジュールの実行時にメモリ上に展開される
際に確保される領域を特定する領域特定手段、 前記領域特定手段によって特定された領域を、所定の初
期値によって初期化する初期化手段、 として機能させるプログラムを記録したコンピュータ読
み取り可能な記録媒体。
11. A computer-readable recording medium storing a program for causing a computer to execute a process of translating a source file including a dynamic variable into an object file by a compiling process and converting the source file to a load module in an executable format by a link process. In the computer, a dynamic variable specifying means for specifying a target dynamic variable from the source file, the dynamic variable specified by the dynamic variable specifying means,
An area specifying unit that specifies an area secured when being expanded on a memory when the load module is executed; and an initialization unit that initializes an area specified by the area specifying unit with a predetermined initial value. A computer-readable recording medium on which a program to be recorded is recorded.
【請求項12】 動的変数を含むソースファイルをコン
パイル処理によってオブジェクトファイルに翻訳し、リ
ンク処理によって実行可能形式のロードモジュールに変
換する処理をコンピュータに実行させるプログラムにお
いて、 コンピュータを、 前記ソースファイルから対象となる動的変数を特定する
動的変数特定手段、 前記動的変数特定手段によって特定された動的変数が、
前記ロードモジュールの実行時にメモリ上に展開される
際に確保される領域を特定する領域特定手段、 前記領域特定手段によって特定された領域を、所定の初
期値によって初期化する初期化手段、 として機能させるプログラム。
12. A program for causing a computer to execute a process of translating a source file including a dynamic variable into an object file by a compile process and converting the source file including a dynamic variable into an executable load module by a link process. Dynamic variable specifying means for specifying a target dynamic variable, the dynamic variable specified by the dynamic variable specifying means,
An area specifying unit that specifies an area secured when being expanded on a memory when the load module is executed; and an initialization unit that initializes an area specified by the area specifying unit with a predetermined initial value. Program to let.
【請求項13】 配列を含むソースファイルをコンパイ
ル処理によってオブジェクトファイルに翻訳し、リンク
処理によって実行可能形式のロードモジュールに変換す
る情報処理装置において、 前記ソースファイルから対象となる配列を特定する配列
特定手段と、 前記配列特定手段によって特定された配列において宣言
されている領域よりも所定のバイト数だけ多い領域を、
前記ロードモジュールの実行時においてメモリ上に確保
する領域確保手段と、 前記領域確保手段によって確保された領域を所定の初期
値で初期化する初期化手段と、 を有することを特徴とする情報処理装置。
13. An information processing apparatus for translating a source file including an array into an object file by a compile process and converting the source file into an executable load module by a link process, wherein an array specification for specifying a target array from the source file is provided. Means, an area larger by a predetermined number of bytes than the area declared in the array specified by the array specifying means,
An information processing apparatus, comprising: an area securing unit that secures on a memory when the load module is executed; and an initialization unit that initializes an area secured by the area securing unit with a predetermined initial value. .
JP2001065278A 2000-03-10 2001-03-08 Information processor Pending JP2001325120A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001065278A JP2001325120A (en) 2000-03-10 2001-03-08 Information processor

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000-72446 2000-03-10
JP2000072446 2000-03-10
JP2001065278A JP2001325120A (en) 2000-03-10 2001-03-08 Information processor

Publications (1)

Publication Number Publication Date
JP2001325120A true JP2001325120A (en) 2001-11-22

Family

ID=26587581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001065278A Pending JP2001325120A (en) 2000-03-10 2001-03-08 Information processor

Country Status (1)

Country Link
JP (1) JP2001325120A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020173616A (en) * 2019-04-10 2020-10-22 株式会社沖データ Simulation device, simulation method, and information processing device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020173616A (en) * 2019-04-10 2020-10-22 株式会社沖データ Simulation device, simulation method, and information processing device
JP7226049B2 (en) 2019-04-10 2023-02-21 沖電気工業株式会社 SIMULATION DEVICE, SIMULATION METHOD AND INFORMATION PROCESSING DEVICE

Similar Documents

Publication Publication Date Title
JP4130713B2 (en) Program converter
EP0905617B1 (en) Method for generating a java bytecode data flow graph
US7472375B2 (en) Creating managed code from native code
US20070039010A1 (en) Automatic generation of software code to facilitate interoperability
JP4041248B2 (en) COMPILER DEVICE, COMPUTER-READABLE RECORDING MEDIUM CONTAINING COMPILING PROGRAM, AND COMPILING METHOD
US10409559B2 (en) Single-source-base compilation for multiple target environments
JP2000347874A (en) Method and device for structuring call rule prolog and epilog codes using register allocator
US6968543B2 (en) Information processing apparatus
US7043715B1 (en) Method and apparatus for customizing software
JPH11110194A (en) Connection method to external library function and recording medium in which the connection method is recorded and programmed
US7318174B2 (en) Systems, methods, and computer readable medium for analyzing memory
US20050039193A1 (en) Method and apparatus for generating device driver and user interface screen
US5764991A (en) Processing object oriented code and virtual function code
JPH0254337A (en) Data processing system for facilitating generation of executable image
JP5119902B2 (en) Dynamic reconfiguration support program, dynamic reconfiguration support method, dynamic reconfiguration circuit, dynamic reconfiguration support device, and dynamic reconfiguration system
US6175935B1 (en) Software debugging method and recording medium to which debugging program has been recorded
US20020032901A1 (en) Unitary data structure systems, methods, and computer program products, for global conflict determination
JP2001325120A (en) Information processor
US20040153580A1 (en) Component based operation system dynamic device drive method
JPH0869381A (en) Compilation system
JP2004078604A (en) Information processing method and program for executing the same method and recording medium
JP3608993B2 (en) Compiler device and recording medium recording compiler program
JP3915208B2 (en) Compilation device
JP3192177B2 (en) Object processing device
JP2004192604A (en) Device and method for developing embedded software

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060418

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060616

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060919

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061116

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20061122

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20061222