JPH0719210B2 - コンパイル装置 - Google Patents

コンパイル装置

Info

Publication number
JPH0719210B2
JPH0719210B2 JP59059165A JP5916584A JPH0719210B2 JP H0719210 B2 JPH0719210 B2 JP H0719210B2 JP 59059165 A JP59059165 A JP 59059165A JP 5916584 A JP5916584 A JP 5916584A JP H0719210 B2 JPH0719210 B2 JP H0719210B2
Authority
JP
Japan
Prior art keywords
data
program
function
shared
array
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.)
Expired - Lifetime
Application number
JP59059165A
Other languages
English (en)
Other versions
JPS60204039A (ja
Inventor
光一 村田
誘二 辻森
美恵 宇那手
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 JP59059165A priority Critical patent/JPH0719210B2/ja
Publication of JPS60204039A publication Critical patent/JPS60204039A/ja
Publication of JPH0719210B2 publication Critical patent/JPH0719210B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明は、コンパイル装置に関し、特にコンパイラ生成
データ中の重複を排除してデータ量を圧縮するコンパイ
ル装置に関する。
〔技術の背景〕
ソースプログラムのコンパイル処理では、オブジェクト
プログラムとともに多数のデータが一緒に生成される
が、生成されるデータの量は最近増加する傾向にある。
これはオブジェクトプログラムを効率的なものにするた
めのデータが増えていることが原因となっている。
たとえば最近のプログラムに対する高速化要求に伴い、
コンパイル処理の段階で種々の最適化が行われている。
たとえばソースプログラム中の関数演算の被演算子の値
が既知の場合に、コンパイラ処理段階で先行して演算を
実行してしまい、変換表や演算結果を定数として与える
ことが行われる。この場合演算の種類は任意であり、論
理演算や、加減乗除、平方根、三角関係などの演算が適
用可能である。
ところでコンパイラは、プログラム単位でコンパイル処
理を実行することから、データのプログラム単位ごとに
独立して生成される。そのため、各プログラム単位間で
データの重複が生じる可能性がある。
第1図はその説明図であり、R1,R2はプログラム、sin,
cos,tanはプログラム中の関数、A,B,Cはそれぞれの関数
の演算結果のデータ、a,b,cはデータA,B,Cに対するポイ
ンタであり、各プログラム内での相対アドレス値で表さ
れている。図示の例では、プログラムR1,R2のデータ間
に、関数sinおよびtanのコンパイラ生成データA,Cの重
複が生じている。
ここで、コンパイラの生成データについて、sinを例に
説明する。
関数sinは角度を表す数値を入力として、その角度の正
弦値を出力する関数である。関数が呼び出される度に計
算をして値を算出する方法もあるが、同じ角度を入力と
して何度も呼び出される場合に全く同じ演算を何度も行
う必要があり処理効率が悪い。
そこで、入力される値(sinの場合は角度)に対して予
め関数の値を計算したものを配列の形式で保持し、関数
呼出があった場合に、入力された角度(もしくは、入力
された角度に何らかの演算を施したもの)を添字(イン
デックス)として配列をアクセスすることで、高速に関
数の値を求めることが可能となる。
また、入力される値に対する関数の値を全て保持するの
が現実的でない場合などは、演算に使用される定数デー
タを所定量用意する。
この様にコンパイラは、関数の値そのもの、または関数
の値を求めるのに使用される定数データ等を生成する。
このように、従来のコンパイル処理では、コンパイラ出
力データのデータ量が増大していることから大きな記憶
領域が必要となり、また冗長な重複データを含む点でデ
ータ効率が悪いという問題があった。
〔発明の目的および構成〕
本発明の目的は、コンパイラ出力データの冗長性を改善
し、必要とされる記憶領域の大きさを削減する手段を提
供することにあり、その構成は、ソースプログラムをプ
ログラム単位でコンパイル処理してオブジェクトプログ
ラムを生成するコンパイル処理部と,該生成された各オ
ブジェクトプログラム中のデータに共用属性を表す情報
を付与する共用化変換部と、該共用属性情報を付与され
たデータに基づいた重複なしの定数データ配列,及び,
プログラムから該定数データ配列への参照を可能とする
ための該定数データ配列と前記共用属性情報を付与され
たデータとの参照テーブルとを作成する連係編集処理部
とを備えたことを特徴とするものである。
〔発明の実施例〕
以下に、本発明の詳細を実施例にしたがって説明する。
第2図は本発明装置の概要図である。図中、1はソース
プログラム、2はコンパイル処理部、3はオブジェクト
プログラム、4は共用化変換部、5は連係編集部、6は
出力プログラム、7は共用データ配列、8は参照テーブ
ルを表す。
ソースプログラム1は本体プログラムとサブルーチンな
どのように複数のプログラム単位で構成されており、コ
ンパイル処理部2は、それらのプログラム単位を順次コ
ンパイル処理して、オブジェクトプログラム3として出
力する。オブジェクトプログラム3は、便宜上第1図に
示されているようなプログラムP1,P2からなるものとす
る。
コンパイル処理部で出力されるオブジェクトプログラム
は、後の連係処理において、外部参照等を解決するため
に、入力点等を記号で表している。本実施例において
は、関数名も同様に記号で表す。
共用化変換部4は、共用化対象のデータA,B,Cに共用デ
ータ属性を与えるために、演算あるいは関数の名前にコ
ンパイル処理部2では使用されない特別の記号を付加し
てたとえば#記号を用いて次のように表す。
sin→sin# cos→cos# tan→tan# この様に属性を付与することにより、次の連係編集部の
処理において、どのデータが共用化対象データであるか
を容易に認識することができる。
連係編集部5は、共用化変換部4から出力された共用化
対象データを編集して重複なしの共用データ配列7を作
成し、そしてプログラムP1,P2からの参照を可能にする
ための参照テーブル8を作成する。
第3図は、参照テーブル8を用いてプログラムP1,P2
ら共用データ配列7を参照する方法を示している。参照
テーブル8は、プログラムP1,P2中の全ての共用化デー
タの名前sin#,cos#,tan#と共用データ配列7中の対
応するデータのアドレスとを参照させたものである。
プログラムP1,P2からデータを参照する場合には、その
関数または演算の名前に#記号を付加したものをキーと
して参照テーブル8を検索し、対応する名前を見出した
とき、その欄のポインタa′,b′,c′,…から共用デー
タ配列7中の目的のデータを読み出す。
〔発明の効果〕
以上のように、本発明によれば、コンパイラ生成データ
の共用化により、プログラム単位数が多いほど、また共
用化対象データの数が多いほど重複削減効果が上がるた
め、プログラムサイズの圧縮率を高めることができる。
【図面の簡単な説明】
第1図は従来方式によるコンパイラ出力データの説明
図、第2図は本発明装置の概要図、第3図は共用データ
配列の参照方法の説明図である。 図中、1はソースプログラム、2はコンパイル処理部、
3はオブジェクトプログラム、4は共用化変換部、5は
連係編集部、6は出力プログラム、7は共用データ配
列、8は参照テーブルを表す。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 宇那手 美恵 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 昭58−64552(JP,A) 特開 昭59−20051(JP,A) ・「OS−VS連係編集プログラムおよ びローダーVS1リリース7VS2リリー ス3.8」、1982年7月、日本アイ・ビ ー・エム株式会社P.45、49 ・コンピュータ.サイエンス.ライブラ リー「コンパイラ」S.58.6.10、産業 図書P.215−217

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】ソースプログラムをプログラム単位でコン
    パイル処理してオブジェクトプログラムを生成するコン
    パイル処理部と、 該生成された各オブジェクトプログラム中のデータに共
    用属性を表す情報を付与する共用化変換部と、 該共用属性情報を付与されたデータに基づいた重複なし
    の定数データ配列,及び,プログラムから該定数データ
    配列への参照を可能とするための該定数データ配列と前
    記共用属性情報を付与されたデータとの参照テーブルと
    を作成する連係編集処理部と を備えたことを特徴とするコンパイル装置。
JP59059165A 1984-03-27 1984-03-27 コンパイル装置 Expired - Lifetime JPH0719210B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP59059165A JPH0719210B2 (ja) 1984-03-27 1984-03-27 コンパイル装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59059165A JPH0719210B2 (ja) 1984-03-27 1984-03-27 コンパイル装置

Publications (2)

Publication Number Publication Date
JPS60204039A JPS60204039A (ja) 1985-10-15
JPH0719210B2 true JPH0719210B2 (ja) 1995-03-06

Family

ID=13105493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59059165A Expired - Lifetime JPH0719210B2 (ja) 1984-03-27 1984-03-27 コンパイル装置

Country Status (1)

Country Link
JP (1) JPH0719210B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109977067B (zh) * 2019-03-22 2022-12-02 记忆科技(深圳)有限公司 基于异构多核控制器的共享变量分配方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5864552A (ja) * 1981-10-14 1983-04-16 Hitachi Ltd デ−タ処理方式

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
・「OS−VS連係編集プログラムおよびローダーVS1リリース7VS2リリース3.8」、1982年7月、日本アイ・ビー・エム株式会社P.45、49
・コンピュータ.サイエンス.ライブラリー「コンパイラ」S.58.6.10、産業図書P.215−217

Also Published As

Publication number Publication date
JPS60204039A (ja) 1985-10-15

Similar Documents

Publication Publication Date Title
KR20040063837A (ko) 언어 독립 구문으로 매크로를 기록하기 위한 방법 및 시스템
JP3246438B2 (ja) 可変ターゲットコンパイル処理方法、その処理装置、そのプログラムの記憶媒体および変換テーブルの記憶媒体
Reilly Concise encyclopedia of computer science
CN111143038A (zh) Risc-v架构微处理器内核信息模型建模及生成方法
JPH0719210B2 (ja) コンパイル装置
NO952247L (no) System for gjenvinning av relasjoner i en database i tilfelle av feil
US5745749A (en) Method and system of file version clustering of object blocks using a compiler and database and having a predetermined value
CN118227138A (zh) 一种基于无误差变换的计算编译优化实现方法及系统
JP3033091B2 (ja) ディジタル回路データから論理シミュレーション記述言語への自動翻訳方法
Jones A survey of automatic coding techniques for digital computers
Wasserman et al. A balanced view of MUMPS
JP2669387B2 (ja) データベース駆動によるプログラム自動生成システム
Hopper From Programmer to Computer
Metcalf Aspects of FORTRAN in large-scale programming
JPH04167134A (ja) ビット転記方式
CN118036517A (zh) 逻辑综合方法及加法器架构生成方法、装置、设备、介质
Metcalf Talk given at the CERN School of Computing Zinal, Switzerland, 1982
Crawford et al. Engineering a program optimizer
JPH05225283A (ja) ゲート論理生成方法
JPS61128333A (ja) プログラム生成方式
MONICA INTERNATIONAL by DEVELOPMENT INC. 111 BDC CORPORATION
Dodd 5ICSE: Some observations
Murali et al. An integrated framework for quality scientific software development
Berschback Annotated Microprogramming Bibliography
JPS61206041A (ja) プログラム言語の拡張方法