JPH0744396A - Language processor with symbol backward reference designating function - Google Patents
Language processor with symbol backward reference designating functionInfo
- Publication number
- JPH0744396A JPH0744396A JP5185995A JP18599593A JPH0744396A JP H0744396 A JPH0744396 A JP H0744396A JP 5185995 A JP5185995 A JP 5185995A JP 18599593 A JP18599593 A JP 18599593A JP H0744396 A JPH0744396 A JP H0744396A
- Authority
- JP
- Japan
- Prior art keywords
- symbol
- program
- source program
- language
- function
- 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
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、言語処理装置に関し、
より詳しくは、アプリケーションプログラムの開発分野
で、ベンダーが提供したライブラリへの機能付加、プロ
グラム開発時のデバッギング、及びアプリケーションプ
ログラムの保守等を行う際のシンボル後方参照指定機能
付き言語処理装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a language processor,
More specifically, the present invention relates to a language processing device with a symbol backward reference designating function when adding functions to a library provided by a vendor, debugging during program development, and application program maintenance in the field of application program development.
【0002】[0002]
【従来の技術】従来技術の言語処理装置においては、例
えば、従来例[1]として、ベンダーが提供したライブ
ラリ(アプリケーションプログラムを開発するユーザは
そのライブラリを本来変更することはできない)のモジ
ュールに機能を付加する際に、以下の方法が知られてい
る。 [ライブラリモジュールへの機能付加手順] 手順1−1:機能付加を行うライブラリのモジュール内
の関数をlib func1( )とする。 手順1−2:機能付加部分を定義した関数をlib x
func1( )とし、lib xfunc1( )内に
機能を付加した後で、ライブラリ内のlib func1
( )をcall(コール)するように定義する。 手順1−3:アプリケーションプログラムのソースプロ
グラム内で、ライブラリ内の関数lib func1
( )をコールするところをすべてlib xfunc
1( )に書き直す。 手順1−4:アプリケーションのソースプログラム及び
追加機能を定義したソースプログラムを再コンパイル処
理後、再リンクを行い実行モジュール(アプリケーショ
ンプログラム)を作成する。2. Description of the Related Art In a conventional language processor, an example is given.
For example, as a conventional example [1], live provided by the vendor
Rari (Users who develop application programs
You can't change that library.)
The following methods are known to add functions to the tool.
It [Procedure for adding functions to the library module] Step 1-1: Inside the module of the library for adding functions
The function of lib func1 (). Step 1-2: Lib the function that defines the function addition part x
func1 (), and lib in xfunc1 ()
After adding the function, the lib in the library func1
() Is defined to be called. Step 1-3: Source program of application program
In g, the function lib in the library func1
Everywhere you call () lib xfunc
Rewrite to 1 (). Step 1-4: Source program of application and
Recompiles the source program that defines additional functions
After that, relink and execute module (application
Program).
【0003】また、従来例[2]として、アプリケーシ
ョンプログラムのデバッグ処理をする際に、アプリケー
ションプログラムから参照しているライブラリ(ベンダ
ーが提供した)内の関数のパラメタの内容を表示する
際、以下の方法が知られている。 [アプリケーションプログラムへのデバッグ情報出力の
機能付加手順] 手順2−1:関数のパラメタを表示するロジックをアプ
リケーションプログラム内でその関数をコールするとこ
ろに付加する。 手順2−2:ソースプログラムを再コンパイル処理後、
再リンクを行い実行モジュールを作成する。Further, as a conventional example [2], when the contents of the parameters of the function in the library (provided by the vendor) referenced by the application program are displayed when the application program is debugged, The method is known. [Procedure for adding debug information output function to application program] Step 2-1: Add the logic for displaying the function parameter to the place where the function is called in the application program. Step 2-2: After recompiling the source program,
Relink and create an execution module.
【0004】[0004]
【発明が解決しようとする課題】しかしながら、従来例
[1]、[2]では、どちらも元のソースプログラムを
変更しなければならないという問題がある。ソースプロ
グラム内で言語によっては提供されている条件コンパイ
ル機能を用いれば、ソースプログラムは一種類で処理す
ることは可能であるが、ソースプログラムが見にくくな
り、保守を行う上で好ましくない。また、条件コンパイ
ル機能を用いなければ、複数のソースプログラムが必要
となる。また、機能を付加するために元のソースプログ
ラムを直接変更しているので、アプリケーションプログ
ラムを作成するためには再コンパイル、再リンクが必要
となる。上記の問題は、従来技術を用いた言語処理装置
において、多重定義を許さない言語仕様とシンボル参照
と多重定義されたシンボル定義を結びつける規則と前方
参照、後方参照等を行うような参照規則で多重定義され
たシンボル定義の中から1つのシンボル定義を選択する
機能が無いことに起因する。However, both the conventional examples [1] and [2] have a problem that the original source program must be changed. If the conditional compilation function provided depending on the language is used in the source program, the source program can be processed by one type, but the source program becomes difficult to see and is not preferable for maintenance. Moreover, if the conditional compilation function is not used, a plurality of source programs are required. Further, since the original source program is directly modified to add the function, recompilation and relinking are required to create the application program. The above-mentioned problem is caused in the language processor using the conventional technique by using the language specification that does not allow overloading, the rule for connecting the symbol reference and the overloaded symbol definition, and the reference rule for performing the forward reference, the backward reference, etc. This is because there is no function to select one symbol definition from the defined symbol definitions.
【0005】本発明は以上の事情を考慮してなされたも
ので、従来例[1]、[2]で述べたライブラリ内の関
数の再定義を行う際に、名前を変えずに行う多重定義
と、多重定義された名前から1つを選択するためのシン
ボルの後方参照機能を言語処理装置に組み込むことでア
プリケーションプログラムの開発と保守を容易にするシ
ンボル後方参照指定機能付き言語処理装置を提供するも
のである。The present invention has been made in consideration of the above circumstances. When redefining the functions in the library described in the conventional examples [1] and [2], the multiple definition is performed without changing the name. And a symbol processing device with a symbol backward reference designating function that facilitates development and maintenance of an application program by incorporating a symbol backward reference function for selecting one from overloaded names in the language processing device. It is a thing.
【0006】[0006]
【課題を解決するための手段】上記の目的を達成するた
めに、本発明が講じた技術的手段は、次の通りである。
即ち、本発明は、入力されたソースプログラムから実行
モジュールを作成するための分割コンパイル機能を有す
る言語処理装置であって、予約語、関数名等のシンボル
を含む構文を有するソースプログラムを入力とし、シン
ボルの結合を行うことが可能な言語処理プログラム規則
の前処理制御行に基づき後方参照するためのシンボルを
ソースプログラムの先頭に付加し、そのシンボルをシン
ボルテーブルに登録し、ソースプログラムを前処理する
前処理部と、前処理後のソースプログラム内の構文のシ
ンボルを認識し、関数名か登録された後方参照のシンボ
ルかを解析し、後方参照のシンボルであればシンボルテ
ーブルに多重許可フラグをセットし、関数名のコード発
生とオブジェクトプログラムの作成をする翻訳部と、作
成されたオブジェクトプログラム内のシンボル参照及び
シンボル定義をシンボルテーブルの多重許可フラグに基
づいて後方参照のシンボルかを明確にし、後方のソース
プログラムで定義されたシンボルを参照して実行モジュ
ールを作成するリンケージ部とを備え、ソースプログラ
ムを含むファイル間でのシンボル参照とシンボル定義を
行う際に、そのシンボル参照を含むファイルとそのファ
イルより前にあるソースプログラムでシンボル定義され
ていたとしても、そのシンボルへの参照は行わず、後方
のファイル内のソースプログラムで定義されたシンボル
を参照して実行モジュールを作成することを特徴とする
シンボル後方参照指定機能付き言語処理装置である。The technical means taken by the present invention to achieve the above object are as follows.
That is, the present invention is a language processing device having a split compiling function for creating an execution module from an input source program, and inputs a source program having a syntax including symbols such as reserved words and function names, Preprocessing of the source program Adds a symbol for backward reference to the beginning of the source program based on the preprocessing control line of the language processing program rule that can combine symbols, registers the symbol in the symbol table, and preprocesses the source program. Recognize the preprocessing part and the symbol of the syntax in the source program after preprocessing, analyze the function name or the registered backward reference symbol, and if it is a backward reference symbol, set the multiple permission flag in the symbol table. The function that generates the code for the function name and creates the object program, and the created object. The symbol reference and symbol definition in the target program based on the multiple permission flag of the symbol table, and the linkage part that creates the execution module by referring to the symbol defined in the source program in the rear. In addition, when a symbol reference and symbol definition are performed between files that include source programs, even if a symbol is defined in the file that includes the symbol reference and the source program that precedes that file, the reference to the symbol is A language processing apparatus with a symbol backward reference designating function, characterized in that an execution module is created by referring to a symbol defined by a source program in a backward file without performing it.
【0007】前記言語処理プログラムは、ANSI規格
のC言語で構成されることが好ましい。It is preferable that the language processing program is composed of ANSI standard C language.
【0008】前記前処理部が前処理するためにソースプ
ログラムの先頭に付加する前処理制御行は、C言語の処
理系依存の前処理仕様を記述する#pragmaである
ことが好ましい。The preprocessing control line added to the head of the source program for preprocessing by the preprocessing unit is preferably #pragma which describes a preprocessing specification depending on the processing system of C language.
【0009】前記翻訳部は、前処理後のソースプログラ
ム内の予約語、関数名等のシンボルを認識する語彙解析
部と、シンボルで構成される構文がC言語の仕様を満た
しているかを解析する構文解析部と、解析された構文に
対するコード発生、シンボルテーブルの作成、及びオブ
ジェクトプログラムを作成するコード発生部とから構成
されることが好ましい。The translation unit analyzes a vocabulary analysis unit that recognizes symbols such as reserved words and function names in the preprocessed source program, and analyzes whether the syntax composed of the symbols satisfies the C language specifications. It is preferably composed of a syntax analysis unit and a code generation unit for generating a code for the analyzed syntax, creating a symbol table, and creating an object program.
【0010】なお、本発明において、シンボルの後方参
照とは、ソースプログラムを含むファイル間でのシンボ
ルの参照規則において、左から右に並べられたファイル
間で右への方向を後方とした場合の参照で、ソースプロ
グラム内にシンボル参照があった時点で、そのシンボル
がその参照を含むファイルとそのファイルより前にある
ファイル内のソースプログラム内ですでに定義されてい
たとしても、そのシンボルへの参照は行わず、その参照
を含むファイルより後に指定されたファイル内のソース
プログラムで定義されたシンボルへの参照を選択するこ
とをいい、後方参照したシンボルについては多重定義が
可能となる。In the present invention, the backward reference of a symbol refers to a case where the direction from the left to the right of the files arranged from left to right is backward in the symbol reference rule between files including source programs. When a reference encounters a symbol reference in the source program, the reference to the symbol, even if it is already defined in the source program in the file containing the reference and in the file preceding it. No reference is made, but a reference to a symbol defined in the source program in a file specified after the file containing the reference is selected, and the backward-referenced symbol can be overloaded.
【0011】[0011]
【作用】本発明によれば、ソースプログラムを入力する
と、前処理部にて、シンボルの結合を行うことが可能な
言語処理プログラム規則の前処理制御行に基づき後方参
照するためにソースプログラムの先頭に付加されたシン
ボルをシンボルテーブルに登録し、ソースプログラムを
前処理する。次に、翻訳部にて、前処理後のソースプロ
グラム内の構文のシンボルを認識し、登録された後方参
照のシンボルであるか解析し、後方参照のシンボルであ
ればシンボルテーブルに多重許可フラグをセットし、オ
ブジェクトプログラムを作成する。更に、リンケージ部
にて、作成されたオブジェクトプログラム内のシンボル
参照及びシンボル定義をシンボルテーブルの多重許可フ
ラグに基づいて後方参照のシンボルかを明確にし、後方
のソースプログラムで定義されたシンボルを参照するよ
うに実行モジュールを作成する。従って、前処理部と翻
訳部とリンケージ部から構成される言語処理装置は、ソ
ースプログラムを含むファイル間でのシンボル参照とシ
ンボル定義を行う際に、そのシンボル参照を含むファイ
ルとそのファイルより前にあるソースプログラムでシン
ボル定義されていたとしても、そのシンボルへの参照は
行わず、後方のファイル内のソースプログラムで定義さ
れたシンボルを参照して実行モジュールを作成すること
ができる。According to the present invention, when the source program is input, the head of the source program is backreferenced based on the preprocessing control line of the language processing program rule capable of combining symbols in the preprocessing unit. The symbol added to the is registered in the symbol table, and the source program is preprocessed. Next, the translation unit recognizes the syntax symbol in the preprocessed source program, analyzes whether it is a registered backward reference symbol, and if it is a backward reference symbol, sets the multiple permission flag in the symbol table. Set and create an object program. Further, in the linkage section, it is clarified whether the symbol reference and symbol definition in the created object program are backward-referenced symbols based on the multiple permission flag of the symbol table, and the symbols defined in the backward source program are referred to. Create an execution module as follows. Therefore, the language processing device composed of the preprocessing unit, the translation unit, and the linkage unit performs the symbol reference and the symbol definition between the files including the source program, and the file including the symbol reference and the file before the file. Even if a symbol is defined in a certain source program, the symbol is not referred to, and the execution module can be created by referring to the symbol defined in the source program in the file at the back.
【0012】前記言語処理プログラムは、ANSI規格
のC言語で構成されているので、C言語プログラムに基
づいて言語処理を行うことができる。Since the language processing program is composed of ANSI standard C language, it is possible to perform language processing based on the C language program.
【0013】前記前処理部が前処理するためにソースプ
ログラムの先頭に付加する前処理制御行は、C言語の処
理系依存の前処理仕様を記述する#pragmaであ
り、この#pragmaに後方参照のシンボルを付加す
ることができる。The preprocessing control line added to the head of the source program for preprocessing by the preprocessing unit is #pragma which describes the preprocessing specifications depending on the processing system of the C language, and a backward reference is made to this #pragma. Symbol can be added.
【0014】前記翻訳部は、前処理後のソースプログラ
ム内の予約語、関数名等のシンボルを認識する語彙解析
部と、シンボルで構成される構文がC言語の仕様を満た
しているかを解析する構文解析部と、解析された構文に
対するコード発生、シンボルテーブルの作成、及びオブ
ジェクトプログラムを作成するコード発生部とから構成
されているので、登録された後方参照のシンボルである
か解析し、後方参照のシンボルであればシンボルテーブ
ルに多重許可フラグをセットし、オブジェクトプログラ
ムの作成をすることができる。The translation unit analyzes a vocabulary analysis unit that recognizes symbols such as reserved words and function names in the preprocessed source program, and analyzes whether the syntax composed of symbols satisfies the C language specifications. It consists of a syntax analysis part, a code generation part for the parsed syntax, a symbol table creation, and a code generation part to create an object program. If the symbol is, the multiple permission flag can be set in the symbol table and the object program can be created.
【0015】[0015]
【実施例】以下、図に示す実施例に基づいて本発明を詳
述する。なお、これによってこの発明は限定されるもの
ではない。また、本発明は、主として、C言語で言語処
理する言語処理装置に好適であり、各構成要素は本発明
のシンボルの後方参照指定を可能にする以外に、通常の
言語処理装置の機能を備えているものとして説明する。The present invention will be described in detail below based on the embodiments shown in the drawings. The present invention is not limited to this. Further, the present invention is mainly suitable for a language processing device that performs language processing in C language, and each component has a function of an ordinary language processing device in addition to enabling the backward reference designation of the symbol of the present invention. Will be explained.
【0016】図1は本発明の言語処理装置の基本構成を
示すブロック図である。同図において、1は言語処理装
置本体であり、言語処理を実行するためのCPU、RO
M、RAM、I/Oポートからなるマイクロコンピュー
タが用いられる。2はハードディスク装置であり、言語
処理を実行するための各種プログラム及び作成されたプ
ログラムや各種データを格納する記憶装置である。3は
コンソールであり、各種データの入力と各種プログラム
の作成及び保守を行うために入力装置及び表示装置を備
えたパソコン、端末機等が用いられる。4はプリンタで
あり、作成したプログラムリスト及び各種データを出力
するプリンタとして、ドットマトリックスプリンタ、イ
ンクジェットプリンタ、レーザプリンタ等が用いられ
る。FIG. 1 is a block diagram showing the basic configuration of the language processing apparatus of the present invention. In the figure, reference numeral 1 is a main body of a language processing apparatus, which is a CPU for executing language processing, and an RO.
A microcomputer including M, RAM and I / O ports is used. Reference numeral 2 denotes a hard disk device, which is a storage device for storing various programs for executing language processing and created programs and various data. Reference numeral 3 denotes a console, which is used as a personal computer, a terminal or the like having an input device and a display device for inputting various data and creating and maintaining various programs. Reference numeral 4 denotes a printer, and a dot matrix printer, an inkjet printer, a laser printer or the like is used as a printer for outputting the created program list and various data.
【0017】図2は本発明の言語処理装置に適用するソ
ースプログラムの実施例を示す説明図である。図2−1
において、ANSI(米国国内規格協会)に基づく“C
言語”を処理する言語処理システムに本発明の機能を適
用した実施例を示す。ANSIの“C言語”のプログラ
ム仕様には、前処理(プリプロセッサ)の指示を与える
制御文字“#”で始まる行があり、その中で「#pra
gma」という処理系依存の前処理仕様を記述する部分
に本発明の機能を付加することで実施する。FIG. 2 is an explanatory diagram showing an embodiment of a source program applied to the language processing apparatus of the present invention. Figure 2-1
"C based on ANSI (American National Standards Institute)"
An example in which the function of the present invention is applied to a language processing system for processing a "language" is shown. In the ANSI "C language" program specification, a line starting with a control character "#" which gives a preprocessing (preprocessor) instruction. There is a “#pra
This is implemented by adding the function of the present invention to the part that describes the processing-system dependent preprocessing specification "gma".
【0018】具体的には、図2−1で示す記述“#pr
agma backwards”をソースプログラムの
先頭に入れることで本発明の機能を言語処理装置に適用
する。即ち、キーワード“backwards”より後
に記述された関数名の列は多重定義を許し、かつ、図2
−1の記述をもつソースプログラム内からの同関数名の
参照は、その参照を含むファイルより後方に並べられた
ファイル内のソースプログラム上で定義された関数と結
合する。Specifically, the description "#pr" shown in FIG.
The function of the present invention is applied to the language processing device by putting "agma backwords" at the beginning of the source program. That is, the sequence of function names described after the keyword "backwards" allows overloading, and FIG.
A reference of the same function name from within a source program having a description of -1 is combined with a function defined on the source program in a file arranged after the file containing the reference.
【0019】図2−2、図2−3、図2−4は実際のソ
ースプログラムの例を示す。この例は、アプリケーショ
ンプログラムがソースプログラム[a.c](図2−
2)と、[ライブラリ](図2−3)内の関数lib
func1とlib func2から成り、これらのラ
イブラリ関数に機能を付加する場合に本発明を実施した
場合を示している。機能を付加する関数を含むファイル
[filter.c](図2−4)は後方参照指定され
た関数がlib func1,lib func2でそ
れらの関数が再定義され、追加のロジックを記述した後
で再び同関数を呼び出しているが、この関数の参照は、
本来、ANSI“C”の仕様では先に再定義した自分自
身の関数に結合(再帰呼出し)されるが、本実施例で
は、後方参照指定されているために、このファイルの後
方に並べられたファイルに含むプログラム内で定義され
た関数名と結合され、ここでは、ライブラリ内で定義さ
れているlib func1とlib func2に結
合される。2-2, 2-3, and 2-4 are the actual software.
An example of the source program is shown below. This example is an application
Source program [a. c] (Fig. 2-
2) and the function lib in the [library] (Fig. 2-3)
func1 and lib It consists of func2 and these
The present invention is implemented when a function is added to the library function.
The case is shown. File containing functions that add functionality
[Filter. c] (FIGS. 2-4) is designated as a backward reference.
Function is lib func1, lib func2
After these functions are redefined and additional logic is written
The function is called again with, but the reference of this function is
Originally, in the ANSI "C" specification,
Although it is combined (recursive call) with the function of its own, in this embodiment
After this file because it is specified with a back reference
Defined within the program that is included in the ordered file
Combined with the function name defined here in the library
A lib func1 and lib tied to func2
Are combined.
【0020】[a.c]内のmain( )の中でli
b func1,lib func2を呼び出している
が、これは[filter.c]内で定義されているl
ib func1,lib func2に結合され、その
中から呼び出しているlib func1,lib f
unc2はライブラリ内で定義されているlib fun
c1とlib func2にそれぞれ結合される。これ
らの一連の呼出し関数はもともと[a.c]とライブラ
リの間の呼び出し関係の間に[filter.c]が組
込まれた状態での呼び出し関数に変更され、しかも
[a.c]及び[ライブラリ]内のソースプログラム、
あるいはオブジェクトプログラムの変更は一切行わなく
てよいことも示している。[A. in main () in c]
b func1, lib calling func2
However, this is [filter. l defined in [c]
ib func1, lib bound to func2,
Lib calling from inside func1, lib f
unc2 is a lib defined in the library fun
c1 and lib respectively bound to func2. this
These series of calling functions were originally [a. c] and Libra
During the calling relationship between the files [filter. c] is a group
Changed to a calling function in the embedded state, and
[A. c] and source programs in [library],
Or without changing the object program at all
It also shows that it is okay.
【0021】図3は本発明の言語処理装置本体の構成と
各プログラムの関係を示す説明図である。図3におい
て、11は前処理部であり、ソースプログラム内の制御
行(#で始まる行)の処理を行なう。前処理部11はソ
ースプログラム21を入力とし、制御行がソースプログ
ラム21から削除された前処理後のソースプログラム2
2を出力する。12は翻訳部であり、前処理後のソース
プログラム22を入力とし、オブジェクトプログラム2
3を出力する。FIG. 3 is an explanatory view showing the structure of the language processor main body of the present invention and the relationship between the programs. In FIG. 3, reference numeral 11 denotes a preprocessing unit that processes a control line (line starting with #) in the source program. The preprocessor 11 receives the source program 21 as input, and the preprocessed source program 2 in which the control line is deleted from the source program 21.
2 is output. Reference numeral 12 is a translation unit, which receives the preprocessed source program 22 as an input and
3 is output.
【0022】翻訳部12はソースプログラム中の予約
語、関数名等のシンボルを認識する語彙解析部12A
と、シンボルで構成される構文が言語使用を満たしてい
るかを認識する構文解析部12Bと、受理された構文に
対するコード発生、シンボルテーブルの作成及びリロケ
ーションセクションの作成等を行いオブジェクトプログ
ラム23を出力するコード発生部12Cとから構成され
る。The translation unit 12 is a vocabulary analysis unit 12A that recognizes symbols such as reserved words and function names in the source program.
And a syntax analysis unit 12B that recognizes whether the syntax composed of symbols satisfies the language usage, code generation for the received syntax, creation of a symbol table, creation of a relocation section, etc., and output the object program 23. It is composed of a code generator 12C.
【0023】また、13はリンケージ部であり、翻訳部
12で作成されたオブジェクトプログラム23及びその
他のオブジェクトプログラム24及びオブジェクトプロ
グラムの集合体であるライブラリ25を結合し、シンボ
ルの参照、定義を明確にし、実行モジュール内でのアド
レスを決定し、それらを元にして、リロケーションテー
ブル内のリロケーションエントリーの情報からリロケー
ション処理を行い実行モジュール26を作成する。Reference numeral 13 is a linkage unit, which links the object program 23 created by the translation unit 12, the other object programs 24, and the library 25, which is an aggregate of the object programs, to clarify the reference and definition of symbols. , An address in the execution module is determined, and based on them, the relocation processing is performed from the information of the relocation entry in the relocation table to create the execution module 26.
【0024】図4はオブジェクトプログラムフォーマッ
トの構成を示す説明図である。図4に示すように、オブ
ジェクトプログラム23はオブジェクトプログラムフォ
ーマットからなり、実行モジュール26は実行モジュー
ルフォーマットからなる。オブジェクトプログラムフォ
ーマットは各セクション等のファイル内の先頭からのオ
フセット及びサイズ情報等を有するヘッダ部41、発生
コードの命令部分からなるテキストセクション42と、
発生コードのデータ部分からなるデータセクション4
3、各セクションのリロケーション情報をもつリロケー
ションセクション44、各セクションのシンボル情報を
もつシンボルテーブル45及び実際のシンボルの文字列
をもつ文字列テーブル46から構成される。FIG. 4 is an explanatory diagram showing the structure of the object program format. As shown in FIG. 4, the object program 23 has an object program format, and the execution module 26 has an execution module format. The object program format includes a header portion 41 having offset and size information from the beginning of the file such as each section, a text section 42 including an instruction portion of a generated code,
Data section 4 consisting of the data part of the generated code
3, a relocation section 44 having relocation information of each section, a symbol table 45 having symbol information of each section, and a character string table 46 having character strings of actual symbols.
【0025】また、リロケーションセクション44はリ
ロケーションエントリーから構成され、リロケーション
部が各セクションの先頭からのどの位置にあるかを示す
リロケーションオフセット44a、シンボルに対する情
報がシンボルテーブル内の何番目のシンボルエントリー
かを示すシンボルテーブルインデックス44b、リロケ
ーションの対象となる部分の大きさを表わすリロケーシ
ョンサイズ44c、及びリロケーションのタイプ(絶対
アドレスか相対アドレスか等)を表わすリロケーション
タイプ44dから構成されている。本発明では、このリ
ロケーションタイプ44dにbackwardsタイプ
を追加している。The relocation section 44 is composed of relocation entries. The relocation offset 44a indicates where the relocation section is located from the beginning of each section, and the number of symbol entry in the symbol table where the information for the symbol is. A symbol table index 44b shown, a relocation size 44c representing the size of the portion to be relocated, and a relocation type 44d representing the type of relocation (absolute address or relative address, etc.). In the present invention, a backwards type is added to this relocation type 44d.
【0026】また、シンボルテーブル45はシンボルテ
ーブルエントリーで構成され、シンボル名を表わす文字
列を含む文字列テーブルへのポインタを示す文字列テー
ブルへのポインタ45a、そのシンボルの実際のアドレ
スがセットされるアドレス45b、そのシンボルがデー
タを表わすならそのデータサイズを示すサイズ45c、
ローカルシンボルかグローバルシンボルか等を示すフラ
グ45d、及びシンボルが定義されているセクションを
示すセクション45eから構成されている。本発明で
は、このフラグ45dに新しく、多重定義許可フラグが
追加されている。The symbol table 45 is composed of symbol table entries, and a pointer 45a to a character string table indicating a pointer to a character string table containing a character string representing a symbol name and an actual address of the symbol are set. Address 45b, size 45c indicating the data size if the symbol represents data,
It is composed of a flag 45d indicating whether it is a local symbol or a global symbol, and a section 45e indicating a section in which the symbol is defined. In the present invention, a new overload permission flag is newly added to this flag 45d.
【0027】また、図5は実行モジュールフォーマット
の構成を示す説明図である。図5に示すように、実行モ
ジュールフォーマットは各セグメント等のファイル内で
の先頭からのオフセット及びサイズ情報等を有するヘッ
ダ部51、命令コードからなるテキストセグメント5
2、データコードからなるデータセグメント53、シン
ボルエントリーからなるシンボルテーブル54、及びシ
ンボルに対するシンボルの文字列を含む文字列テーブル
55から構成されている。FIG. 5 is an explanatory diagram showing the structure of the execution module format. As shown in FIG. 5, the execution module format is a text segment 5 consisting of a header portion 51 having an offset from the beginning in the file of each segment and the like and size information, and an instruction code
2, a data segment 53 including a data code, a symbol table 54 including a symbol entry, and a character string table 55 including a character string of a symbol for a symbol.
【0028】上記の構成により、言語処理装置本体1内
の前処理部11、翻訳部12、リンケージ部13への機
能をそれぞれ付加することで本発明を実現している。こ
れらの実施例を図6、図7、図8に示すフローチャート
に従って説明する。 [前処理部への機能付加]前処理部内の#pragma
のキーワード“backwards”に対する処理を認
識するロジックを付加する。 記述:#pragma backwards b1,b
2,…,bn b1,……,bnは後方参照シンボル(以下バックワー
ドシンボルと呼ぶ)を示す。ここでは,bacward
sのキーワードを認識した後でb1,……,bnをバッ
クワードシンボルを登録するためのバックワードシンボ
ルテーブルに登録する。With the above configuration, the present invention is realized by adding functions to the preprocessing unit 11, the translation unit 12, and the linkage unit 13 in the language processing apparatus main body 1, respectively. These embodiments will be described with reference to the flowcharts shown in FIGS. 6, 7, and 8. [Adding functions to the preprocessing unit] #pragma in the preprocessing unit
A logic for recognizing the process for the keyword "backwards" is added. Description: #pragma backwards b1, b
2, ..., Bn b1, ..., Bn represent backward reference symbols (hereinafter referred to as backward symbols). Here, bacward
After recognizing the keyword s, b1, ..., Bn are registered in the backward symbol table for registering backward symbols.
【0029】図6は前処理部の処理内容を示すフローチ
ャートである。図6において、 ステップ601:ソースプログラム内の“pragm
a”の次のシンボルを読み込む処理を行う。 ステップ602:読み込んだシンボルが“backwa
rds”がどうか調べる。NOの場合は“backwa
rds”以外の他のpragma処理を行い、YESの
場合は“backwards”の処理であることを認識
する。 ステップ603:次のシンボルの読み込み処理をする。 ステップ604:シンボルの列が終わりかどうかチェッ
クし、終わりでなければ、ステップ605に進む。 ステップ605:読み込んだシンボルをバックワードシ
ンボルテーブルへ登録する。ステップ603からステッ
プ605の処理を行の終わりを認識するまで繰り返す。FIG. 6 is a flow chart showing the processing contents of the preprocessing section. In FIG. 6, Step 601: “Pragm” in the source program
The process of reading the symbol next to “a” is performed. Step 602: The read symbol is “backwa”.
Check if "rds". If NO, then "backwa"
Performs a pragma process other than "rds", and if YES, recognizes that it is a "backwards" process. Step 603: Reads the next symbol. Step 604: Checks whether the symbol string is the end. If it is not the end, the process proceeds to step 605. Step 605: The read symbol is registered in the backward symbol table, and the processes of steps 603 to 605 are repeated until the end of the line is recognized.
【0030】[翻訳部への機能付加]翻訳部12は語彙
解析部12A、構文解析部12B、コード発生部12C
から構成されている。本発明では上記の中のコード発生
部12Cに変更を加えるが、その中の関数コールに対す
る命令コード発生処理の部分が対象となる。[Addition of Function to Translation Unit] The translation unit 12 includes a vocabulary analysis unit 12A, a syntax analysis unit 12B, and a code generation unit 12C.
It consists of In the present invention, the code generator 12C is modified, but the part of the instruction code generation process for the function call is targeted.
【0031】図7は翻訳部の処理内容を示すフローチャ
ートである。図7において、 ステップ701:関数コール名が前処理部11で作成さ
れたバックワードシンボルテーブルに登録されているシ
ンボルかチェックする。 ステップ702:登録されているシンボルであればシン
ボルテーブルエントリー内のフラグ45dに多重定義許
可フラグをセットする。 ステップ703:リロケーションエントリー内のリロケ
ーションタイプ44dにbackwardsタイプ(b
ackwards属性)をセットする。 ステップ704:他の情報と共にセットされたシンボル
エントリーをオブジェクトファイル内のシンボルテーブ
ル45に出力する。 ステップ705:他の情報と共にセットされたリロケー
ションエントリーをオブジェクトファイル内のリロケー
ションセクション44に出力する。 ステップ706:関数コールのための発生コードをオブ
ジェクトファイル内のテキストセクション42に出力す
る。FIG. 7 is a flowchart showing the processing contents of the translation unit. In FIG. 7, step 701: Check whether the function call name is a symbol registered in the backward symbol table created by the preprocessing unit 11. Step 702: If it is a registered symbol, the overload definition flag is set in the flag 45d in the symbol table entry. Step 703: The relocation type 44d in the relocation entry is set to the backwards type (b
ackwords attribute). Step 704: The symbol entry set together with other information is output to the symbol table 45 in the object file. Step 705: Output the relocation entry set with other information to the relocation section 44 in the object file. Step 706: Output the generated code for the function call to the text section 42 in the object file.
【0032】[リンケージ部処理への機能付加]リンケ
ージ部13の処理は、入力となる各オブジェクトファイ
ル23、24及びライブラリ25内の各オブジェクトフ
ァイルのシンボル間の参照、定義関数を明らかにし、テ
キストセクション42及びデータセクション43内のリ
ロケーション部にリロケーションセクション44内のリ
ロケーションエントリーの情報をもとに実際のアドレス
を決定し、リロケーション処理を行い、実行モジュール
26を作成する処理を行う。リロケーション処理とは発
生コード内のアドレスを指定する部分で未だ実際の実行
時のアドレスが決定されていない部分(リロケーション
部と呼ぶ)に実際のアドレスを決定し、そのアドレスを
リロケーション部に設定する処理のことをいう。[Addition of Function to Linkage Processing] The processing of the linkage processing 13 clarifies the reference between symbols of the object files 23 and 24 to be input and the object files in the library 25, the definition function, and the text section. The actual address is determined based on the information of the relocation entry in the relocation section 44 in the relocation section in 42 and the data section 43, the relocation process is performed, and the process of creating the execution module 26 is performed. Relocation processing is the processing that determines the actual address in the part that specifies the address in the generated code and the actual execution address has not yet been determined (called the relocation part), and sets that address in the relocation part. I mean.
【0033】図8はリンケージ部の処理内容1を示す概
略フローチャートである。図8において、 ステップ801:オブジェクトファイル23、24、2
5があるか否かチェックする。 ステップ802:オブジェクトファイル23、24、2
5がある間、各オブジェクトファイルを処理する。 本発明のリンケージ部処理への機能付加は、このリンケ
ージ部13の各オブジェクトファイルの処理内で行われ
る(図9のフローチャート参照)。処理すべきオブジェ
クトファイルがなくなれば、ステップ803の処理に移
る。FIG. 8 is a schematic flowchart showing the processing content 1 of the linkage unit. In FIG. 8, step 801: object files 23, 24, 2
Check if there is 5. Step 802: Object files 23, 24, 2
While there is 5, process each object file. The addition of functions to the linkage unit processing of the present invention is performed within the processing of each object file of the linkage unit 13 (see the flowchart of FIG. 9). When there is no object file to be processed, the process proceeds to step 803.
【0034】ステップ803:ステップ802内で作成
されたリロケーションリスト内のリロケーションエント
リー情報を元にリロケーション処理を行う。すべてのリ
ロケーション処理を終了する。 ステップ804:すべてのリロケーション処理が終了す
れば、リロケーション処理された各オブジェクトのテキ
ストセクションを順番に実行モジュール内のテキストセ
グメント52に出力する。 ステップ805:同様に、データセクションについても
順番に実行モジュール内のデータセグメント53に出力
する。 ステップ806:各オブジェクトのシンボルテーブルと
文字列テーブルを実行モジュール内のシンボルテーブル
54、文字列テーブル55へ出力を行う。 ステップ807:実行モジュールのヘッダ51を作成
し、出力する。Step 803: Relocation processing is performed based on the relocation entry information in the relocation list created in step 802. End all relocation processing. Step 804: When all the relocation processing is completed, the text section of each relocated object is sequentially output to the text segment 52 in the execution module. Step 805: Similarly, the data sections are sequentially output to the data segment 53 in the execution module. Step 806: The symbol table and the character string table of each object are output to the symbol table 54 and the character string table 55 in the execution module. Step 807: Create and output the header 51 of the execution module.
【0035】図9はリンケージ部の処理内容2を示す詳
細フローチャートである。図9において、 ステップ901:各オブジェクトファイルのリロケーシ
ョンセクション44からリロケーションエントリーを読
み込む。 ステップ902:読み込みOKの場合はステップ903
の処理へ行き、読み込みがOKでない(リロケーション
エントリーがない)場合はシンボルテーブルへの処理で
あるステップ909へ移る。 ステップ903:リロケーションエントリー内のリロケ
ーションタイプ44dが“backwards”タイプ
か調べ“backwards”タイプであればステップ
904へ移り、そうでなければステップ906へ移る。 ステップ904:リロケーションエントリー内のシンボ
ルテーブルインデックス44bが示すシンボルテーブル
内のエントリーの中で定義されているシンボルの文字列
の先頭を示すテーブルへのポインタ45aからシンボル
の文字列を認識し、このシンボル名でリンケージ処理部
内のバックワードシンボルテーブルに登録する。FIG. 9 is a detailed flowchart showing the processing content 2 of the linkage unit. In FIG. 9, Step 901: Read the relocation entry from the relocation section 44 of each object file. Step 902: Step 903 if reading is OK
If the reading is not OK (there is no relocation entry), the process proceeds to step 909, which is processing for the symbol table. Step 903: Check whether the relocation type 44d in the relocation entry is a "backwards" type, and if it is a "backwards" type, move to step 904, otherwise move to step 906. Step 904: Recognize the character string of the symbol from the pointer 45a to the table indicating the beginning of the character string of the symbol defined in the entry in the symbol table indicated by the symbol table index 44b in the relocation entry, and recognize this symbol name. Is registered in the backward symbol table in the linkage processing section.
【0036】ステップ905:このリロケーションエン
トリーをリンケージ処理部内のバックワードリロケーシ
ョンリストに登録し、次のリロケーションエントリー処
理のステップ901へ戻る。 ステップ906:リロケーションのシンボルインデック
スより示されるシンボルがリンケージ処理部内のグロー
バルシンボルテーブルに登録されているかチェックす
る。 ステップ907:登録されていればリロケーション処理
を行ない、次のリロケーションエントリー処理のためス
テップ901へ戻る。 ステップ908:登録されていなければ、リロケーショ
ンエントリーをリロケーションリストに登録し、次のリ
ロケーションエントリー処理のステップ901へ戻る。Step 905: This relocation entry is registered in the backward relocation list in the linkage processing section, and the process returns to step 901 of the next relocation entry process. Step 906: Check whether the symbol indicated by the relocation symbol index is registered in the global symbol table in the linkage processing section. Step 907: If registered, relocation processing is performed, and the processing returns to step 901 for the next relocation entry processing. Step 908: If not registered, the relocation entry is registered in the relocation list, and the process returns to step 901 of the next relocation entry process.
【0037】次にステップ909以降の流れを説明す
る。 ステップ909:シンボルテーブル45からシンボルテ
ーブルエントリーを読み込む。 ステップ910:読み込みOKならステップ911へ移
り、読み込みOKでない(シンボルテーブルエントリー
がない)場合、リンケージ部13の各オブジェクトファ
イルの処理を終了する。 ステップ911:シンボルを示す文字列テーブルへのポ
インタ45aより、そのシンボルが多重定義かどうか
(グローバルシンボルテーブルにすでに登録されていれ
ば多重定義となる)を調べる。多重定義でなければ、ス
テップ915に移りグローバルシンボルテーブルへその
シンボルを登録し、次のシンボルテーブルエントリーの
処理のためステップ909に戻る。Next, the flow after step 909 will be described. Step 909: Read the symbol table entry from the symbol table 45. Step 910: If the reading is OK, the process proceeds to step 911. If the reading is not OK (there is no symbol table entry), the processing of each object file of the linkage unit 13 is ended. Step 911: It is checked from the pointer 45a to the character string table indicating the symbol whether the symbol is overloaded (if it is already registered in the global symbol table, it is overloaded). If it is not multiple definition, the process proceeds to step 915, the symbol is registered in the global symbol table, and the process returns to step 909 to process the next symbol table entry.
【0038】ステップ912:多重定義なら、次にその
シンボルかバックワードシンボルかどうか(バックワー
ドシンボルテーブルに既に登録されていればバックワー
ドシンボルである)を調べ、バックワードシンボルでな
ければ多重定義エラー処理(ステップ916)をする。
バックワードシンボルならステップ913へ処理を移
す。 ステップ913:そのバックワードシンボルに対するバ
ックワードリロケーションリスト(ステップ905で作
成)内のリロケーションのリロケーション処理を行う。
このステップで本発明の目的であるバックワードシンボ
ルの後方参照が実現される。Step 912: If it is an overload, then it is checked whether it is that symbol or a backward symbol (it is a backward symbol if it is already registered in the backward symbol table), and if it is not a backward symbol, an overload error occurs. Processing (step 916) is performed.
If it is a backward symbol, the process proceeds to step 913. Step 913: Perform relocation processing of the relocation in the backward relocation list (created at step 905) for the backward symbol.
In this step, the backward reference of backward symbols, which is the object of the present invention, is realized.
【0039】ステップ914:そのバックワードシンボ
ルをバックワードシンボルテーブル(ステップ904で
登録)から削除し、次のシンボルテーブルエントリーの
処理へ移る。 従って、本発明の目的であるバックワードシンボルの後
方参照が実現されることになる。Step 914: The backward symbol is deleted from the backward symbol table (registered at step 904), and the process proceeds to the next symbol table entry. Therefore, the backward reference of the backward symbol, which is the object of the present invention, is realized.
【0040】[0040]
【発明の効果】本発明によれば、上述した構成よりなる
から、次の効果を奏し得るのである。 1)システムで提供されているライブラリ内の関数への
機能付加が、ライブラリ内への関数を参照している元の
プログラムの変更をせずに行うことができ、保守も容易
になる。 2)ユーザが作成したライブラリの再定義が容易にでき
多重定義のエラーも出力されず、再定義を含むプログラ
ムを作成でき、簡単に機能付加ができるのでプロトタイ
プの作成も容易にできる。 3)システムで提供されたライブラリ内の関数に渡され
たパラメタの内容表示等のデバッグ情報の出力機能の付
加をライブラリ内の関数を参照する元のソースプログラ
ムもライブラリ内の関数も変更せずに付加することがで
きる。According to the present invention, since it has the above-mentioned structure, the following effects can be obtained. 1) The function can be added to the function in the library provided by the system without changing the original program that refers to the function in the library, and the maintenance becomes easy. 2) It is easy to redefine the library created by the user, no error of multiple definition is output, a program including redefinition can be created, and functions can be easily added, so that a prototype can be created easily. 3) Addition of debug information output function such as displaying the contents of parameters passed to the functions in the library provided by the system without changing the original source program that references the functions in the library or the functions in the library. Can be added.
【図1】本発明の言語処理装置の基本構成を示すブロッ
ク図である。FIG. 1 is a block diagram showing a basic configuration of a language processing device of the present invention.
【図2】本発明の言語処理装置に適用するソースプログ
ラムの実施例を示す説明図である。FIG. 2 is an explanatory diagram showing an example of a source program applied to the language processing device of the present invention.
【図3】本発明の言語処理装置本体の構成と各プログラ
ムの関係を示す説明図である。FIG. 3 is an explanatory diagram showing the relationship between the configuration of the language processing apparatus body of the present invention and each program.
【図4】オブジェクトプログラムフォーマットの構成を
示す説明図である。FIG. 4 is an explanatory diagram showing the structure of an object program format.
【図5】実行モジュールフォーマットの構成を示す説明
図である。FIG. 5 is an explanatory diagram showing a configuration of an execution module format.
【図6】前処理部の処理内容を示すフローチャートであ
る。FIG. 6 is a flowchart showing the processing contents of a preprocessing unit.
【図7】翻訳部の処理内容を示すフローチャートであ
る。FIG. 7 is a flowchart showing the processing contents of the translation unit.
【図8】リンケージ部の処理内容1を示す概略フローチ
ャートである。FIG. 8 is a schematic flowchart showing a processing content 1 of a linkage unit.
【図9】リンケージ部の処理内容2を示す詳細フローチ
ャートである。FIG. 9 is a detailed flowchart showing a processing content 2 of a linkage unit.
1 言語処理装置本体 2 ハードディスク装置 3 コンソール 4 プリンタ 11 前処理部 12 翻訳部 12A 語彙解析部 12B 構文解析部 12C コード発生部 13 リンケージ部 1 language processing device main body 2 hard disk device 3 console 4 printer 11 preprocessing unit 12 translation unit 12A vocabulary analysis unit 12B syntax analysis unit 12C code generation unit 13 linkage unit
Claims (4)
ジュールを作成するための分割コンパイル機能を有する
言語処理装置であって、 予約語、関数名等のシンボルを含む構文を有するソース
プログラムを入力とし、シンボルの結合を行うことが可
能な言語処理プログラム規則の前処理制御行に基づき後
方参照するためのシンボルをソースプログラムの先頭に
付加し、そのシンボルをシンボルテーブルに登録し、ソ
ースプログラムを前処理する前処理部と、 前処理後のソースプログラム内の構文のシンボルを認識
し、関数名か登録された後方参照のシンボルかを解析
し、後方参照のシンボルであればシンボルテーブルに多
重許可フラグをセットし、関数名のコード発生とオブジ
ェクトプログラムの作成をする翻訳部と、 作成されたオブジェクトプログラム内のシンボル参照及
びシンボル定義をシンボルテーブルの多重許可フラグに
基づいて後方参照のシンボルかを明確にし、後方のソー
スプログラムで定義されたシンボルを参照して実行モジ
ュールを作成するリンケージ部とを備え、 ソースプログラムを含むファイル間でのシンボル参照と
シンボル定義を行う際に、そのシンボル参照を含むファ
イルとそのファイルより前にあるソースプログラムでシ
ンボル定義されていたとしても、そのシンボルへの参照
は行わず、後方のファイル内のソースプログラムで定義
されたシンボルを参照して実行モジュール作成すること
を特徴とするシンボル後方参照指定機能付き言語処理装
置。1. A language processing device having a split compilation function for creating an execution module from an input source program, wherein a source program having a syntax including symbols such as reserved words and function names is input, Before preprocessing the source program, add a symbol for backward reference to the beginning of the source program based on the preprocessing control line of the language processing program rule that can combine the Recognize the processing unit and the symbol of the syntax in the preprocessed source program, analyze whether it is a function name or a registered backward reference symbol, and if it is a backward reference symbol, set the multiple permission flag in the symbol table. , A translation unit that generates code for function names and creates an object program, and the created object The symbol reference and symbol definition in the target program based on the multiple permission flag of the symbol table, and the linkage part that creates the execution module by referring to the symbol defined in the source program in the rear. In addition, when performing symbol reference and symbol definition between files containing source programs, even if a symbol is defined in the file containing the symbol reference and the source program before that file, the reference to the symbol is A language processing device with a symbol backward reference designating function, characterized in that an execution module is created by referencing a symbol defined by a source program in a backward file without performing.
格のC言語であることを特徴とする請求項1記載のシン
ボル後方参照指定機能付き言語処理装置。2. The language processing apparatus with a symbol backward reference designating function according to claim 1, wherein the language processing program is an ANSI standard C language.
プログラムの先頭に付加する前処理制御行は、C言語の
処理系依存の前処理仕様を記述する#pragmaであ
ることを特徴とする請求項1記載のシンボル後方参照指
定機能付き言語処理装置。3. The pre-processing control line added to the head of the source program for pre-processing by the pre-processing unit is #pragma which describes a pre-processing specification dependent on the processing language of C language. The language processing device with a symbol back reference designating function according to claim 1.
ラム内の予約語、関数名等のシンボルを認識する語彙解
析部と、シンボルで構成される構文がC言語の仕様を満
たしているかを解析する構文解析部と、解析された構文
に対するコード発生、シンボルテーブルの作成、及びオ
ブジェクトプログラムを作成するコード発生部とから構
成されることを特徴とする請求項1記載のシンボル後方
参照指定機能付き言語処理装置。4. The lexical analysis unit that recognizes symbols such as reserved words and function names in the preprocessed source program and whether the syntax composed of the symbols satisfies the C language specifications. The symbol back reference designating function according to claim 1, comprising a syntax analysis unit for analyzing, a code generation unit for the analyzed syntax, a symbol table generation unit, and a code generation unit for generating an object program. Language processor.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5185995A JPH0744396A (en) | 1993-07-28 | 1993-07-28 | Language processor with symbol backward reference designating function |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5185995A JPH0744396A (en) | 1993-07-28 | 1993-07-28 | Language processor with symbol backward reference designating function |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0744396A true JPH0744396A (en) | 1995-02-14 |
Family
ID=16180531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5185995A Pending JPH0744396A (en) | 1993-07-28 | 1993-07-28 | Language processor with symbol backward reference designating function |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0744396A (en) |
-
1993
- 1993-07-28 JP JP5185995A patent/JPH0744396A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Emmerik et al. | Using a decompiler for real-world source recovery | |
Kahn et al. | Metal: A formalism to specify formalisms | |
US7934205B2 (en) | Restructuring computer programs | |
JPH08202545A (en) | Object-oriented system and method for generation of target language code | |
EP0413486A2 (en) | Message processing system | |
JPH05257709A (en) | Parallelism discriminating method and parallelism supporting method using the same | |
US7509634B2 (en) | SIMD instruction sequence generating program, SIMD instruction sequence generating method and apparatus | |
JPH07105012A (en) | Compiling processing system for language processing program | |
US6647546B1 (en) | Avoiding gather and scatter when calling Fortran 77 code from Fortran 90 code | |
Balbaert et al. | Julia: High performance programming | |
US20030009744A1 (en) | Source code line counting system and method | |
US6802057B1 (en) | Automatic generation of fortran 90 interfaces to fortran 77 code | |
JP3196675B2 (en) | Language processing method | |
JPH0744396A (en) | Language processor with symbol backward reference designating function | |
Loidl | Gransim user’s guide | |
JP4055197B2 (en) | Device for analyzing procedures included in the program | |
JP2000207246A (en) | Debugging support device, method therefor and recording medium recorded with softwater for supporting debugging | |
JP3857842B2 (en) | Program analysis apparatus and recording medium | |
WO2024222455A1 (en) | Hardware acceleration instruction determination method and system, and electronic device and storage medium | |
JP2003050722A (en) | System and method for analyzing program | |
JP2977642B2 (en) | FORTRAN compilation processor | |
JP3003459B2 (en) | Program creation support device | |
Reiser | Bail: a Debugger for Sail | |
KR100277479B1 (en) | How to compile a separate fill | |
Vanoostende et al. | Retargetable code generation: Key issues for successful introduction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |