JPH0357023A - コンパイラの型情報伝播処理方法 - Google Patents

コンパイラの型情報伝播処理方法

Info

Publication number
JPH0357023A
JPH0357023A JP19226689A JP19226689A JPH0357023A JP H0357023 A JPH0357023 A JP H0357023A JP 19226689 A JP19226689 A JP 19226689A JP 19226689 A JP19226689 A JP 19226689A JP H0357023 A JPH0357023 A JP H0357023A
Authority
JP
Japan
Prior art keywords
type information
program
internal
type
area
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
JP19226689A
Other languages
English (en)
Inventor
Hitoshi Owaki
斉 大脇
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 JP19226689A priority Critical patent/JPH0357023A/ja
Publication of JPH0357023A publication Critical patent/JPH0357023A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概要〕 FORTRAN言語のような.親プログラムの型暗黙情
報が内部副プログラムに影響する言語仕様を持つプログ
ラム言語を翻訳する計算機システムにおけるコンパイラ
の型情報伝播処理方法に関し 親プログラムの暗黙の型情報とは別に,内部手続きごと
に暗黙の型情報を保持することにより,処理ロジックの
簡易化と処理の高速化を可能にすることを目的とし. 親プログラムおよび内部副プログラムの各プログラム単
位ごとに.型情報を記憶する領域を確保する処理過程と
.各内部副プログラム用に確保された領域に.親プログ
ラム用に設定された型情報を複写する処理過程と.内部
副プログラム内で型I1)!値の宣言があるとき.その
宣言された型情報を.親プログラムの型情報を複写した
後の領域に設定する処理過程と7各プログラム単位ごと
に各型情報が設定された領域を参照して,型解析を行う
処IlI!過程とを備えるように構成する。
〔産業上の利用分野〕
本発明は,FORTRAN言語のような,親プログラム
の型暗黙情報が内部副プログラムに影響する言語仕様を
持つプログラム言語を翻訳する計算機システムにおける
コンパイラの型情報伝播処理方法に関する。
〔従来の技術〕
第6図は従来技術の例を示す. 例えば,代表的な計g機言語であるFORTRANでは
,IMPLICTT文により.英字で始まるデータオブ
ジェクトの暗黙の型を指定することができる.また9新
しい言語仕様を持つFORT R A Nには,内部手
続きがあり,その中での賄黙の型情報は,IIプログラ
ムの型情報を引き継ぐ。
さらに,内部手続き内で,暗黙の型宣言がなされたとき
には.その暗黙の宣言に従う。内部手続きは.複数個の
記述が可能である。
第6図(イ)において,ソースプログラムl2が.現プ
ログラム(A)から構成されているとする.その中で.
行番号1.00のCONTAINS文は,観プログラム
の本体部と6内部副プログラムとを分離する.この例で
は,内部副プログラム(B)と(C)が記述されている
従来技術では,このようなソースプログラム12におけ
るデータオブジェクトの暗黙の型情報はコンパイラ内の
共通作業領域に,lっの型情報領域70を確保して,そ
こに設定し保持するようにしていた. 〔発明が解決しようとする課題〕 従来技術では,内部副プログラムの有無にかかわりな<
.1つの型情報領域70により,暗黙の型情報を管理し
ているため,観プログラム(A)の本体部を翻訳した後
.内部副プログラム(B)の型解析に移り,型情報を設
定すると.次の内部副プログラム(C)の処理を行う場
合には,親プログラムの型情報の引き継ぎができなくな
るという問題があった.そのため,例えば第6図(口)
に示すように,各内部副プログラムの処理の前後で.あ
らかじめ確保した退避領域7lに,型情報領域70の内
容を退避したり,復元したりする必要があり,処理ロジ
ックが複雑化するとともに.退避/復元のオーバヘンド
が生しるという問題があった. 本発明は上記問題点の解決を図り.fflプログラムの
暗黙の型情報とは別に.内部手続きごとに暗臥の型情報
を保持することにより,処理ロジックの簡易化と処理の
高速化を可能にすることを目的としている. 〔課題を解決するための手段〕 第1図は本発明の+1威例を示す. 第1図(イ)および(口)において.10はCPUおよ
びメモリなどを備えた計算機システムl1は高級言語で
記述されたプログラムを低レベルの計xi言語に翻訳す
るコンパイラ,12はソースプログラム,13A−13
cは型情報を記憶する型情報領域を表す. コンパイラ11における型情報の処理において.処理過
程P1では,!J!プログラム(A)および内部副プロ
グラム(B),(C)の各プログラム単位ごとに,型情
報を記憶する型情報領域+3A〜13Cを確保する。
処理過程P2では,各内部副プログラム用に確保された
型情報領域13B.13Cに,親プログラム用に設定さ
れた型情報領域13A内の型情報を複写する. 処理過程P3では,内部副プログラム内でIMPLIC
IT文などにより型情報の宣言があるとき.その宣言さ
れた型情報を.親プログラムの型情報を複写した後の型
情報領域13Bまたは型情報領域13Cに設定する. 処1′!I!過程P4では,各プログラム単位ごとに.
各型t+ff911が設定された型情報領域13A−1
3Cをと照して,型解析を行う。
〔作用〕 ソースプログラムl2の親プログラム(A)の解析では
,型情報領域13Aを確保し.初期値として.通常の型
暗黙値を入れる.また,内部副プログラム(B), (
C)の解析では,それぞれ型情報領域13B,型情報領
域13Cを確保し,型情報領域13A内の型情報を複写
してそれを初期値とし.新たな型暗黙値の宣言がある場
合には,その領域に暗熟値を設定する. そして,各プログラム単位ごとに,それぞれの型情報領
域13A−13cを参照するので,翻訳するプログラム
単位が変わる場合に.型情報の退避・復元などを行うこ
となく,型情報の管理を簡易化することが可能になる. C丈施例〕 第2図は本発明の一実施例に係る適用システムの例.第
3図は本発明に関連する型情報の例,第4図は本発明の
一実施例処理フロー.第5図は本発明の一実施例による
具体例説明図を示す.本発明は,例えば第2図に示すよ
うな計xiシステムlOに適用可能である.コンパイラ
1lは,ソースプログラム12の構文を解析する構文解
析部20,構文解析結果について意味解析を行う意味解
析部22,意味解析の結果による中間言語について.最
適化の処理を行う最適化部23,最適化された中間言語
からオブジェクトプログラム26を生威ずるオブジェク
ト生威部24などからなる.作業ファイル25は1中間
言語のテキストなどが格納されるファイルである. 本発明は5特に構文解析部20におけるデータオブジェ
クトの暗黙の型についての解析を行う型解析部21に関
連している. 以下,FORTRANプログラムを例に説明する,FO
RTRANでは.データオブジェクトの暗黙の型が.最
初の英字で決められるようになっている.初期値の型は
,AからHまでと○からZまでと¥記号のいずれかで始
まるデータオブジェクトの場合,実数(REALX4)
,IからNまでのいずれかの英字で始まるデータオブジ
ェクトの場合.整数(I NTEGERx4)である.
このような型情報は,IMPLIcIT文により,変更
することができる. このような型情報は.例えば第3図に示すように,各先
頭文字ごとにエントリを持つ型情報領域13により管理
される. この型情報についての処理を.本発明では.例えば第4
図に示す(a)〜(濁のように行う.(a)  ソース
プログラム12の構文解析において,プログラム単位の
先頭かどうかを判定する.プログラム単位の先頭でない
場合,処理(f)へ移る.(b)  プログラム単位の
先頭の場合,型情報を設定するための領域を確保する. (C)  fflプログラムの先頭か,内部副プログラ
ムの先頭かを判定する.vAプログラムの先頭の場合処
理(d)へ移り.内部副プログラムの先頭の場合,処理
(e)へ移る. (d)  in保した型情報領域に,il常の型暗黙値
を初!iJI {aとして設定する.その後,処理(f
)へ移る.(el  内部副プログラムの場合.確保し
た型情報領域に,親プログラムの型情報領域の内容を複
写する. (f)  I M P L I C I T文による型
暗黙値の宣言があるか七′うかを判定する.ない場合,
次の構文解析処理へ移る, (g)  型暗黙値の宣言がある場合,宣言された型情
報を5現在のプログラム単位用の型情報領域に設定する
.その後,次の構文解析処理へ移る.次に.第5図に示
すソースプログラム12の具体例に従って,本発明の実
施例を説明する.このソースプログラムl2における行
番号170目のCONTA I NS文は,これ以降の
プログラムが内部手続きであることを示す宣言文である
.■ 行番号10で,型情報を保持する型情報項域13
Aを確保し,通常の型暗黙値を設定する.■ 行番号2
0.30で宣言された型情報を,型情報領域13Aに設
定する. ■ 行番号160目までに使用されているデータオブジ
ェクトは それぞれの先頭の英字に基づき,型情報領域
13Aを参照して型を確定する.■ 行番号180目で
新たな型情報を保持するための型情報領域13Bを61
保し,ytO型情報領域13Aから型情報を複写する. ■ 行番号l80から行番号210までに使用されてい
るデータオブジェクトは.それぞれの先頭の英字に基づ
き,型情報領域13Bを参照して型を61定する. ■ 行番号220目で新たな型情報を保持するための型
情報領域13Cを確保し.Hの型情報頷域13Aから型
情報を複写する. ■ 行番号行230で宣言された型情報を.型情報領域
13Cに設定する. ■ 行番号240から行番号290までに使用されてい
るデータオブジェクトは.それぞれの先頭の英字に基づ
き,型情報領域13Cを参照して型を確定する。
〔発明の効果〕
以上説明したように,本発明によれば,各プログラム単
位ごとに暗黙の型↑?I報を保持する領域を用意して処
理するので,処理ロジンクを簡単化することができると
ともに,コンパイラの翻訳性能を向上させることができ
るようになる.
【図面の簡単な説明】
第l図は本発明の構戒例, 第2図は本発明の一実施例に係る適用システムの例, 第3図は本発明に関連する型情報の例,第4図は本発明
の一実施例処理フロー 第5図は本発明の一実施例による具体例説明図,第6図
は従来技術の例を示す. 図中,lOは計算機システム,11はコンパイラ.12
はソースプログラム.l3A〜13cは型情報領域,P
1〜P4は処理過程を表す.計算機システム 10 適用システムの例 第 2 図 型 慣 報 の 例 ソースブOグラム ,12 713A 具 体 例 説 明 図

Claims (1)

  1. 【特許請求の範囲】 内部手続きを持ち、型暗黙情報があり、親プログラムの
    型暗黙情報が内部副プログラムに影響する言語仕様を持
    つプログラム言語を翻訳する計算機システムにおけるコ
    ンパイラの型情報伝播処理方法において、 親プログラムおよび内部副プログラムの各プログラム単
    位ごとに、型情報を記憶する領域を確保する処理過程(
    P1)と、 各内部副プログラム用に確保された領域に、親プログラ
    ム用に設定された型情報を複写する処理過程(P2)と
    、 内部副プログラム内で型暗黙値の宣言があるとき、その
    宣言された型情報を、親プログラムの型情報を複写した
    後の領域に設定する処理過程(P3)と、 各プログラム単位ごとに、各型情報が設定された領域を
    参照して、型解析を行う処理過程(P4)とを備えたこ
    とを特徴とするコンパイラの型情報伝播処理方法。
JP19226689A 1989-07-25 1989-07-25 コンパイラの型情報伝播処理方法 Pending JPH0357023A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19226689A JPH0357023A (ja) 1989-07-25 1989-07-25 コンパイラの型情報伝播処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19226689A JPH0357023A (ja) 1989-07-25 1989-07-25 コンパイラの型情報伝播処理方法

Publications (1)

Publication Number Publication Date
JPH0357023A true JPH0357023A (ja) 1991-03-12

Family

ID=16288421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19226689A Pending JPH0357023A (ja) 1989-07-25 1989-07-25 コンパイラの型情報伝播処理方法

Country Status (1)

Country Link
JP (1) JPH0357023A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150139054A (ko) * 2014-06-02 2015-12-11 주식회사 케디엠 공기 압력을 이용한 상지 수지관절 재활운동장치
KR20250144603A (ko) 2024-03-27 2025-10-13 배민형 음압 마사지기

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63273937A (ja) * 1987-05-02 1988-11-11 Nec Corp 複数ハッシュテ−ブルによる名前検索処理方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63273937A (ja) * 1987-05-02 1988-11-11 Nec Corp 複数ハッシュテ−ブルによる名前検索処理方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150139054A (ko) * 2014-06-02 2015-12-11 주식회사 케디엠 공기 압력을 이용한 상지 수지관절 재활운동장치
KR20250144603A (ko) 2024-03-27 2025-10-13 배민형 음압 마사지기

Similar Documents

Publication Publication Date Title
US7516441B2 (en) Method and system for program editing and debugging in a common language runtime environment
US5560009A (en) Generating symbolic debug information by merging translation and compiler debug information
US6317871B1 (en) System for ensuring the accuracy of file structures in a source-to-source computer program translator
JPS6288033A (ja) ソフトウエアプログラムを生成するための装置及びその方法
JPS62164144A (ja) リンクされた制御ブロツクの再配置方法
US20030041318A1 (en) Compiling source code
US5692196A (en) System and method for conditionally compiling a software compilation unit
US5617564A (en) Program source file preprocessing method and apparatus to detect modifications and generate a class of files
US5642514A (en) Method and system for constructing compact executable files by eliminating redundant debugging strings
Burke et al. A practical method for syntactic error diagnosis and recovery
JPH0357023A (ja) コンパイラの型情報伝播処理方法
US5150474A (en) Method for transferring arguments between object programs by switching address modes according to mode identifying flag
US6092092A (en) Gap-based style-run array mechanism
Cimini A declarative validator for GSOS languages
Al-Sharif Functional Level Simulator for Universal AHPL.
JPH08194611A (ja) プログラム修正による影響範囲を解析する装置
EP0803806A2 (en) Data conversion mechanism for computer system
JP2721377B2 (ja) Basicプログラム圧縮方法
Koehler et al. A caching compiler for C
Webby The analysis stage of an IMP-to-PL/1 translator
JPS61148536A (ja) 情報処理システム
CMZ CMZ
JP2002091778A (ja) プログラム変換装置、プログラム変換方法及び記録媒体
Femister Range analysis of object-level code
Bornat Phases and Passes