JPH07105014A - 言語処理システムのシンボル処理方式 - Google Patents

言語処理システムのシンボル処理方式

Info

Publication number
JPH07105014A
JPH07105014A JP24765593A JP24765593A JPH07105014A JP H07105014 A JPH07105014 A JP H07105014A JP 24765593 A JP24765593 A JP 24765593A JP 24765593 A JP24765593 A JP 24765593A JP H07105014 A JPH07105014 A JP H07105014A
Authority
JP
Japan
Prior art keywords
file
symbol
processing
definition
instruction
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
JP24765593A
Other languages
English (en)
Inventor
Harumi Mizuse
晴美 水瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP24765593A priority Critical patent/JPH07105014A/ja
Publication of JPH07105014A publication Critical patent/JPH07105014A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 (修正有) 【目的】分割された複数のモジュールで使用する共通の
シンボルの参照時、処理の高速化を図る。 【構成】プログラムのシンボルの定義文のみを格納する
シンボル定義ファイル102、命令文がファイル読み込
み命令であった場合に、ファイル名が特別の規則を有
し、シンボル処理結果ファイル110が存在すると判断
されたときは、シンボル定義ファイル102とシンボル
処理結果ファイル110の作成日付を比較する作成日付
比較手段107ソース・ファイル101に記述されたシ
ンボル定義分を一時的に格納処理するシンボル処理手段
108及びシンボル一時記憶手段109を少なくとも備
え、シンボル定義ファイル102に対応して、シンボル
処理結果ファイル110の作成日付の方が新しい場合に
は、シンボル定義ファイル102の代わりに、シンボル
処理結果ファイル110を入力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は言語処理システムのシン
ボル処理方式に関し、特にマイクロコンピュータのプロ
グラム言語により記述されたソース・プログラムを処理
する言語処理システムにおいて適用される言語処理シス
テムのシンボル処理方式に関する。
【0002】
【従来の技術】一般に、プログラミング言語により記述
されたソース・プログラムを、マイクロコンピュータに
おいて直接実行できるように機械語に変換するために用
いるプログラムを言語処理プログラムと云う。この言語
処理プログラムが運用される情報処理システムのブロッ
ク図が図9に示される。図9において、当該情報処理シ
ステムは、前記言語処理プログラムおよび前記ソース・
プログラムが収納され、また言語処理プログラムによる
処理結果を格納するための磁気ディスク等を含む補助記
憶装置906と、この補助記憶装置906からロードさ
れたソース・プログラムをコンパイル処理する中央処理
装置(以下、CPUと云う)901と、前記コンパイル
処理において使用される主記憶装置(以下、RAMと云
う)902と、CPU901の実行を制御するオペレー
ティング・システム(O.S)904と、このオペレー
ティング・システム904に対してコマンドを入力し、
或はまた処理結果を出力するためのキー入力手段として
機能するキーボード(K.B)903と、ディスプレイ
(CRT)905とを備えて構成される。
【0003】上記の情報処理システムを介して行われる
言語処理プログラムの実行は、キーボード903よりオ
ペレーティング・システム904に対してコマンドを入
力することにより開始される。まず、補助記憶装置90
6からRAM902に対して言語処理プログラム自身が
ロードされ、当該プログラムがCPU901により実行
される。この言語処理プログラムの実行に対応して、当
該プログラムの命令により、補助記憶装置906からソ
ース・プログラムがRAM902より読み出され、順次
機械語に変換されて出力される。出力された機械語はオ
ブジェクト・ファイルとして補助記憶装置906に格納
される。
【0004】一般に、前記ソース・プログラムは複数の
ソース・ファイルに分割されており(以下、分割された
複数のファイルを「モジュール」と云う)、これに対応
して、上記の言語処理プログラムにより、メモリの任意
の番地に対して再配置することのできる(リローケタブ
ル)機械語に変換されて出力される。このような変換方
式には、プログラムの修正が容易であるという利点があ
る。
【0005】この変換方式においては、図10に示され
るように、ソース・プログラム1001を、例えば機能
等により区分して複数のモジュール1、モジュール2お
よびモジュール3等に分割し、これらのモジュール1、
2および3を、ステップ1002において図9のキーボ
ード903等を介してそれぞれ個別に指定して、補助記
憶装置906内に、それぞれソース・モジュール・ファ
イル1003として格納する。言語処理プログラム実行
手段としての言語処理部1004においては、これらの
ソース・モジュール・ファイルを個別にコンパイルし
て、機械語のオブジェクト・プログラムをリロケータブ
ル・オブジェクト・ファイル1005の形式で一旦出力
する。この場合、言語処理部1004においては、それ
ぞれ各ソース・モジュール・ファイル1003を独立に
機械語に変換するために、出力されるリロケータブル・
オブジェクト・ファィル1005の機械語プログラムの
各命令に対して割当てられているメモリ番地は、それぞ
れモジュール単位の相対番地として指定されている。こ
のリロケータブル・オブジェクト・ファイル1005
を、マイクロコンピュータにおいて実行できる形式にす
るためには、前記モジュール単位の相対番地を、リンカ
1006により、当該マイクロコンピュータの絶対番地
に対応する番地に変更することが必要となる。このリン
カ1006により、マイクロコンピュータの絶対番地に
付替えられた機械語プログラムは、一つのロード・モジ
ュール・ファイル1007として補助記憶装置906に
格納される。
【0006】上記の言語処理プログラムによる言語処理
方式においては、ソース・プログラムとして、モジュー
ル1、モジュール2およびモジュール3という編成順を
意識することなく変換が行われる。即ち、モジュールの
順序はリンク時においてのみ指定されればよい。このこ
とは、一つのモジュールの内容を修正したい時に、仮に
他のモジュールのリロケータブル・オブジェクト・ファ
イルが既に存在する場合には、修正したモジュールのみ
をコンパイルするだけでよく、その後、他のリロケータ
ブル・オブジェクトと今回のコンパイルしたリロケータ
ブル・オブジェクトとを単にリンクするだけで、修正を
加えたロード・モジュールが生成されるということを意
味している。この特徴は、大きいプログラムにおいて少
ない修正を加える必要がある場合に、処理すべきソース
・モジュールが少なくて済むために、言語処理時間が短
縮されるという利点がある。しかしながら、この言語処
理法式においては、各モジュールの処理を単独に行うた
めに、例えば、或るモジュール内で定義されているシン
ボルを別のモジュール内において参照するような場合に
は、やや複雑なシンボル管理が必要となる。
【0007】このシンボル管理方式について以下に説明
する。プログラミング言語には、任意のデータまたはア
ドレスに名前をつけるシンボル定義文がある。ソース・
プログラム中において、その定義文により或る名前にデ
ータまたはアドレスの値が割りふられると、言語処理時
には、その名前が対応する値に変換される。この名前を
一般にシンボルと呼び、当該シンボルをプログラム中に
記述することをシンボルの参照と呼ぶ。このようなシン
ボルの参照時においては、シンボルが記述された位置に
値を代入する必要があるので、予めシンボルの文字列と
値とを対照させたシンボル・テーブルを作成して、主記
憶領域であるRAM902または磁気ディスク等の補助
記憶装置906内に一時的に格納しておく必要がある。
【0008】このために、言語処理システムにおいては
通常2パス方式が用いられており、ソース・プログラム
は2回読込まれて解析される。即ち、一度目の解析フェ
ーズに対応するパス1においては、ソース・プログラム
中のシンボルが定義されている箇所が抽出され、シンボ
ルをそれに割当てられた値とを対応づけたシンボル・テ
ーブルが主記憶装置内において作成される。そして、二
度目の解析フェーズに対応するパス2においては、シン
ボルの参照箇所に、シンボル・テーブルから探索された
値が埋められてゆく。
【0009】また、ソース・プログラムを分割する方式
においても、シンボルの定義と参照とが一つのモジュー
ル内において行われている場合には、上記のシンボル処
理方式によっても問題はないが、シンボルの定義と参照
とが異なるモジュール間において行われている場合に
は、別の処理を設ける必要がある。一般に、参照と定義
とが同一モジュール内において行われているシンボルは
ローカル・シンボルと呼ばれ、複数のモジュール共通に
使用されているシンボルはグローバル・シンボルと呼ば
れる。
【0010】上記のグローバル・シンボルの処理方法
は、一般に以下のようにして行われている。他のモジュ
ールにおいて定義されたシンボルを参照している場合に
は、通常のパス1において作成されるシンボル・テーブ
ルには、そのシンボルが登録されていないために、言語
処理のパス2において、そのシンボルの値を参照するこ
とができない。このために、未解決のままリロケータブ
ル・オブジェクト・ファイル1005(図10参照)に
出力される。例えば、図11に示されるソース・プログ
ラム1101は、ソース・モジュール(1)1102お
よびソース・モジュール(2)1103に分割されてい
る。ソース・モジュール(1)1102において記述さ
れているシンボル(または変数と云う)low1および
low2は、他のソース・モジュール(2)1103に
より参照されている。しかし、ソース・モジュール
(1)1102およびソース・モジュール(2)110
3は、それぞれ別々に処理されるために、ソース・モジ
ュール(2)1103の命令文により参照されているl
ow1およびlow2の値は、言語処理時においてはア
ドレスに変換されることはなく、未解決のまま各リロー
ケタブル・オブジェクト・ファイル1005(図10参
照)に出力される。従って、これらのリローケタブル・
オブジェクト・ファイル1005のlow1およびlo
w2の値が格納されるべき機械語には、一時的に印が付
けられており、図10に示されるリンカ1006によ
り、シンボルのlow1およびlow2に対してそれぞ
れ値が割付けられて、最終的には実行可能なロード・モ
ジュール・ファイル1007が生成される。
【0011】前述のように、シンボル定義が行われると
シンボル・テーブルが作成されるが、ローカル・シンボ
ルとグローバル・シンボルの見通し範囲(スコープと云
う)は、それぞれ異なっている。このことは、図12に
示されるローカル・シンボル1201とグローバル・シ
ンボル・テーブル1202が生成されることにより区別
される。図11におけるソース・モジュール(1)11
02においては、四つのシンボルup1、up2、lo
w1およびlow2が定義されているために、ソース・
モジュール(1)1102の処理時においては、図12
におけるローカル・シンボル・テーブル1201におい
て示されるシンボル・テーブルが一時的に生成される。
図11のソース・モジュール(1)1102に示される
ように、up1およびup2の直前には、“stati
c”というシンボルがローカルであることを定義する文
として記述されているために、図12のローカル・シン
ボル・テーブル1201のみに記憶されるが、low1
およびlow2は、“static”というシンボルが
記述されていないために、グローバルであるものと判断
されて、グローバル・シンボル・テーブル1202に記
憶される。図12におけるローカル・シンボル・テーブ
ル1201は、当該モジュールの言語処理後において消
去されるが、グローバル・シンボル・テーブル1202
は、リローケタブル・オブジェクト・ファイル1005
(図10参照)に記憶されているため、前述のソース・
モジュール(2)1103(図11参照)における未解
決シンボルもリンク時において解決される。
【0012】
【発明が解決しようとする課題】上述した従来の言語処
理システムのシンボル処理方式においては、一つのソー
ス・プログラムが複数のモジュールに分割されている場
合には、前記複数のモジュールにより参照されるシンボ
ルは、それぞれのモジュールでシンボルの定義が行われ
ており、ソース・プログラムを構成している各モジュー
ルの言語処理時において、対応するシンボル・テーブル
が作成されるために、一つのシンボル・テーブルが小さ
く分割されて当該シンボルのサーチ時間が短縮され、こ
れにより言語処理時間も短縮される結果となる。しか
し、言語処理終了後において未解決なシンボルの参照を
リンク処理により解決しなければならないという点にお
いて、下記の欠点がある。
【0013】マイクロコンピュータ上のデータおよびプ
ログラム等を格納するセグメント化アドレス空間に対し
て、前述のシンボルup1、up2、low1およびl
ow2等を割付ける場合に、図11のソース・モジュー
ル(1)1102においては、up1およびup2に値
が代入されている。今、これらの代入文が、機械語にお
いては、アドレスを示すためのセグメント番号を規定
し、セグメント内のオフセット・アドレスを規定し
て、値を代入するという三つの命令に展開されている
ものとすると、言語処理時において、up1およびup
2の番地が共に同一セグメント内に割付けられている場
合には、前述のアドレスを示すためのセグメント番号
を規定するという処理は1回のみ行われればよく、1ス
テップの処理ステップが削減されることになる。このこ
とは最適化と呼ばれるが、ソース・モジュール(2)1
103においては、モジュールの言語処理時に、low
1およびlow2の値は未解決の状態にあるため、これ
らのlow1およびlow2の番地が同一であるか否か
は不明のままである。従って、言語処理部1004にお
いては、最大の機械語になければならない。即ち、外部
を参照している文は前記最適化の対象から外されて、冗
長な機械語命令が生成されるという事態となり、グロー
バル・シンボルの参照位置において最適化を行うことが
できないという欠点がある。
【0014】また、この欠点を解決して最適化とするた
めには、グローバル・シンボルを各モジュールの先頭に
おいて毎回定義して、各モジュールのローカル・シンボ
ル・テーブルに記憶させればよいが、シンボル・テーブ
ルを生成するための処理時間が遅いために、分割モジュ
ールごとに行われる当該処理手順が付加されると、言語
処理において余分の時間を要し、プログラム開発期間を
延伸させるという欠点がある。
【0015】
【課題を解決するための手段】第1の発明の言語処理シ
ステムのシンボル処理方式は、コンピュータのプログラ
ム言語で記述されたソース・プログラムを複数のソース
・ファイルに分割し、分割された各ソース・ファイルを
入力して、命令文を解析する手段とシンボルを処理する
手段により機械語に変換し、前記コンピュータ上におい
て実行可能なオブジェクト・ファイルを出力する言語処
理システムにおける言語処理手段として、前記ソース・
ファイルに格納されているプログラムにおいて使用され
るシンボルの定義文のみを格納するシンボル定義ファイ
ルと、前記ソース・ファイルならびにシンボル定義ファ
イルに記述されたプログラムの中の命令文を読み込んで
解析する命令解析処理手段と、前記命令解析処理手段に
よる解析結果において、命令文がファイル読み込み命令
であった場合に、読み込むファイルのファイル名が特別
の規則を有しているか否かを判断するファイル名識別手
段と、前記ファイル名識別手段において、ファイル名が
特別の規則を有していると判断された場合に、対応する
シンボル処理結果ファイルが存在するか否かを検索する
シンボル処理結果ファイル検索手段と、前記シンボル処
理結果ファイル検索手段において、シンボル処理結果フ
ァイルが存在すると判断された場合に、前記シンボル定
義ファイルと前記シンボル処理結果ファイルの作成日付
を比較する作成日付比較手段と、前記ソース・ファイル
に記述されたシンボル定義分を一時的に格納処理するシ
ンボル処理手段およびシンボル一時記憶手段とを少なく
とも備え、前記シンボル定義ファイルに対応して前記シ
ンボル処理結果ファイルの作成日付の方が新しい場合に
は、前記シンボル定義ファイルの代わりに、当該シンボ
ル処理結果ファイルを入力するように機能することを特
徴としている。
【0016】また、第2の発明の言語処理システムのシ
ンボル処理方式は、コンピュータのプログラム言語で記
述されたソース・プログラムを複数のソース・ファイル
に分割し、分割された各ソース・ファイルを入力して、
命令文を解析する手段とシンボルを処理する手段により
機械語に変換し、前記コンピュータ上において実行可能
なオブジェクト・ファイルを出力する言語処理システム
における言語処理手段として、前記ソース・ファイルに
格納されているプログラムにおいて使用されるシンボル
の定義文のみを格納するシンボル定義ファイルと、前記
ソース・ファイルならびにシンボル定義ファイルに記述
されたプログラムの中の命令文を読み込んで解析する命
令解析処理手段と、前記命令解析処理手段による、イン
クルード命令により読み込まれたファイルの命令文解析
結果において、当該ファイル内にシンボル定義文以外の
命令文が存在する場合に1を格納するインクルード・フ
ァイル内命令解析結果記憶手段と、前記命令解析処理手
段による、インクルード命令により読み込まれたファイ
ルの命令文解析結果において、当該ファイル内の命令文
が全てシンボル定義文である場合に、対応するシンボル
処理結果ファイルが存在するか否かを検索するシンボル
処理結果ファイル検索手段と、前記シンボル処理結果フ
ァイル検索手段において、シンボル処理結果ファイルが
存在すると判断された場合に、前記シンボル定義ファイ
ルと前記シンボル処理結果ファイルの作成日付を比較す
る作成日付比較手段と、前記ソース・ファイルに記述さ
れたシンボル定義分を一時的に格納処理するシンボル処
理手段およびシンボル一時記憶手段とを少なくとも備
え、前記シンボル定義ファイルに対応して前記シンボル
処理結果ファイルの作成日付の方が新しい場合には、前
記シンボル定義ファイルの代わりに、当該シンボル処理
結果ファイルを入力するように機能することを特徴とし
ている。
【0017】
【実施例】次に、本発明について図面を参照して説明す
る。
【0018】図1は本発明の第1および第2の実施例の
基本構成を示すシステム・ブロック図である。図1に示
されるように、当該実施例は、プログラムの命令文を解
析する命令解析処理手段104、読ま込まれるファイル
名が特別な規則を有しているか否かを判断するファイル
名識別手段105、シンボル処理結果ファイルが存在す
るか否かを検索するシンボル処理結果ファイル検索手段
106、シンボル定義ファイルとシンボル処理結果ファ
イルの作成年月日を比較する作成日時比較手段107、
シンボル定義文を一時的に格納するための処理を行うシ
ンボル処理手段108、およびシンボルを一時的に格納
するシンボル一時記憶手段109等を含む言語処理部1
03と、コンピュータのプログラム言語により記述され
たプログラムを格納するソース・ファイル101と、ソ
ース・ファイル101のプログラにおいて使用されるシ
ンボルの定義文のみが格納されるシンボル定義ファイル
102と、シンボル処理結果ファイル110と、コンピ
ュータにおいて判読可能な機械語に変換されたプログラ
ムを格納するオブジェクト・ファイル111とを備えて
構成されており、ソース・ファイル101、シンボル定
義ファイル102、シンボル処理結果ファイル110お
よびオブジェクト・ファイル111は、それぞれ磁気記
録装置112、113、114および115に格納され
ている。
【0019】図1において、言語処理部103は本シス
テムの中核であり、基本動作として、ソース・ファイル
101より入力されるソース・プログラムが、当該言語
処理部103において解析処理され、解析結果は上記の
オブジェクト・ファイル111に出力されて格納され
る。命令解析処理手段104においては、ソース・ファ
イル101およびシンボル定義ファイル102に記述さ
れているプログラムの中の命令文が読ま込まれて解析さ
れる。ファイル名識別手段105においては、命令解析
処理手段104による解析結果において、プログラムの
命令文がファイル読み込み命令であった場合に、読ま込
まれるファイル名が特別な規則を有しているか否かを判
断される。シンボル処理結果ファイル検索手段106に
おいては、ファイル名識別手段105においてファイル
名が特別な規則を有していると判断された場合に、対応
するシンボル処理結果ファイルが110が存在するか否
かを検索される。シンボル処理結果ファイル検索手段1
06においてシンボル処理結果ファイル110が存在す
ると判断された場合には、作成日時比較手段107にお
いて、シンボル定義ファイル102とシンボル処理結果
ファイル110の作成年月日が比較される。シンボル処
理手段108においては、シンボル定義ファイル102
に記述されているシンボル定義文を、シンボル一時記憶
手段109に格納するための処理が行われるが、前記命
令解析処理手段104において読み込まれた命令文の解
析結果がシンボル定義文であった場合、シンボル処理結
果ファイル検索手段106においてシンボル処理結果フ
ァイル110が存在しない判断された場合、および作成
日時比較手段107において、シンボル定義ファイル1
02とシンボル処理結果ファイル110の作成年月日が
比較した結果、シンボル定義ファイル102の方が新し
いと判断された場合には、ソース・ファイル101およ
びシンボル定義ファイル102のシンボル定義文より、
命令解析処理手段104を通じてシンボル処理が行わ
れ、シンボル処理結果ファイル110の方が新しいと判
断される場合には、シンボル処理結果ファイル110の
内容がシンボル一時記憶手段109に読み込まれる。シ
ンボル一時記憶手段109においては、言語処理部10
3において実行されているプログラムの処理の終了時
に、シンボル処理手段108より出力されるシンボルが
一時的に格納される。
【0020】また、図2、図3および図4は、本発明の
第1の実施例における言語処理部103の動作を示すフ
ローチャートである。以下、図1、図2、図3および図
4を参照して、本実施例の動作について説明する。
【0021】まず、図2のステップ201において、入
力ソース・モジュール・ファイルF1および出力オブジ
ェクト・モジュール・ファイルF0が開かれる。ステッ
プ202においてはロケーション・カウンタおよび行番
号カウンタがクリアされ、ステップ203においては、
入力ファイルF1がEOFであるか否かが判定されて、
F1がEOFである場合には、ステップ220において
F1・F0はクローズされる。ステップ203において
F1がEOFでない場合には、ステップ204に移行し
てF1より1行の読込みが行われる。次いで、ステップ
205においては、ステップ204において読込まれた
行が、シンボル記述ファイルを読込む処理であるか否か
の判定が行われる。このステップ205における判定
は、文の先頭がファイル読込み文である命令(#INC
LUDE)で始まっていることと、ステップ206にお
いて読込まれるファイルのファイル名の拡張子が(.S
YM)であることの2ステップにより確定される。シン
ボル記述ファイルを読込む文であれば、ステップ207
において、同一ファイル名で拡張子(.$$S)が既に
記憶装置内に存在しているか否かが検索され、存在する
場合にはステップ208において(.$$S)の作成年
月日と(.SYM)の作成年月日とが比較されて、(.
$$S)の方が新しいと判定された場合には、ステップ
209において(.$$S)の内容がローカル・シンボ
ル・テーブルに読込まれて処理は終了となる。
【0022】また、ステップ207において(.$$
S)が存在しないと判定された場合、またはステップ2
08において、(.$$S)の方が新しくないと判定さ
れた場合には、ステップ210に移行して、シンボル記
述ファイルのファイル名と、(.SYM)およびコンパ
イル結果を収納するコンパイル結果ファイル108のフ
ァイル名と、(.$$S)とがオープンされる。次い
で、図3のステップ211において(.SYM)がEO
Fでないものと判定された場合には、ステップ212に
おいて1行の読込みが行われて、ステップ213におい
てシンボル記述文の解析が行われる。次いでステップ2
14においては、当該解析結果がローカル・シンボル・
テーブルおよび(.$$S)ファイルに格納される。こ
の処理ステップは、(.SYM)のEOFまで繰返して
行われ、ステップ211において、(.SYM)がEO
Fであると判定された場合には、ステップ215に移行
して、(.SYM)および(.$$S)がクローズされ
る。
【0023】なお、図2におけるステップ205および
206を介して、一行読込まれた文がシンボル記述ファ
イルの読込み処理文でない場合には、図4に示されるス
テップ216においてシンボル記述文であるか否かが判
定されて、シンボル記述文である場合には、ステップ2
17においてシンボル解析結果がローカル・シンボル・
テーブルに収納され、またシンボル記述文でない場合に
は、ステップ219において通常のコンパイル処理が行
われる。このステップ218および219にフォロウし
て図2におけるステップ203に処理が移行し、再度、
ステップ203以降の処理ステップが実行される。
【0024】次に、本発明の第2の実施例について説明
する。本実施例の基本構成を示すシステム・ブロック図
は第1の実施例と同様であり、図1に示されるとうりで
ある。図5、図6および図7は、本実施例における言語
処理部103の動作手順を示すフローチャートである。
本実施例の言語処理部103における処理ステップと、
前述の第1の実施例の言語処理部103における処理ス
テップとの相違点は、本実施例の場合には、図2におけ
るステップ205および206における判定方法を、第
1の実施例において行われているように、一般のファイ
ルを読込むための命令(#INCLUDE)によること
なく、図5のステップ505における特別の命令(#I
NCーSYM)により判定するようにしていることであ
る。このようにすることにより、図5のフローチャート
に示されるように、図2のステップ206に示されるシ
ンボル宣言ファイル名に拡張子を判定する処理ステップ
が排除されており、従って、拡張子として(.SYM)
のように限定する必要がない。この処理手順以外の他の
処理手順については、第1の実施例の場合と同様であ
り、その説明は省略する。なお、この場合においても、
シンボル処理結果ファイル108は、或る特定のファイ
ル(.$$S)に決定付けられている。
【0025】図8は本発明の第3の実施例の基本構成を
示すシステム・ブロック図である。図8に示されるよう
に、当該実施例は、プログラムの命令文を解析する命令
解析処理手段804、命令文の命令解析結果を記憶する
インクルード・ファイル内命令解析結果記憶手段80
5、シンボル処理結果ファイルが存在するか否かを検索
するシンボル処理結果ファイル検索手段806、シンボ
ル定義ファイルとシンボル処理結果ファイルの作成年月
日を比較する作成日時比較手段807、シンボル定義文
を一時的に格納するための処理を行うシンボル処理手段
808、およびシンボルを一時的に格納するシンボル一
時記憶手段809等を含む言語処理部803と、コンピ
ュータのプログラム言語により記述されたプログラムを
格納するソース・ファイル801と、ソース・プァイル
801のプログラにおいて使用されるシンボルの定義文
のみが格納されるシンボル定義ファイル802と、シン
ボル処理結果ファイル810と、コンピュータにおいて
判読可能な機械語に変換されたプログラムを格納するオ
ブジェクト・ファイル811とを備えて構成されてお
り、ソース・ファイル801、シンボル定義ファイル8
02、シンボル処理結果ファイル810およびオブジェ
クト・ファイル811は、それぞれ磁気記録装置81
2、813、814および815に格納されている。
【0026】図8において、言語処理部803は本シス
テムの中核であり、基本動作として、ソース・ファイル
801より入力されるソース・プログラムが、当該言語
処理部803において解析処理され、解析結果は上記の
オブジェクト・ファイル811に出力されて格納され
る。命令解析処理手段804においては、ソース・ファ
イル801およびシンボル定義ファイル802に記述さ
れているプログラムの中の命令文が読み込まれて解析さ
れる。インクルード・ファイル内命令解析結果記憶手段
805においては、命令解析処理手段804による、イ
ンクルード命令により読み込まれたファイルの中に記述
されている命令文の命令解析結果が記憶されるが、当該
命令の解析結果においてシンボル定義文でない命令文が
ある場合には1が格納される。シンボル処理結果ファイ
ル検索手段806においては、インクルード・ファイル
内命令解析結果記憶手段805において格納された値が
1でない場合、即ちインクルード命令により読み込まれ
たファイルの中に記述された命令文が、全てシンボル定
義文であると判断され、読み込まれたファイルがシボル
定義文であると判断された場合に、ファイル810が存
在するか否かが検索される。作成日時比較手段807に
おいては、シンボル処理結果ファイル検索手段806に
おいて、シンボル処理結果ファイル810が存在すると
判断された場合には、シンボル定義ファイル802とシ
ンボル処理結果ファイル810の作成年月日が比較され
る。シンボル処理手段808においては、シンボル定義
ファイル802に記述されているシンボル定義文を、シ
ンボル一時記憶手段809に格納するための処理が行わ
れるが、前記命令解析処理手段804において読み込ま
れた命令文の解析結果がシンボル定義文であった場合、
シンボル処理結果ファイル検索手段806においてシン
ボル処理結果ファイル810が存在しない判断された場
合、および作成日時比較手段807において、シンボル
定義ファイル802とシンボル処理結果ファイル810
の作成年月日が比較した結果、シンボル定義ファイル8
02の方が新しいと判断された場合には、ソース・ファ
イル801およびシンボル定義ファイル802のシンボ
ル定義文より、命令解析処理手段804を通じてシンボ
ル処理が行われ、シンボル処理結果ファイル810の方
が新しいと判断される場合には、シンボル処理結果ファ
イル810の内容がシンボル一時記憶手段809に読み
込まれる。シンボル一時記憶手段809においては、言
語処理部803において実行されているプログラムの処
理の終了時に、シンボル処理手段108より出力される
シンボルが一時的に格納される。
【0027】
【発明の効果】以上説明したように、本発明は、各モジ
ュール単位で使用されるシンボル宣言文を格納するシン
ボル定義ファイルを、モジュール・ファイルとは別のフ
ァイルに格納し、言語処理側において、前記シンボル定
義ファイルを識別する手段を備え、且つシンボル定義フ
ァイル名およびファイル作成日付と、言語処理結果のシ
ンボル・テーブルとを格納する手段とを備えることによ
り、ソース・プログラムの処理結果において生成される
オブジェクトの生成時間が短縮されるとともに、1回の
コンパイルにより、一つのモジュールで処理されたシン
ボル定義ファイルを別のモジュールで使用する場合に、
当該モジュール生成時間が短縮されるという効果があ
る。
【0028】また、ソース・プログラムのデバッグ時に
おいて、シンボル定義部分を分離させることにより、シ
ンボル定義ファイルの処理結果ファイルが決定されれ
ば、当該デバッグ時において、シンボル・テーブルを生
成する処理時間を殆ど排除することができるという効果
がある。
【図面の簡単な説明】
【図1】本発明の第1および第2の実施例の構成を示す
システム・ブロック図である。
【図2】前記第1の実施例の動作のフローチャートを示
す図である。
【図3】前記第1の実施例の動作のフローチャートを示
す図である。
【図4】前記第1の実施例の動作のフローチャートを示
す図である。
【図5】本発明の第2の実施例の動作のフローチャート
を示す図である。
【図6】前記第2の実施例の動作のフローチャートを示
す図である。
【図7】前記第2の実施例の動作のフローチャートを示
す図である。
【図8】本発明の第3の実施例の構成を示すシステム・
ブロック図である。
【図9】情報処理システムのシステム構成図である。
【図10】従来例におけるソース・プログラムとオブジ
ェクト・モジュールを示す図である。
【図11】従来例における変数の記述と使用方法との関
連を示す図である。
【図12】従来例において作成されるシンボル・テーブ
ルの外形図である。
【符号の説明】
101、801 ソース・ファイル 102、802 シンボル定義ファイル 103、803、1004 言語処理部 104、804 命令解析処理手段 105 ファイル名識別手段 106、806 シンボル処理結果ファイル検索手段 107、807 作成日付比較手段 108、808 シンボル処理手段 109、809 シンボル一時記憶手段 110、810 シンボル処理結果ファイル 111、811 オブジェクト・ファイル 112〜115、812〜815 磁気記録装置 805 インクルード・ファイル内命令解析結果記憶
手段 901 CPU 902 RAM 903 キーボード 904 オペレーティング・システム 905 ディスプレイ 906 補助記憶装置 1001、1101 ソース・プログラム 1003 ソース・モジュール・ファイル 1005 リロケータブル・オブジェクト・ファイル 1006 リンカ 1007 ロード・モジュール・ファイル 1102 ソース・モジュール(1) 1103 ソース・モジュール(2) 1201 ローカル・シンボル・テーブル 1202 グローバル・シンポル・ファイル

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータのプログラム言語で記述さ
    れたソース・プログラムを複数のソース・ファイルに分
    割し、分割された各ソース・ファイルを入力して、命令
    文を解析する手段とシンボルを処理する手段により機械
    語に変換し、前記コンピュータ上において実行可能なオ
    ブジェクト・ファイルを出力する言語処理システムにお
    ける言語処理手段として、 前記ソース・ファイルに格納されているプログラムにお
    いて使用されるシンボルの定義文のみを格納するシンボ
    ル定義ファイルと、 前記ソース・ファイルならびにシンボル定義ファイルに
    記述されたプログラムの中の命令文を読み込んで解析す
    る命令解析処理手段と、 前記命令解析処理手段による解析結果において、命令文
    がファイル読み込み命令であった場合に、読み込むファ
    イルのファイル名が特別の規則を有しているか否かを判
    断するファイル名識別手段と、 前記ファイル名識別手段において、ファイル名が特別の
    規則を有していると判断された場合に、対応するシンボ
    ル処理結果ファイルが存在するか否かを検索するシンボ
    ル処理結果ファイル検索手段と、 前記シンボル処理結果ファイル検索手段において、シン
    ボル処理結果ファイルが存在すると判断された場合に、
    前記シンボル定義ファイルと前記シンボル処理結果ファ
    イルの作成日付を比較する作成日付比較手段と、 前記ソース・ファイルに記述されたシンボル定義分を一
    時的に格納処理するシンボル処理手段およびシンボル一
    時記憶手段と、 を少なくとも備え、前記シンボル定義ファイルに対応し
    て前記シンボル処理結果ファイルの作成日付の方が新し
    い場合には、前記シンボル定義ファイルの代わりに、当
    該シンボル処理結果ファイルを入力するように機能する
    ことを特徴とする言語処理システムのシンボル処理方
    式。
  2. 【請求項2】 コンピュータのプログラム言語で記述さ
    れたソース・プログラムを複数のソース・ファイルに分
    割し、分割された各ソース・ファイルを入力して、命令
    文を解析する手段とシンボルを処理する手段により機械
    語に変換し、前記コンピュータ上において実行可能なオ
    ブジェクト・ファイルを出力する言語処理システムにお
    ける言語処理手段として、 前記ソース・ファイルに格納されているプログラムにお
    いて使用されるシンボルの定義文のみを格納するシンボ
    ル定義ファイルと、 前記ソース・ファイルならびにシンボル定義ファイルに
    記述されたプログラムの中の命令文を読み込んで解析す
    る命令解析処理手段と、 前記命令解析処理手段による、インクルード命令により
    読み込まれたファイルの命令文解析結果において、当該
    ファイル内にシンボル定義文以外の命令文が存在する場
    合に1を格納するインクルード・ファイル内命令解析結
    果記憶手段と、 前記命令解析処理手段による、インクルード命令により
    読み込まれたファイルの命令文解析結果において、当該
    ファイル内の命令文が全てシンボル定義文である場合
    に、対応するシンボル処理結果ファイルが存在するか否
    かを検索するシンボル処理結果ファイル検索手段と、 前記シンボル処理結果ファイル検索手段において、シン
    ボル処理結果ファイルが存在すると判断された場合に、
    前記シンボル定義ファイルと前記シンボル処理結果ファ
    イルの作成日付を比較する作成日付比較手段と、 前記ソース・ファイルに記述されたシンボル定義分を一
    時的に格納処理するシンボル処理手段およびシンボル一
    時記憶手段と、 を少なくとも備え、前記シンボル定義ファイルに対応し
    て前記シンボル処理結果ファイルの作成日付の方が新し
    い場合には、前記シンボル定義ファイルの代わりに、当
    該シンボル処理結果ファイルを入力するように機能する
    ことを特徴とする言語処理システムのシンボル処理方
    式。
JP24765593A 1993-10-04 1993-10-04 言語処理システムのシンボル処理方式 Pending JPH07105014A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24765593A JPH07105014A (ja) 1993-10-04 1993-10-04 言語処理システムのシンボル処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24765593A JPH07105014A (ja) 1993-10-04 1993-10-04 言語処理システムのシンボル処理方式

Publications (1)

Publication Number Publication Date
JPH07105014A true JPH07105014A (ja) 1995-04-21

Family

ID=17166714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24765593A Pending JPH07105014A (ja) 1993-10-04 1993-10-04 言語処理システムのシンボル処理方式

Country Status (1)

Country Link
JP (1) JPH07105014A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011123719A (ja) * 2009-12-11 2011-06-23 Renesas Electronics Corp 言語処理システム、言語処理方法、及び言語処理用プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011123719A (ja) * 2009-12-11 2011-06-23 Renesas Electronics Corp 言語処理システム、言語処理方法、及び言語処理用プログラム

Similar Documents

Publication Publication Date Title
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
JP2666847B2 (ja) 異種言語間連絡方式
US20090249307A1 (en) Program analysis apparatus, program analysis method, and program storage medium
JPH05197685A (ja) ウィンドウ化ユーザ・インタフェースの複数言語による翻訳を支援するシステム及び方法
JPH08234975A (ja) プログラム生成装置および方法
JPH06103463B2 (ja) コード生成方法
JPH0721033A (ja) 言語処理装置及びその方法
JPH07230386A (ja) データ処理装置及び制御ルーチン呼出し方法
JPH07105014A (ja) 言語処理システムのシンボル処理方式
US6343378B1 (en) Method of making link directive file and tool for making link directive file
JPH05346332A (ja) 試験プログラム実行方法
JP3044953B2 (ja) 言語処理システムのシンボル処理方式
JPH06110733A (ja) プログラムのテストケース生成装置
JPH07146785A (ja) プログラム自動生成方法および装置
JP3166699B2 (ja) オブジェクト指向プログラム設計支援装置、方法および記録媒体
JPH05334096A (ja) 言語翻訳プログラム及びその出力結果を用いるデバッグ装置
JPH11154093A (ja) プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体
JP3114199B2 (ja) 言語処理システムのリスト出力方式
JPH03186933A (ja) 言語処理システムのシンボル処理方式
JP2977642B2 (ja) Fortranコンパイル処理装置
JPH0695890A (ja) コンパイラにおける名前置換方式
JPH0561687A (ja) コンパイラの処理方式
JPH05120025A (ja) ソースプログラムのインライン展開方法
JPH05274126A (ja) プログラム合成システム
JPH06119203A (ja) デバック行削除装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20001017