JPH04102125A - アセンブラのシンボル処理方式 - Google Patents

アセンブラのシンボル処理方式

Info

Publication number
JPH04102125A
JPH04102125A JP22019390A JP22019390A JPH04102125A JP H04102125 A JPH04102125 A JP H04102125A JP 22019390 A JP22019390 A JP 22019390A JP 22019390 A JP22019390 A JP 22019390A JP H04102125 A JPH04102125 A JP H04102125A
Authority
JP
Japan
Prior art keywords
symbol
file
assemble
program
files
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
JP22019390A
Other languages
English (en)
Inventor
Harumi Mizuse
水瀬 晴美
Yoshinari Ando
安藤 喜成
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 JP22019390A priority Critical patent/JPH04102125A/ja
Publication of JPH04102125A publication Critical patent/JPH04102125A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、アセンブリ言語で記述されたソース・プログ
ラムを機械語コードに変換(以後「アセンブル」という
)するコンピュータの処理言語であるアセンブラに関し
、特に、複数のファイルに分割されたソース・プログラ
ムを個々のファイル単位でのみ有効な相対アドレスを割
り当てながらアセンブル処理を行い、すべてのファイル
の処理後にコンピュータ上の実行アドレスを割り当てる
というリンク処理を行う、アドレスの再配置が可能ない
わゆるリロケータブル・アセンブラのシンボル処理方式
に関する。
〔従来の技術〕
従来、リロケータブル・アセンブラにおいて、一つのフ
ァイルに格納されたソース・プログラムに記述されたシ
ンボルの処理は、そのファイルのアセンブル時、シンボ
ル定義文によって割り当てらるシンボル名と値を記憶す
るためのシンボル・テーブルを作成し、同一ファイル内
のソース・フログラムでシンボルを使用している文を7
センブルする際にシンボルをシンボル・テーブルに記憶
された値に置き換えるという処理を行っていた。
この処理方式では、一つのファイルのシンボル・テーブ
ルはアセンブル終了時に主記憶装置内より消去されるた
めに、複数のファイルで同一のシンボル名を使用してい
て、かつそれらのシンボルに異なる値が定義されていて
も問題はなかった。これは、ソース・プログラムの規模
の拡大化に伴い、開発TAT短縮の目的からソース・プ
ログラムが複数の人間より作成されるという事実にとっ
て重要なことである。
あるシンボルを複数のファイルて同一の用途により使用
する場合、前記の処理方式ては、各々のファイルでシン
ボル定義文を記述する必要がある。
もしこのシンボルに定義された値に別の値へ変更する必
要が生じた場合、前記の方式によればすべてのファイル
のシンボル定義文を修正しなければならない。ソース・
プログラムの修正時は修正箇所に関係がない文まで触っ
てしまう危険性が伴うが、このような場合、複数のファ
イルを修正しなければならないためにこの危険性が増大
するとともに、修正をし忘れるファイルが出現するとい
ったような恐れがある。この問題を解決するために、ア
センブリ言語に特別の命令を与え、前記のシンボル・テ
ーブルとは異なる記憶領域にシンボル・テーブルを作成
するという手段を用いている。このシンボル・テーブル
は一つのファイルのアセンブルが終了しても破壊されず
、全部のファイルのアセンブル終了後まで記憶する必要
がある。すなわち、個々のファイルの7センブル時には
、そのシンボルを参照している文に対するコードは未解
決のまま残し、すべてのファイルのアセンブル終了後に
行うリンク処理でシンボルの値をコードに格納する。こ
のようなシンボル・テーブルを外部参照テーブルという
この方法であれば、シンボル定義箇所が一つであるため
に、シンボル値の変更が生じても一つのシンボル定義文
を修正すればよい。また、同様にシンボル定義がどのフ
ァイルであっても構わない。
〔発明が解決しようとする課題〕
ソース・プログラムで定義されるシンボルには、アセン
ブル処理によって、シンボル・テーブルに格納された値
が置き換わるといった変数が存在する。これを7センブ
ル時変数という。これは、例えば条件判断文の判断要素
になるというような処理に使用されるために個々のファ
イルの7センブル時にその値が決定されていなければな
らない。
アセンブル時変数は、他のシンボルと同様必ず最初にあ
る値が定義される。一つのファイルで定義されたアセン
ブル時変数は、アセンブル終了後の値を予測できないた
めに、同一の用途でありまた定義される初期値が同じで
あっても他のシンボルのように外部参照テーブルに格納
することができない。
また、個々のファイルの7センブル時に値が決定されて
いなければならないため、そのシンボルを共有するファ
イルの中で、最初に7センブルするファイルでシンボル
定義をしなければならないという制約が生じてしまう。
これらの問題があるため、アセンブル時変数は個々のフ
ァイルにおいてシンボル定義文を記述しなければならな
い。従って前記にあるように、アセンブル時変数に定義
された初期値の別の値への修正時に、シンボル定義文以
外の文が壊れる危険性や、修正し残すファイルが出現す
る危険性が生じるといった問題点がある。
〔課題を解決するための手段〕 本発明のシンボル処理方式は、第一のファイルであるソ
ース・プログラムが格納されたファイルとは別の第二の
ファイルでシンボルを定義し、7センフラかソース・プ
ロクラムのアセンブル処理をする前に第二のファイルの
内容を読み込むという手段を有する。また第一のソース
・プログラムのアセンブル時に作成されるシンボル・テ
ーブルとは異なる領域に、第二のファイルで定義される
シンボルを記憶するという処理手順を有する。
従って、第二のシンボルが記憶されたシンボル・テーブ
ルは、第一のソース・プログラムの複数のファイルのア
センブル処理において、どのファイルからも参照するこ
とができる。
〔実施例1〕 次に、本発明について図面を参照して説明する。
第1図は、本発明の実施例の構成を示した構成図である
キー・ボード101から、シンボルとその初期値及びソ
ース・プログラムを格納した複数のファイル名が記述さ
れたアセンブル初期情報ファイル103を入力すると、
アセンブル初期情報解読部102は指定されたアセンブ
ル初期情報ファイルのシンボル及びシンボル値をアセン
ブル時変数処理部104へ、またソース・ファイル名ヲ
・ノース・プロクラムの編成順に言語処理部本体105
へ入力する。アセンブル時変数処理部102は、入力さ
れたシンボル名と千の値を、コンピュータ本体の主記憶
装置106のアセンブル時変数記憶部107に格納する
。次に言語処理部本体105は、アセンブル初期情報フ
ァイル103で指定されたソース・ファイル108 を
読ミ込ム。ソース・ファイル108に定義されたシンボ
ルは、言語処理部本体105により主記憶装置106の
シンボル記憶部109に格納される。言語処理部本体1
05は、シンボルの種類を4つの属性に識別する手段で
ある命令を有する。4つの属性とはすなわち、アセンブ
ル時変数、外部ファイルで定義されているシンボル、同
一ファイルで定義されたシンボルで他のファイルでの参
照も許可したシンボル、同一ファイル内でのみ参照する
シンボルである。同一ファイル内で定義されている後者
二つのシンボルは、定義文よりその値も格納される。ま
たアセンブル時変数は、アセンブル時変数記憶部107
より値を読み込み初期値として格納される。
二番目のシンボルは個格納部に未解決であることを示す
フラグをセットする。
言語処理部本体は、このシンボル記憶部109を用いて
アセンブル処理を行い、オブジェクト・ファイル110
を出力する。一つのソース・ファイルに対するオブジェ
クト・ファイル110が出力されると、シンボル記憶部
109は主記憶装置106から消去されるため、ソース
・ファイル内で値が変化してもシンボル記憶部が消去さ
れるために初期値のみが初期情報ファイル103の次の
ソース・ファイル処理時に渡される。
以下に第1図の各部分の具体的処理を示す。尚、言語処
理部本体の機械語変換処理部は本発明とは直接関係ない
のでそこでの詳細な処理は省略する。
1) アセンブル初期情報解読部の処理102■ キー
・ボードより入力されたアセンブル初期情報ファイルを
オープンし、その内容を読み込む。情報ファイルに記述
されたシンボル定義部の内容は、アセンブル時変数処理
部へ渡される。
■ 情報ファイルのソース・ファイル名定義部よりソー
ス・フログラムを構成するソース・ファイルを編成順に
配列S[n]格納する。nはファイルの合計数である。
2) アセンブル時変数処理部104 ■ 情報ファイル内のシンボル定義部の内容をシンボル
名AN[n]と値A V [n ]に分け、アセンブル
時変数記憶領域107に格納する。nは定義されたシン
ボルの数である。第2図はアセンブル時変数記憶領域の
構成図である。
3)言語処理本体105 ■ 最初にS [1]に格納されたソース・ファイルを
オーフ゛ンする。
■ ソース・ファイルより一行を読み込み、それがシン
ボル定義文であるかを命令により識別する。シンボル定
義文を前記で示した属性まで識別するために4つの命令
が存在する。例えば第3図に示すように、アセンブル時
変数であることを示す命令31をVARIABLE、同
一ファイルで参照することを示す命令32をEQU、命
令32により定義されたノンポルが外部ファイルで参照
さhることを許可する命令33をPUBLIC1外部フ
ァイルで定義されたシンボルを参照することを宣言する
命令34をEXTERNとある。
■ 読み込んだ一行が上記で示すシンボル定義文であれ
ば、シンボル記憶部109にシンボル名5NCn]とそ
の属性SA[n]を格納する。さらに、第3図で示した
4つの命令により、以下の処理が行われる。第4図は、
この処理により作成されるシンボル記憶部の構成図であ
る。
41−命令31: シンボル名SN[n]と同一シンボ
ル名をアセンブル時変数記 憶部107より探し、そのシン ポルA N E n ]に対応する値AV口nコを読み
込んで、シンボル記 憶部109のシンボルの値を格 納するSV[nコに格納する。
42−命令32: シンボル名S’N[n]に定義され
た値を、シンボル記憶部の S V[n]に格納する。
43−命令33: 外部シンボル記憶部という107と
も109とも異なる記 憶領域に、そのンンポル名ト値 を格納する。
44−命令34: 外部ファイルで定義されたシンボル
であることを示すフラグ をセットする。このシンボルの 値5NIl’n]は空欄のままであ る。
■ ソース・プログラムを機械語に変換する処理を行う
ここで41に定義された値SV[n]は、■以外の他の
命令により置き変わることもある。
〔実施例2〕 次に本発明の第二の実施例を説明する。
言語処理システムには、システム自身が使用するために
シンボルとしてソース・プログラムでシンボルとして定
義できない文字列がある。これを言語処理システムの「
予約語Jという。本実施例のシンボル処理方式では、ア
センブル時変数をシステムの予約語として処理する。
アセンブル時変数は、通常ソース・ブロクラム中で多く
使用しない。この点に着目し、アセンフラ側である決ま
った名前をいくつか指定し、その名前に対して前記実施
例と同様に処理する。
例えばzzzoからZZZ9までの10個のシンボルを
言語処理システム側でアセンブル時変数として予約する
。アセンブル時変数をソース・フログラム中で使用する
場合、第1図の初期情報ファイル103で前記実施例と
同様にその値を定義しアセンブル時変数処理部104に
渡されてアセンブル時変数記憶部107に格納される。
本実施例では、ソース・プログラム中でこのシンボルを
使用する場合に、前記実施例のような命令’v’ARI
ABLEは必要ない。この場合の処理を、第5図のソー
ス・プログラム及び第6図により説明する。第5図のソ
ース・プログラムでは、502行でzzzoというシン
ボルが使用されてし・る。
この時ソース・プログラム中で始めてzzz oが出現
したとすると、言語処理部はzzzoがアセンブル時変
数であることを識別して、アセンブル時変数記憶部10
7のzzzoの値を読み込み、第6図のシンボル記憶部
に格納する。ソース・プログラムの503行で新たにz
zzoの値が定義されていると、第6図のzzzoの値
格納部に503行で定義されている値0005Hが置き
変わる。
本実施例では、言語処理システム側でアセンブル時変数
の初期値を持つことができるという点で有利である。つ
まり、もしアセンブル情報ファイルで初期値が定義され
ていない場合は自動的に0000Hの値が格納されると
いうようなシステムであれば、初期値をOOOOHにし
たい場合にアセンブル情報ファイルでの定義を省略する
ことができる。
〔発明の効果〕
以上説明したように、本発明のシンボル処理方式では、
複数のファイルで共通のアセンブル時変数を一箇所で定
義しているために、アセンブル時変数の初期値の変更時
にソース・プロクラム自身が破壊される可能性かなくな
る。
ソース・プログラムのテバック時に切り換える情報のス
イッチ、例えばアセンブル・リストの出力制御やエラー
・メツセージの出力制御等の目的でアセンブル時変数を
使用する場合、その値を切り換える回数が増大する。こ
のような時にソース・プログラムが格納されているファ
イルとは別のファイルの修正を行うため、ソース・プロ
グラムの保存性といった点で特に有効である。
ここで、アセンブル時変数以外の、複数のファイルで共
有するシンボルである外部参照シンボルすべてを上記の
処理方式に従わせないのは、外部シンボル変数の数がア
センブル時変数に比べてはるかに膨大であるという理由
に基づく。つまり、この共有アセンブル時変数用シンボ
ル・テープはソース・プログラムのアセンブル時に常に
作業領域内に常駐させる必要があるために数が多いと作
業領域が減少するという問題があるためである。
また外部参照シンボルには、リンクによって値が明確に
なるシンボル・ラベル等も含まれるために、アセンブル
以前にその値が決定てぎないと(・った理由もある。
このような点も考慮すると、本発明のシンボル処理方式
は、記憶領域の有効使用といった点からも効果があると
思われる。
【図面の簡単な説明】
第1図は本発明の実施例の構成図、第2図はアセンブル
時変数記憶領域の構成図、第3図はシンプル定義文を属
性まで識別するための命令、第4図はシンボル記憶部の
構成図、第5図はソースプログラム、第6図は実施例2
の動作図である。 101・・・・・・キーボード、102・・・・・・ア
センブル初期状態解読部、103・・・・・・アセンブ
ル初期情報ファイル、104・・・・・・アセンブル時
変数処理部、105・・・・・・言語処理部本体、10
6・・・・・・コンピュータ本体の主記憶装置、107
・・・・・・アセンブル時変数記憶部、108・・・・
・ソースファイル、109・・・・・シンボル記憶部、
110・・・・・・オブジェクトファイル、31・・・
・・・アセンブル時変数であることを示す命令、32・
・・・・・同一ファイルで参照することを示す命令、3
3・・・・・・32により定義されたシンボルが外部フ
ァイルで参照されることを許可する命令、34・・・・
・・外部ファイルで定義されたシンボルを参照すること
を宣言する命令。 代理人 弁理士  内 原   晋 第1口 第2図

Claims (1)

    【特許請求の範囲】
  1. コンピュータ言語の一つであるアセンブリ言語で記述さ
    れ、一つもしくは複数の第一群のファイルに格納された
    第一のプログラムと、第一のプログラムが第一群のファ
    イルのどのような編成により構成されているかを示すプ
    ログラム構成情報ファイルを入力とし、第二の言語で表
    現された第二のプログラムに変換し、第二のプログラム
    を一つの第二のファイルに出力するアセンブラにおいて
    、該プログラム構成情報ファイルに記述された、第一群
    のファイル名以外の文字列をシンボルとして識別する第
    一の識別手段と、該シンボルに割り当てられた文字列と
    値を記憶する第一の記憶手段と、第一のプログラムの第
    一群のファイルのアセンブル時に第一群のファイルで使
    用するシンボルが第一の記憶手段のシンボルと同一であ
    ることを識別する第二の識別手段と、第一のプログラム
    で使用するシンボルを記憶する第二の記憶手段を有し、
    第一のプログラムの複数の第一群のすべてのファイルの
    アセンブル時に第一の記憶手段に記憶されたシンボルの
    文字列と定義された値を読み込む手段を有する事を特徴
    とするアセンブラのシンボル処理方式。
JP22019390A 1990-08-22 1990-08-22 アセンブラのシンボル処理方式 Pending JPH04102125A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22019390A JPH04102125A (ja) 1990-08-22 1990-08-22 アセンブラのシンボル処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22019390A JPH04102125A (ja) 1990-08-22 1990-08-22 アセンブラのシンボル処理方式

Publications (1)

Publication Number Publication Date
JPH04102125A true JPH04102125A (ja) 1992-04-03

Family

ID=16747346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22019390A Pending JPH04102125A (ja) 1990-08-22 1990-08-22 アセンブラのシンボル処理方式

Country Status (1)

Country Link
JP (1) JPH04102125A (ja)

Similar Documents

Publication Publication Date Title
US4912637A (en) Version management tool
US5542079A (en) Data driven processor for reading data from storage to apply prescribed operation in response to operation updating instruction and updating the contents of the storage
JPH04102125A (ja) アセンブラのシンボル処理方式
JP3114199B2 (ja) 言語処理システムのリスト出力方式
JP2635203B2 (ja) プログラム作成装置
JP3428253B2 (ja) シーケンサ
JPH01207824A (ja) モジュール結合制御方式
JP2733692B2 (ja) Rom装置
JPS6140605A (ja) プログラマブルコントロ−ラ
JPH04357531A (ja) 言語処理システム
JPH0334029A (ja) 索引入出力の指定方式
JPH03186933A (ja) 言語処理システムのシンボル処理方式
JP2590083B2 (ja) ソース・プログラム翻訳処理方法
JPH0358135A (ja) 複数のオペランドを修飾するテキストの出力方法
JPS61148536A (ja) 情報処理システム
JPH0196738A (ja) データフロー型計算機のプログラム書換え方式
GB1372430A (en) Process for producing a microprogramme or a soft interpreter for a computer
JPH05233403A (ja) 索引ファイルのキー指定方式
JPH05127920A (ja) 主記憶アクセス最適化処理方法
JPS6326734A (ja) プロトタイプ生成処理方式
JPH01205331A (ja) 大規模プログラムリンク方式
JPH0690669B2 (ja) 文字列操作系命令コンパイル処理方式
Montuelle CUFOM: the CERN Universal Format for Object Modules
JPH02114344A (ja) ガーベジコレクション処理装置
JPS62182921A (ja) 文書フアイル管理方式