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

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

Info

Publication number
JPH03186933A
JPH03186933A JP32689689A JP32689689A JPH03186933A JP H03186933 A JPH03186933 A JP H03186933A JP 32689689 A JP32689689 A JP 32689689A JP 32689689 A JP32689689 A JP 32689689A JP H03186933 A JPH03186933 A JP H03186933A
Authority
JP
Japan
Prior art keywords
symbol
storage device
file
source
symbols
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
JP32689689A
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 JP32689689A priority Critical patent/JPH03186933A/ja
Publication of JPH03186933A publication Critical patent/JPH03186933A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、言語処理システムのシンボル処理方式に関し
、特にソース・プロクラムが分割された言語処理方式で
、プロクラム内で使用されていて未定義であるシンボル
の処理方式に関する。
〔従来の技術〕
般に、プログラム言語で記述されたソース・プログラム
で使用されているデータやアドレス等のオブジェクトは
、プログラムに直接その値を記述しないで、任意の文字
列にそのオブジェクトを割り付ける。この文字列はシン
ボルと呼ばれそのオブジェクトの持つ意味等を表現した
場合が多い。
シンボルをソース・プロクラム中に記述すると、言語処
理時にそのシンボルに対応するオブジェクトに変換され
て解釈される。シンボルに値を割り付けることをシンボ
ル定義、シンボルに割り付けられた値を引用することを
シンボルの参照と呼ぶ。
このシンボル参照機能のために、コンパイルに使用され
るコンピュータ内部の記憶装置内に、ソス・プログラム
の記憶領域とは別の領域をシンボル記憶領域として確保
する必要がある。
一つのソース・プログラムを複数のソース・モジュール
・ファイルに分割して、別々に処理し、最後にモジュー
ル間でアドレス等のオブジェクトを引き渡し、最終的な
オブジェクト・コードを生成するリンク処理を有する言
語処理システムにおいて、一つのソース・モジュールの
処理時にコンピュータ内部の記憶装置に作成されるシン
ボル領域は、そのソース・モジュール処理後、記憶装置
より消去される。この処理方式では、一つのソース・プ
ログラムを分割しないで処理する場合と比較して、記憶
領域が少なくて済むという長所がある。また、ソース・
プログラムを複数のソース・モジュールに分割して、複
数の人間により作成される場合、一つのソース・モジュ
ール内で定義されているシンボルと同じシンボル名が他
のソース・モジュール内で異なる値を割り付けて使用さ
れていても二重定義エラーにはならない。
この処理方式において、他のソース・モジュルで定義さ
れたシンボルを参照したい場合は、外部モジー−ル定義
シンボルの参照宣言をする必要がある。また、そのシン
ボルを定義している側でも、外部モジュールで使用され
ることを宣言する。
前者をEXTRENXTR上るEXTRENXTR用、
後者をPUBLIC宣言によるPUBLICシンボルと
呼ぶ。
PUBLICシンボルは、一つのソース・モジュールの
処理が終了しても消去されないように、前記のシンボル
記憶領域とは別の領域を確保する必要がある。このシン
ボル処理方式によr)、使用されるコンピュータ内部の
記憶領域は、最小で済むことが期待される。
〔発明が解決しようとする課題〕
従来のシンボル処理方式では、外部のソース・モジュー
ルで定義されたシンボルを使用する場合、シンボルを定
義する側のソース・モジュールでPUBLIC宣言、シ
ンボルを参照する側のソース・モジュールでEXTER
N宣言をしなければならない。一般にシングル・チップ
・マイコンのプログラミング形式において、ソース・プ
ログラムで使用されるマイコンの資源は、ソース・プロ
グラムの先頭でシンボル定義され、かつ、PUBLIC
宣言され、それらのシンボルを各々のソース・モジュル
でEXTERN宣言して、使用するという慣習がある。
この場合、1つのソース・モジュール内で使用しようと
するEXTERNシンボルの数は多いため、EXTER
N宣言に手間がかかるという問題がある。また、この手
間を解消するために、シンボル定義のみを記述したファ
イルを各々のソース・モジュールの先頭にコピーすると
いう手段がとられることがよくあるが、この方法ではソ
ース・モジュール内で参照されないシンボルも定義され
てしまうため、前記のシンボル記憶領域が大きくなって
しまうという問題がある。また、この場合、使用してい
ないシンボル名を別のシンボルとして定義することがで
きない。
また、EXTERN宣言する前に、そのソース・モジュ
ールを処理しソース・モジュール内で定義されていない
シンボルを未定義シンボルエラーとして検出し、その未
定義シンボル・エラーのシンボル− を見てEXTERN宣言文を記述する方法もとられるが
、未定義シンボル・エラーと、その他のエラーが混在し
てファイルに出力されるため、EXTERN宣言文は新
たにエデイツトし直さなければならない。
C課題を解決するための手段〕 本発明は、ソース・モジュール内で使用されているが未
定義であるシンボルのみを検出し、外部記憶装置内の1
つのファイルに出力することを特徴としている。
すなわち、本発明のシンボル処理方式は、ソース・モジ
ュール内で定義されているシンボルの名前を記憶する定
義シンボル記憶手段と、ソース・モジュール内で参照さ
れているシンボルを記憶する参照シンボル記憶手段と、
この参照シンボル記憶手段に記憶されたシンボルが定義
シンボルとして存在しない場合外部記憶装置内の一つの
ファイルに出力するという手段とを有する。このファイ
ルは未定義シンボル専用でなければならない。
〔実施例〕
次に、本発明について図面を参照して説明する。
− 本実施例では言語処理システムとして、特にアセンブラ
を例にして説明するものである。
第1図は、本発明の一実施例であるアセンブラの動作、
環境を示す構成図である。101は、アセンブラ・プロ
グラムとソース・プログラムを記憶するための磁気ディ
スクで構成されている補助記憶装置、102は補助記憶
装置101に記憶されたプログラムを処理するための中
央処理装置。
103は処理に使用される主記憶装置、104は中央処
理装置102の実行を制御するオペl/ −ティング・
システム、105はオペレーティング・システム104
にコマンドを入力するためのキーボード、106は処理
結果を表示するためのデイスプレィである。
第2図は、第1図の主記憶装置103に記憶された定義
シンボル・テーブル、第3図は第1図の主記憶装置10
3に記憶された参照シンボル・テーブルである。第2図
のブ□ツク201は、シンボル名を記憶する領域で8バ
イトが確保される。
ブロック202は、シンボルの型を記憶する領域である
。EXTERN宣言文にシンボルの型を記述する場合、
記憶する必要がある。ブロック203はシンボルに割り
付けられた数値を記憶するための領域で16ビツト長が
確保される。第3図のブロック301はシンボル名の記
憶領域、ブロック302はシンボルの型を記憶する領域
である。
次に第2図、第3図の記憶処理形式を第4図のソース・
プログラムを用いて説明する。第4図の401は、ソー
ス・プログラムのプログラム行番号を示している。行番
号401の次の402゜403.404には、実際のプ
ログラム文が記述されている。プログラム文の第一項4
02はSYMBOL欄であり、シンボル名が記述される
。第二項403はMNEMONIC欄であり、命令やア
センブル疑似命令が記述される。第三項403は、0P
ERAND欄であり、402の命令、疑似命令の目的と
なる数値や式が記述される。
行番号50で示されている行405の第二項に記述され
ているEQU’は、シンボル名を定義するための疑似命
令であり、アセンブラは処理中に行405を読み込むと
、まず第2図のブロック201に第一項のシンボル名’
SYMI’を記憶する。次に、第三項の数値をブロック
203に’EQU’命令で定義されるシンボルの型をブ
ロック202に記憶する。
行番号80で示されている行406では、第二項に記述
されている命令のオペランドとして’SYMI’が記述
されているので第3図のブロック301にシンボル名’
SYMI’ 、ブロック302に型を記憶する。型は、
命令により決定可能である。
次に、第1図、第2図〜第4図の動作処理を、第5図、
第6図のフロー図を用いて説明する。
第5図は、本実施例の定義シンボル・テーブル及び参照
シンボル・テーブルの作成する動作処理を示すフロー図
である。この処理に先立って、まず磁気ディスク101
に格納されている言語処理プログラムを、主記憶装置1
03にロードする。
次に磁気ディスク101に格納されているソース・プロ
グラムのファイル名を指定すると言語処理プログラムは
、ソース・プログラム・ファイルをオープンして言語処
理を開始する。第5図、第6図によりこの言語処理の中
で、本発明に関連した処理のみだけを説明する。
まず、第5図の処理1のステップ501で開いたソース
・プログラムがファイルの最後までいったことを示すE
OFコードであるかを確認する。
EOFであると判断すると、処理1を終了して第6図の
処理2に移行する。EOFでなければ、ステップ502
で一文を主記憶装置103に内に読み込む。次にステッ
プ503で読み込まれた一文中のシンボルの有無を確認
する。シンボルがある場合は、それがシンボル定義文か
をステップ504で判断し、定義文であればステップ5
05で第2図の定義シンボル・テーブルに登録する。取
り出した一文が参照文であればステップ506で、主記
憶装置103内の参照シンボル・テーブル301に同じ
シンボル名があるかを探索する。ない場合は、ステップ
507で参照シンボル・テーブルに登録する。この処理
をソース・プログラムの終了0 まで繰りかえす。
次に第6図により、未定義シンボル・テーブルを作成す
る処理2の動作を説明する。ステップ601.602で
、第5図の処理1により作成された定義シンボル・テー
ブル・ファイルと参照シンボル・テーブル・ファイルを
オープンする。ステップ603で参照シンボル・テーブ
ルがEOFかを判断する。EOFであれば処理2は完了
である。EOFでなければステップ605で参照シンボ
ルを取り出す。次に取り出した参照シンボルが定義シン
ボル・テーブルにあるかを比較する処理に移る。ステッ
プ605では、定義シンボル・テーブルがEOFかを判
断する。EOFであれば、比較するシンボルがないとし
て、取り出した参照シンボルを第7図の未定義シンボル
・ファイルに登録する。EOFでなければステップ60
6で定義シンボルを1つとり出し、ステップ607で参
照シンボル名と比較する。同一でなければ、605に戻
り次の定義シンボルを1つとり出し、同様に比較を続け
る。同一であれば、そのシンボルは定義されていると判
断し、ステップ803に戻る。
第7図は未定義シンボル・ファイルの例である。
この例では、未定義シンボルをEXTRN宜言文内に記
述した形で出力したものである。
第8図は、本発明の他の実施例のシンボル・テーブルを
表したブロック図、第9図は本実施例の動作を表したフ
ロー図である。本実施例では、第1図の構成図を元に、
ソース・プログラム内て使用されたシンボルを1つのシ
ンボル・テーブルに出力し、そのシンボルが定義された
か参照されたかをフラグで記憶することにより、本発明
を実現している。
第8図は本実施例のシンボル・テーブルで前実施例と同
様、主記憶装置103内に作成される。
ブロック801はシンボル名を記憶する領域で8バイト
が確保される。ブロック802は、シンボルのオブジェ
クトを記憶する領域2フロツム803は定義フラグであ
り、ソース・プログラム内でシンボルが定義されていた
ら1を立てる。ブロック804は参照フラグであり、ソ
ース・プログラム内でシンボルが参照されていたら1を
立てる。ブロック805は、シンボルの型を記憶する領
域である。
次に、第9図を用いて、本実施例の動作を説明する。
ステップ901で、ソース・ファイルがEOFかを判断
する。EOFであれば、処理lを終了して、処理2に移
行する。EOFでなければステップ902で一文を主記
憶装置103に読み込む。
次に、ステップ903で読み込まれた一文中のシンボル
の有無を解析する。シンボルがある場合は、ステップ9
04で主記憶装置103内に作成されたシンボル・テー
ブル内に同じ名前があるかを探索する。なければステッ
プ905でシンボル・テーブル801に名前を登録する
。次にステップ906で、とり出した文がシンボル定義
文かを判断する。定義文であるかどうかは、第4図で説
明したように定義文である事を示す文字列の存在の有無
で判断する。定義文である場合、ステップ907で定義
フラグに1を立てる。定義文でない3− 場合、ステップ908で参照フラグが0かを見て、0で
あればステップ909で参照フラグに1を立てる。この
処理を文の終了まで繰り返しシンボル・テーブルを作成
する。
次の、このシンボル・テーブルより未定義シンボル・フ
ァイルを作成する。未定義シンボルは、シンボル・テー
ブルの定義フラグがOで、参照フラグがlのシンボルで
あるのでそれらのシンボルを検出し、前の実施例と同様
に新しいファイルを作成する。
〔発明の効果〕
以上説明したように本発明は、ソース・モジュール内で
未定義であるシンボルだけを列挙したファイルを生皮す
ることにより、ソース・モジュール作成時に記述しなけ
ればならない、外部モジュール定義シンボルの参照宣言
文を簡単に作成できるという効果を有する。
4、
【図面の簡単な説明】
第1図は本発明の一実施例の動作環境を表す構承4− 成因、第2図および第3図は、第1図の103内の領域
のシンボル・チーフルでそれぞれ定義シンボル・テーブ
ルおよび参照シンボル・テーブル図、第4図はソース・
プログラム例を示したブロック図、第5図、第6図は第
1図の実施例の処理1゜2の動作を示すフロー図、第7
図は第1図の101に出力された未定義シンボル・ファ
イル、第8図は本発明の他の実施例のシンボル・テーブ
ル、第9図は他の実施例の動作を示すフロー図である。 101・・・・・・補助記憶装置、102・・・・・・
中央演算処理装置、103・・・・・・主記憶装置、1
04・・・・・・オペレーティング・システム、105
・・・・・・キーボード、106・・・・・・デイスプ
レィ。

Claims (1)

    【特許請求の範囲】
  1. プログラム言語で記述されたソース・プログラムを機械
    語に変換する言語処理システムにおいて、該ソース・プ
    ログラム内で定義されたシンボルを記憶する第一の記憶
    手段と、該シンボルが該ソース・プログラム内でシンボ
    ル定義文以外で使用されたことを記憶する第二の記憶手
    段と、前記第一の記憶手段により記憶されたシンボルと
    前記第二の記憶手段により記憶されたシンボルを比較す
    る手段で、この比較手段により前記第二の記憶手段に記
    憶されたシンボルであって前記第一の記憶手段にないシ
    ンボルのみを外部記憶装置内のファイルに出力する手段
    とを具備することを特徴とする言語処理システムのシン
    ボル処理方式。
JP32689689A 1989-12-15 1989-12-15 言語処理システムのシンボル処理方式 Pending JPH03186933A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32689689A JPH03186933A (ja) 1989-12-15 1989-12-15 言語処理システムのシンボル処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32689689A JPH03186933A (ja) 1989-12-15 1989-12-15 言語処理システムのシンボル処理方式

Publications (1)

Publication Number Publication Date
JPH03186933A true JPH03186933A (ja) 1991-08-14

Family

ID=18192958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32689689A Pending JPH03186933A (ja) 1989-12-15 1989-12-15 言語処理システムのシンボル処理方式

Country Status (1)

Country Link
JP (1) JPH03186933A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07114459A (ja) * 1993-10-18 1995-05-02 Nec Corp 未定義データ抽出・表示方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07114459A (ja) * 1993-10-18 1995-05-02 Nec Corp 未定義データ抽出・表示方式

Similar Documents

Publication Publication Date Title
US5701487A (en) Method and apparatus for displaying locations of errors detected inside software macro calls
US5956510A (en) Apparatus and method for revising computer program code
JPS6288033A (ja) ソフトウエアプログラムを生成するための装置及びその方法
JPH0721033A (ja) 言語処理装置及びその方法
JP3110367B2 (ja) ソースコンバータの処理方法及びソースコンバータ処理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP3251203B2 (ja) Jclプログラム変換装置、jclプログラム変換方法、および、記録媒体
JPH03186933A (ja) 言語処理システムのシンボル処理方式
JPH0512034A (ja) 機械で読取り可能な情報の翻訳を可能にする方法
JP2827724B2 (ja) プログラムデバッグ処理方法
JP3003459B2 (ja) プログラム作成支援装置
JPH07105014A (ja) 言語処理システムのシンボル処理方式
JP2701781B2 (ja) 文書編集装置
JP3305782B2 (ja) ソフトウェア標準化方法およびソフトウェア生産物の解析方法
JP3044953B2 (ja) 言語処理システムのシンボル処理方式
JPH06266562A (ja) オブジェクト指向言語処理システムにおける目的コードサイズ最適化方式
JPH07141165A (ja) 情報処理装置
JP2000276344A (ja) オブジェクトを利用したプログラム作成システムおよびそのプログラム作成方法
JPS63269229A (ja) 文字列操作系命令コンパイル処理方式
Libes et al. An Object-Oriented Tcl/Tk Binding for Interpreted Control of the NIST EXPRESS Toolkit in the NIST STEP Application Protocol Development Environment
JPH0495139A (ja) 言語処理プログラムのクロスリファレンス出力方式
JPH08212188A (ja) 原因・結果グラフ作成装置及び文種分類装置
JPH01205331A (ja) 大規模プログラムリンク方式
JPH06282424A (ja) プログラム設計書の自動作成装置
JPH06236283A (ja) 言語処理システム
Weight et al. A Microcode Compiler That Runs on the IBM AT and Supports Cascadable Microcomputers. Part 2