JPH02270033A - 複数コード系に対応するコンパイル処理方式 - Google Patents

複数コード系に対応するコンパイル処理方式

Info

Publication number
JPH02270033A
JPH02270033A JP9214889A JP9214889A JPH02270033A JP H02270033 A JPH02270033 A JP H02270033A JP 9214889 A JP9214889 A JP 9214889A JP 9214889 A JP9214889 A JP 9214889A JP H02270033 A JPH02270033 A JP H02270033A
Authority
JP
Japan
Prior art keywords
code
correspondence table
processing
code system
systems
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.)
Granted
Application number
JP9214889A
Other languages
English (en)
Other versions
JP2585790B2 (ja
Inventor
Kazuhiko Noba
和彦 野場
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 JP1092148A priority Critical patent/JP2585790B2/ja
Publication of JPH02270033A publication Critical patent/JPH02270033A/ja
Application granted granted Critical
Publication of JP2585790B2 publication Critical patent/JP2585790B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概要〕 原始プログラムを入力し、少なくとも構文解析。
意味解析およびコード生成を含む処理により、目的プロ
グラムを生成するコンパイラを備えた計算機システムに
おける複数コード系に対応するコンパイル処理方式に関
し。
コード系の違いによる処理の切り分けをできるだけ行わ
ないで、異なる複数のコード系の原始プログラムを、共
通な処理論理で翻訳する手段を提供することを目的とし
コンパイル開始時に、原始プログラムのコード系に応じ
て、あるいくつかの特定の文字に対応する2進コードの
対応表を、ある領域に設定する対応表設定処理部を備え
、構文解析、意味解析およびコード生成の処理において
、前記対応表を参照することにより、原始プログラムの
コード系における特定文字の2進コードを、コード系に
依存しない処理論理でもって使用するように構成する。
〔産業上の利用分野〕
本発明は、原始プログラムを入力し、少なくとも構文解
析、意味解析およびコード生成を含む処理により、目的
プログラムを生成するコンパイラを備えた計算機システ
ムにおける複数コード系に対応するコンパイル処理方式
に関する。
近年の計算機システムの多様化に伴い、多(のシステム
のコンパイラを開発する必要が生じている。また、これ
ら異なるシステム間でも、同一の仕様のコンパイラが必
要とされている。
そのためには、ある1つのシステムでコンパイラを作成
し、それを他のシステムへ移植すればよいのであるが、
これらは必ずしも同一のコード系とは限らない、したが
って、開発の負担を軽減するためには、コード系に依存
しない処理論理を持つコンパイラを考慮する必要がある
〔従来の技術〕
第4図に従来技術の例を示す。
一触に、C0BOLやFORTRAN等のコンパイラで
は、第4図に示すように、原始プログラムlOを入力し
、■字句解析、■構文解析、■意味解析、■最適化、■
コード生成を行って、最終的に1機械語命令などからな
る目的プログラム11を出力する。
従来のコンパイラにおける字句解析では、もともと予約
語やコード系のテーブルを持っており。
それらを、コード系の判定処理結果に基づいて置き換え
ることによって、複数のコード系に対応することができ
ていた。
しかし、構文解析、意味解析、コード生成の処理におい
ては、コード系に依存する部分が比較的少ないことから
、コード系に依存する処理が必要になった場合には、現
在のコード系を判定することにより、処理を切り分けて
、コード系ごとのコードの使い分けを行うようにしてい
た。なお、最適化の処理では、一般にコード系に依存す
ることはない。
〔発明が解決しようとする課題〕
すなわち、従来技術では、構文解析、意味解析またはコ
ード生成の処理において2例えばZEROという予約語
をコード化するような場合に、第4図に示すように、コ
ード系の判定を行い、  EBCDICコード系であれ
ば、16進数の“FO”を使用し、ASCIIコード系
であれば、16進数の“30”を使用するというように
、処理論理により、複数のコード系に対応するようにし
ていた。
したがって、処理論理が複雑化し、コンパイラのプログ
ラム規模が大きくなるだけでなく、新たに異なるコード
系の原始プログラムを処理対象とした場合に、各所で処
理論理を変更しなければならないので、その開発負担が
大きいという問題があった。
本発明は上記問題点の解決を図り、コード系の違いによ
る処理の切り分けをできるだけ行わないで、異なる複数
のコード系の原始プログラムを。
共通な処理論理で翻訳する手段を提供することを目的と
している。
〔課題を解決するための手段〕
第1図は本発明の構成例を示す。
第1図において、10はC0BOLやFORTRAN等
の高級言語で記述された原始プログラム。
11はオブジェクト・コードに展開された目的プログラ
ム、12はCPUおよびメモリなどからなる処理装置、
13は計算機言語の翻訳を行うコンパイラ、14はコン
パイラにおける各処理部の起動/制御を行う起動・制御
部、15は対応表設定処理部、16は構文解析を行う構
文解析部、17は高級言語の字句を解釈する字句解析部
、18は構文解析結果に従って意味を解析する意味解析
部。
19は効率的なオブジェクト・コードを生成するための
最適化を行う最適化部、20はオブジェクト・コードを
生成し目的プログラム11を出力するコード生成部、2
1はメモリ上に確保された共通領域、22は特定の文字
とそのコードとの対応関係を記憶する対応表を表す。
本発明では、コンパイラ13における起動・制扉部14
に、対応表設定処理部15が設けられる対応表設定処理
部15は、コンパイル開始時に。
メモリ上に作業域として確保された共通領域zI内に、
原始プログラム10のコード系に応じた対応表22を設
定する。
対応表22は4例えばゼロ、空白、引用符などの特定の
文字が、原始プログラム10のコード系では、各々どの
ような2進コードで表現されるかについての情報を持つ
テーブルである。
起動・制御部14は、コンパイルの各フェーズに応じて
、構文解析部16ないしコード生成部20の各処理部を
、順次、起動する。ここで1本発明では、特に、構文解
析部16.意味解析部I8゜コード生成部20において
2表意定数の処理やパディング文字の処理などのために
、特定の文字のコードを展開する必要があった場合に、
コード系に応じて異なる処理論理を用いることなく、対
応表22における該当する領域を参照することにより、
その特定の文字に対応する2進コードを抽出する。
〔作用〕
通常、コンパイラ13の構文解析部16.意味解析部1
8.コード生成部20は1表意定数の処理やパディング
文字の処理など、コード系に依存する処理を含んでいる
が、それらは字句解析部17による字句解析処理に比べ
ると非常に少ない。
また、処理の切り分けが必要になるコードも限られてい
る。
したがって、構文解析部16.意味解析部18゜コード
生成部20においては、ある特定の文字のコードだけを
意識する必要があるが2本発明では。
これらをあらかじめ共通領域21に対応表22として設
定しておき、この領域における各々の特定の文字に対応
するコードを、各処理部で参照することにより、異なる
コード系に対しても共通の処理論理を用いることができ
るようにする。
その結果、新たに異なるコード系の原始プログラム10
を処理対象とする場合に、処理論理を変更することなく
、対応表設定処理部I5において。
対応表22に設定するコードだけを変更するだけで、対
応することが可能になる。
(実施例〕 第2図は本発明の実施例に係る文字・コード対応表の例
、第3図は本発明の実施例によるコード生成の例を示す
以下、C0BOL言語のコンパイラを例にして。
本発明の詳細な説明する。コンパイラは、  EBCD
ICコード系とASCIIコード系に対応できるものと
する。もちろん2他の言語やコード系についても1本発
明を同様に適用することができる。
C0BOLコンパイラでは、第1図に示す構文解析部1
6.意味解析部1日、コード生成部20において、コー
ド系に関係する処理は少なく、コード系に関係するのは
、主に、以下に示す機能を処理する場合などに限られて
いる。
・表意定数の処理 ZERO,5PACE、QUOTEなどの特定の文字を
表す予約語の処理である。
・パディング文字の処理 転記における空白詰めなど、未使用部分の領域を特定の
文字で埋める処理である。
このような表意定数やパディング文字の処理を行う場合
、コード系ごとに異なる2進コードを使い分ける必要が
あるが、これらのコードを所定の領域にあらかじめ用意
しておき、その領域を参照することにより、最初に一回
だけ行う対応表へのコード設定の処理を除き、処理論理
をコード系に依存しないようにする。
第2図は、各コード系に応じて、特定の文字に対応する
コード情報を持つ対応表22の例を示している。
第2図(イ)は、EBCDICコード系で使用する対応
表22であり、数字(ゼロ)9文字(空白)9文字(引
用符)、・・・に対して、それぞれ。
16進数のFo、40.7F、・・・のコードの対応情
報を持つ。
一方、第2図(ロンは、ASCIIコード系で使用する
対応表22であり、この対応表22では。
数字(ゼロ)1文字(空白)2文字(引用符)。
・・・に対して、それぞれ、16進数の30.20゜2
2、・・・のコードが対応づけられている。
最初に、第2図(イ)に示す対応表22を設定しておく
か、第2図(ロ)に示す対応表22を設定しておくかに
よって、各特定の文字の対応表22内における位置が定
まっているので、共通の処理論理により、EBCDIC
コード系と、ASCIIコード系とで、使用するコード
を使い分けることができる。
例えば、第3図に示すC0BOL原始プログラム30を
コンパイルするとする。
このCoBOL原始プログラム30が、EBCDICコ
ード系で表されているとすると、第2図(イ)に示すよ
うな対応表22を用意する。
rMOVE  5PACE  To  AJは2 Aと
いう領域に空白を転記することを意味する文である。
EBCDICコード系では、対応表22において、空白
が16進数の40であるので、これを参照することによ
り、オブジェクトコード3 ]、 Aのようなコードを
生成する。このオブジェクトコード31Aは、Aの領域
を示すa(at)のアドレスに、0x40の値を持つ1
バイトのコードをムーブする命令である。
一方、C0BOL原始プログラム30が、 ASC11
コード系で表されているとすると、第2図(ロ)に示す
ような対応表22が用いられ、オブジェクトコード31
Bが生成される。この命令では、a(al)のアドレス
に、ASCIIコード系において空白を表すQx20の
値を持つ1バイトのコードをムーブすることを指示して
いる。
なお、オブジェクトコード31A、31Bは。
実際には、2進の機械語命令である。
ここでは、2つのコード系を扱う例について説明したが
、対応表22を拡張または入れ替えることなどにより、
同様に他のコード系にも適用することができる。すなわ
ち、第1図に示す対応表設定処理部15における設定用
の定数の変更等だけで、多くのコード系に対応させるこ
とが可能になる。
C発明の効果〕 以上説明したように3本発明によれば、ある特定の文字
のコードを、あらかじめコンパイラが参照する領域に設
定しておき、コード系に依存する処理においては、この
領域を参照することにより。
コード系に依存しない処理論理とすることができる。
その結果5新たに異なるコード系の原始プログラムを処
理対象とする場合に、処理論理を変更することなく、対
応することができ、異なるコード系のコンパイラについ
て共通に開発するときの開発効率向上に寄与するところ
が大きい。
【図面の簡単な説明】
第1図は本発明の構成例。 第2図は本発明の実施例に係る文字・コード対応表の例
1 第3図は本発明の実施例によるコード生成の例。 第4図は従来技術の例を示す。 図中、10は原始プログラム、11は目的プログラム、
12は処理装置、13はコンパイラ、14は起動・制御
部、15は対応表設定処理部、16は構文解析部、17
は字句解析部、18は意味解析部、19は最適化部、2
0はコード生成部。 21は共通領域、22は対応表を表す。

Claims (1)

  1. 【特許請求の範囲】 原始プログラム(10)を入力し、少なくとも構文解析
    、意味解析およびコード生成を含む処理により、目的プ
    ログラム(11)を生成するコンパイラを備えた計算機
    システムにおいて、 コンパイル開始時に、原始プログラムのコード系に応じ
    て、あるいくつかの特定の文字に対応する2進コードの
    対応表(22)を、ある領域に設定する対応表設定処理
    部(15)を備え、 構文解析、意味解析およびコード生成の処理において、
    前記対応表を参照することにより、原始プログラムのコ
    ード系における特定文字の2進コードを、コード系に依
    存しない処理論理でもって使用するようにしたごとを特
    徴とする複数コード系に対応するコンパイル処理方式。
JP1092148A 1989-04-12 1989-04-12 複数コード系に対応するコンパイル処理方式 Expired - Lifetime JP2585790B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1092148A JP2585790B2 (ja) 1989-04-12 1989-04-12 複数コード系に対応するコンパイル処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1092148A JP2585790B2 (ja) 1989-04-12 1989-04-12 複数コード系に対応するコンパイル処理方式

Publications (2)

Publication Number Publication Date
JPH02270033A true JPH02270033A (ja) 1990-11-05
JP2585790B2 JP2585790B2 (ja) 1997-02-26

Family

ID=14046347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1092148A Expired - Lifetime JP2585790B2 (ja) 1989-04-12 1989-04-12 複数コード系に対応するコンパイル処理方式

Country Status (1)

Country Link
JP (1) JP2585790B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61183743A (ja) * 1985-02-09 1986-08-16 Omron Tateisi Electronics Co コンパイラ

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61183743A (ja) * 1985-02-09 1986-08-16 Omron Tateisi Electronics Co コンパイラ

Also Published As

Publication number Publication date
JP2585790B2 (ja) 1997-02-26

Similar Documents

Publication Publication Date Title
US5956510A (en) Apparatus and method for revising computer program code
KR960035260A (ko) 소프트웨어 매크로 호출내에 검출된 에러의 위치를 표시하기 위한 방법 및 장치
JPH09212356A (ja) インタープリタ言語で記述されたコンピュータ用ソフトウェアの保護システム
JPH02270033A (ja) 複数コード系に対応するコンパイル処理方式
JPH0414144A (ja) コンパイル処理方法
US20040117775A1 (en) Automatic compilation of electronic telecommunications system message generation code
JPH07121379A (ja) 複数言語混在コンパイラ
KR0169909B1 (ko) 목표 프로세서용 어셈블리 코드 생성기를 작성하는 방법
JP2022118310A (ja) コンパイル方法、開発支援装置および制御システム
JPS58114247A (ja) 精度自動拡張方式
JPH0340033A (ja) 呼び出し元のコード系認識処理方式
JPH056278A (ja) Fortranコンパイル処理装置
JPH04323730A (ja) 最適化処理方式
JPH0358136A (ja) 文字コード系の異なるマシンでのコンパイラ動作方式
WO1997007452A1 (en) Programmable compiler
JPH0126091B2 (ja)
JPS63104139A (ja) Cobolソ−スリスト編集方式
JPH02100732A (ja) プログラム文法チェック方式
JPH05150960A (ja) プリコンパイラ
JPH0231236A (ja) コンパイラ
JPH06242958A (ja) コンパイル方式
JPH0244427A (ja) プログラム翻訳変換方式
Zhang et al. Source-to-source conversion based on formal definition
JPS5924348A (ja) コンパイル処理方式
JPH0417028A (ja) プログラム言語の翻訳編集方式