JPS60200341A - 文字デ−タの仮想先頭アドレツシング方式 - Google Patents

文字デ−タの仮想先頭アドレツシング方式

Info

Publication number
JPS60200341A
JPS60200341A JP5591484A JP5591484A JPS60200341A JP S60200341 A JPS60200341 A JP S60200341A JP 5591484 A JP5591484 A JP 5591484A JP 5591484 A JP5591484 A JP 5591484A JP S60200341 A JPS60200341 A JP S60200341A
Authority
JP
Japan
Prior art keywords
character data
character
address
virtual
displacement
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
JP5591484A
Other languages
English (en)
Inventor
Sadao Kurosawa
黒沢 定夫
Mie Unate
宇那手 美恵
Yuuji Tsujimori
辻森 誘二
Koichi Murata
光一 村田
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 JP5591484A priority Critical patent/JPS60200341A/ja
Publication of JPS60200341A publication Critical patent/JPS60200341A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 (A)発明の技術分野 本発明は文字データの仮想先頭アドレッシング方式、特
に、例えばFORTRAN等の高級言語を翻訳するにあ
たって、文字部分列に対する先頭アドレスを、文字デー
タが実際にアロケートされている領域のアドレスではな
く、仮想的に定められたアドレスに基づいてめることに
より、文字部分列に高速にアクセスするオブジェクトを
生成可能にした文字データの仮想先頭アドレッシング方
式に関するものである。
(B)従来技術と問題点 第1図ないし第3図は、従来技術の問題点を説明するた
めの図を示す。図中、1は文字データ定義部、2は先頭
アドレス保持部、3は文字データ領域、4は文字部分列
指定部を表す。
例えば、FORTRAN等の高級言語におけるステート
メントでは、文字データを第1図に示したような文字デ
ータ定義部1の形式で定義する。
文字データ定義部1は、Cという名前の文字データを1
0桁分用意すべきことを指示している。これを解釈する
と、コンパイラは、10バイトの文字データ領域3を文
字データCに割付ける。そして、この先頭アドレスCA
DRを、文字データ対応の先頭アドレス保持部2へ記憶
する。
第2図は、上記文字データCについての文字部分列を指
定する例を示しており、第2図に図示しまた文字部分列
指定部4は、文字データCの先頭第1桁目から第5桁目
までの文字部分列を指定している。
第3図に図示した文字部分列指定部4の場合、先頭文字
位置がX桁目で、最終文字位置がY桁目である文字部分
列を指定している。この文字部分列の先頭アドレスをめ
るに当たり、従来、文字データ領域の先頭アドレスCA
DRを基準にして、これに、先頭相対位置を示すXから
マイナス1したものを加えるようにしていた。Xは未知
であるので、必ず実行時にマイナス1する命令を、オブ
ジェクトとして生成する必要があり、そのため文字部分
列に対するアクセスが遅くなるという問題があった。
(C)発明の目的と構成 本発明は上記問題点の解決を図り、文字部分列の先頭ア
ドレスをめるにあたり、マイナス1する演算命令を不要
とし、文字部分列に対するアクセスの高速化を可能とす
ることを目的としている。
上記問題は、一般に人間が先頭を1から数えるのに対し
、計算機は先頭を0として起算することに関連している
。もし、あるアドレスに加えるべき既知の定数が、0ま
たは正の値を持つならば、実際に加算する命令を生成す
ることなく、その既知の定数を、命令の主記憶オペラン
ドにおけるディスプレイスメントとして処理できる。本
発明は、この点に着目してなされたものである。即ち、
本発明の文字データの仮想先頭アドレッシング方式は、
文字部分列を抽出して処理できる言語機能を有する高級
言語を低レベル言語のオブジェクトに変換する処理装置
における文字データのアドレッシング方式において、上
記高級言語における文字データ定義に対し文字データ領
域を割付けると共に該文字データ領域の先頭アドレスよ
りも所定の変位だけ前方のアドレスを当該文字データに
関する仮想先頭アドレスとして定める文字データ・アロ
ケート部と、上記文字データに対応して上記仮想先頭ア
ドレスを記憶する仮想先頭アドレス保持部と、上記高級
言語における文字データに対する処理において該処理が
文字部分列に関するとき上記仮想先頭アドレス保持部が
保持する値と当該文字部分列の文字データ内先頭位置を
示す値と上記変位に関連して定められる0または正の定
数とに基づいて当該文字部分列の先頭アドレスを生成す
る引用アドレス生成部とを備えたことを特徴としている
。以下、図面を参照しつつ、実施例に従って説明する。
(D)発明の実施例 第4図は本発明にいう仮想先頭アドレスを説明するため
の図、第5図は本発明による文字部分列の先頭アドレス
生成を説明する図、第6図は本発明の一実施例構成を示
す。
本発明の場合、例えば第4図に示す如く、文字データ領
域3のアドレスを管理するにあたって、実際に文字デー
タをアロケートした場所の先頭アドレスCADRではな
く、それよりも所定の長さだけ前方に設定された仮想先
頭アドレスV CADRによって管理する。即ち、仮想
先頭アドレス■CADHは、実際の先頭アドレスCAD
Rよりも、仮想変位として図示する長さの分だけ、前を
ポイントするようになっている。仮想変位は、この例で
は「3」になっているが、正の値をとるものであれば、
他の値に予め定めてもよい。仮想先頭アドレスVCAD
Hは、文字データ対応に用意される仮想先頭アドレス保
持部5に記憶される。
第4図図示の如くアロケートされた文字データについて
の文字部分列を引用する場合、第5図図示の如く、その
文字部分列の先頭アドレスを決定する。文字部分列指定
部4の指定に対し、上記仮想先頭アドレスVCADHに
、文字データ内先頭位置を示すXを加え、さらに仮想変
位からマイナス1したものを加えた値を、文字部分列の
先頭アドレスとする。ここで実際には、以下に説明する
ように、仮想変位からマイナス1した値を加えるための
演算命令を生成する必要はない。
例えば、いわゆるRX形式をとるマシン語命令は、第5
図に示す命令6の如く、オペレーションコードOPルジ
スタオペランドR1、およびインデックスX2とベース
B2とディスプレイスメントD2とからなる主記憶オペ
ランドによって構成される。周知の如く、他の大部分の
命令についても、ディスプレイスメントを含んでいる。
ところで、上記仮想変位からマイナス1した値は、必ず
0または正の値をとる定数となる。そこで、仮想変位か
らマイナス1した値を、命令6等におけるディスプレイ
スメントD2とすれば、この値が、命令6の実行時に、
仮想先頭アドレスVCADHにXを加えたものに対して
、自動的に加算されることになる。
なお、引用データとして、文字部分列ではなく、文字デ
ータ全体が指定された場合には、引用アドレスをめるに
あたり、上記仮想変位をそのままディスプレイスメント
とし、仮想先頭アドレス■CADHに自動的に加えられ
るようにすればよい。
第6図は、本発明の一実施例構成を示しており、図中の
符号3および5は第4図に対応している。
また、10はソース・モジュール、11はソース解析部
、12は文字データ・アロケート部、14は文字部分列
認識部、15は変位調整部、16は引用アドレス生成部
、17はオブジェクト出力部、18はオブジェクト・モ
ジュールを表す。
ソース・モジュール10は、例えばFORTRAN等の
高級言語で記述されたプログラムであって、コンパイル
にあたり、ソース解析部11に入力される。ソース解析
部11は、入力データの構文解析をした後、オブジェク
トに展開するための意味解析を行う。第1図に示したよ
うな文字データの定義文が現れると、文字データ・アロ
ケート部12を呼び出す。文字データ・アロケート部1
2は、指定されたデータ長の文字データ領域3をその文
字データに割付けるものである。そして本発明の場合、
文字データ領域3の先頭アドレスを記憶するのではなく
、仮想先頭アドレス保持部5に、上述の如く文字データ
領域3の先頭よりも何バイトか前のアドレスを、当該文
字データに関する仮想先頭アドレスVCADHとして設
定する。
ソース解析部11が、文字データを扱うステートメント
を検出すると、文字部分列認識部14が呼び出されて、
文字部分列認識部14は、文字データの指定が文字部分
列の指定であるか否かを判断する。文字部分列の指定で
ある場合には、変位調整部15によって、文字部分列の
文字データ内における先頭位置を示す情報と、上記仮想
先頭アドレスVCADRから文字データ領域3の先頭ア
ドレスまでの変位である仮想変位からマイナス1した値
とを、引用アドレス生成部16に与える。
一方、文字データが文字データ全体に対する処理変数と
して指定されている場合には、単に仮想変位を変位調整
値とする。
引用アドレス生成部16は、当該文字データに関する仮
想先頭アドレス保持部5の内容をベースとして、文字デ
ータまたは文字部分列の先頭を示す引用アドレスを生成
するものである。文字データの場合には、仮想変位をデ
ィスプレイスメントとする命令を生成する。文字部分列
の場合には、文字部分列の先頭位置を示す値を例えばイ
ンデックス修飾し、仮想変位からマイナス1した値をデ
ィスプレイスメントとする命令を生成する。生成した命
令は、オブジェクト出力部17によって、オブジェクト
・モジュール18として書き出されるが、他の処理につ
いては、従来と同様でよい。
上記実施例においては、文字データの基本単位が1バイ
トである場合を例にしている。もし、例えば文字1桁が
2バイトである場合には、文字部分列への引用アドレス
をめるにあたって、仮想変位からマイナス2した値をデ
ィスプレイスメントとすればよいことは言うまでもない
(E)発明の詳細 な説明した如く、本発明によれば、文字部分列の先頭を
めるために、減算命令を生成する必要はなく、文字部分
列へのアクセスを高速化したオブジェクトを生成するこ
とができる。
【図面の簡単な説明】
第1図ないし第3図は従来技術の問題点を説明するため
の図、第4図は本発明にいう仮想先頭アドレスを説明す
るための図、第5図は本発明による文字部分列の先頭ア
ドレス生成を説明する図、第6図は本発明の一実施例構
成を示す。 図中、3は文字データ領域、4は文字部分列指定部、5
は仮想先頭アドレス保持部、11はソース解析部、12
は文字データ・アロケート部、14は文字部分列認識部
、15は変位調整部、16は引用アドレス生成部を表す
。 特許出願人 富士通株式会社 代理人弁理士 森1)寛(外1名) ’t−4凪

Claims (1)

    【特許請求の範囲】
  1. 文字部分列を抽出して処理できる言語機能を有する高級
    言語を低レベル言語のオブジェクトに変換する処理装置
    におけ条文字データのアドレッシング方式において、上
    記高級言語における文字データ定義に対し文字データ領
    域を割付けると共に該文字データ領域の先頭アドレスよ
    りも所定の変位だけ前方のアドレスを当該文字データに
    関する仮想先頭アドレスとして定める文字データ・アロ
    ケート部と、上記文字データに対応して上記仮想先頭ア
    ドレスを記憶する仮想先頭アドレス保持部と、上記高級
    言語における文字データに対する処理において該処理が
    文字部分列に関するとき上記仮想先頭アドレス保持部が
    保持する値と当該文字部分列の文字データ内先頭位置を
    示す値と上記変位に関連して定められる0または正の定
    数とに基づいて当該文字部分列の先頭アドレスを生成す
    る引用アドレス生成部とを備えたことを特徴とする文字
    データの仮想先頭アドレッシング方式。
JP5591484A 1984-03-23 1984-03-23 文字デ−タの仮想先頭アドレツシング方式 Pending JPS60200341A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5591484A JPS60200341A (ja) 1984-03-23 1984-03-23 文字デ−タの仮想先頭アドレツシング方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5591484A JPS60200341A (ja) 1984-03-23 1984-03-23 文字デ−タの仮想先頭アドレツシング方式

Publications (1)

Publication Number Publication Date
JPS60200341A true JPS60200341A (ja) 1985-10-09

Family

ID=13012375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5591484A Pending JPS60200341A (ja) 1984-03-23 1984-03-23 文字デ−タの仮想先頭アドレツシング方式

Country Status (1)

Country Link
JP (1) JPS60200341A (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5858652A (ja) * 1981-09-30 1983-04-07 Fujitsu Ltd 最適な変位の決定方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5858652A (ja) * 1981-09-30 1983-04-07 Fujitsu Ltd 最適な変位の決定方法

Similar Documents

Publication Publication Date Title
US5230049A (en) Program source code translator
US6363522B1 (en) Method and apparatus for handling exceptions as normal control flow
JP2000035893A (ja) デ―タ処理システムの配列の静的初期化方法、デ―タ処理方法、並びにデ―タ処理システム及びその制御手順をコンピュ―タに実行させるプログラムを記憶したコンピュ―タ読み取り可能な記憶媒体
KR900006008B1 (ko) 스마트 메모리군을 갖는 정보 처리 시스템
US6334212B1 (en) Compiler
Nelson A comparison of PASCAL intermediate languages
US5150474A (en) Method for transferring arguments between object programs by switching address modes according to mode identifying flag
JPH09223023A (ja) コンパイル装置およびコンパイラ
JPS60200341A (ja) 文字デ−タの仮想先頭アドレツシング方式
JPH11345127A (ja) コンパイラ
JP3889227B2 (ja) プログラム実行装置、プログラム実行方法、記録媒体、及び制御プログラム
JPS6234240A (ja) デ−タ割付け方式
JP3464019B2 (ja) レジスタの割付方式
JP4260895B2 (ja) マイクロコントローラにおける複数フォーマットアドレス指定
JP4611245B2 (ja) コンピュータ装置およびストリングクラスのオブジェクトを操作又はアクセスする方法
JPS62205434A (ja) 再帰呼出し可能プログラムのコンパイル処理方式
Sitton et al. The PL/EXUS language and virtual machine
JPH039491B2 (ja)
Walker First-class patterns for Icon
JP2721377B2 (ja) Basicプログラム圧縮方法
Reuss Macro implementation of a structured assembly language
JPH023832A (ja) 書式なし入出力文を含む原始プログラム翻訳方式
JPH02190933A (ja) プログラミング言語翻訳処理装置
Mehrlich et al. Portability: high level language implementation
Wilkes Associative tabular data structures