JPH03126133A - コンパイラ処理方法 - Google Patents

コンパイラ処理方法

Info

Publication number
JPH03126133A
JPH03126133A JP1265503A JP26550389A JPH03126133A JP H03126133 A JPH03126133 A JP H03126133A JP 1265503 A JP1265503 A JP 1265503A JP 26550389 A JP26550389 A JP 26550389A JP H03126133 A JPH03126133 A JP H03126133A
Authority
JP
Japan
Prior art keywords
node
array
representing
attribute
processing
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
JP1265503A
Other languages
English (en)
Inventor
Akiyoshi Wakaya
若谷 彰良
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP1265503A priority Critical patent/JPH03126133A/ja
Publication of JPH03126133A publication Critical patent/JPH03126133A/ja
Priority to US08/098,162 priority patent/US5404531A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、コンパイラ処理方法に関するものである。
〔従来の技術] コンパイラ処理とは、高級プログラム言語で記述された
原始プログラムを機械語やアセンブラで記述された目的
プログラムに変換するプログラム変換処理であり、一般
に字句解析、構文解析、意味解析、最適化、コード生成
の各処理からなる。
字句解析とは、原始プログラムを読み込み、定数。
予約語7区切り記号などのプログラムの基本構成要素に
分解する処理である。また構文解析とは、字句解析の結
果からプログラムを構成する個々の文が文法的に正しい
かどうかをi1認し、文法に従ってコード生成に必要な
各種のテーブルや中間言語の生成を行う処理であって、
インタプリタでは最終処理となっている。コード生成と
は、構文解析の結果である中間言語と記憶領域の割当と
の情報から、目的のプログラムを生成する処理である。
最適化とは、生成される目的プログラムの実行時間の短
縮および目的プログラムが占める記憶領域の縮少を図る
処理である。
一般に構文解析では、最適化処理を効率良く行うために
、中間言語として木構造などのリスト構造が用いられる
。リスト構造は動的にノードの付は替えを行えるので、
コードの移動などの処理が比較的容易であり、プログラ
ムの最適化が容易に行えるからである。しかし、このリ
スト構造を用いた場合には、最適化処理の実行時にオペ
レーティングシステムにシステムコールしてメモリの記
憶領域を随時要求するので、カーネルコールによる処理
時間の増大や、コンパイル処理の実行時に生じるメモリ
の消費および解放によってフラグメンテーションが発生
するなどの問題がある。
このような問題を回避するためには、静的な構造である
配列をできるだけ利用することが望まれる。すなわち、
配列を用いた場合には、メモリ内には予めコンパイラ処
理のための記憶領域が割り当てられ、この記憶領域はコ
ンパイラが自由に用いることができるので、前述のカー
ネルコールの必要もなく、さらにフラグメンテーション
の問題も生じない。
一方、複数のプロセッサを有する並列計算機のために用
いられる並列処理言語には、演算部分の記述とデータ転
送部分の記述とがある。データ転送部分が陽に記述され
ていないような並列処理言語においても、その処理系に
おいて結果的にはデータ転送部分が生成されることにな
る。すなわち、複数のプロセッサを存する並列計算機で
は、プロセッサ間のデータのやりとりの必要性からデー
タ転送は必須である。
並列処理における全処理時間P lxmcは、同様の処
理を逐次処理で行った場合の処理時間S□、Cと、並列
度Nと、データ転送時間Tと、並列処理の起動時間Pと
により、 P (、Iac= P 十S t++*c/ N 十T
     =’  (1)と表される。この第(1)式
から、並列処理の効率化のためにはデータ転送時間Tの
低減が必要であることが理解される。
このデータ転送時間Tの低減を図る一方法として、デー
タ転送部分の処理を、プロセッサがバスを使用しないで
内部演算を行っている期間に、DMA (Direct
 Memory Access)転送により行うことに
より、演算部分の処理とデータ転送部分の処理とを並行
して行わせることが考えられる。そのためには、上記最
適化処理において、データ転送部分のコードを演算部分
のコードの前に移動し、DMA転送の起動のためのコー
ドを生成する必要がある。このようなコードの移動は中
間言語を配列により記述した場合には困難となる。
〔発明が解決しようとする課題〕
すなわち、従来のコンパイラ処理方法では、動的に生成
されるデータ構造であるリスト構造を用いると処理時間
およびメモリ消費のオーバヘッドが生じ、また静的なデ
ータ構造である配列を用いると特にコードの移動が生じ
るような並列処理における最適化処理が困難となるとい
う問題があっこの発明の目的は、上述の技術的課題を解
決し、必要な記憶領域が小さく、また最適化処理が容易
なコンパイラ処理方法を提供することである。
〔課題を解決するための手段〕
請求項(1)のコンパイラ処理方法は、原始プログラム
を中間言語に変換し、この中間言語に最適化処理を施し
て目的プログラムを生成させるコンパイラ処理方法であ
って、 原始プログラムを中間言語に変換する構文解析処理にお
いて、前記最適化処理でコードの移動が行われるマクロ
部分の記述をリスト構造で表し、前記マクロ部分を構成
する細部の記述を配列で表すとともに、前記リスト構造
において各マクロ部分を表す各構成要素の属性が備える
ポインタにより各マクロ部分の細部の記述に対応した前
記配列を指示することを特徴とする 請求項(2)のコンパイラ処理方法は、前記リスト構造
の構成要素として、演算実行を表すEノードとデータ転
送を表すTノードとを含み、前記Eノードはその部分構
造としてループ演算を表すLOノードと非ループ演算を
表すNLノードとを有し、前記Tノードはその部分構造
として送信を表すSノードと受信を表すRノードとを存
し、前記Eノードと前記Tノードとを順序接続した解析
構造を後段から前段へ移動検索し、前記Tノードの部分
構造の前記Sノードの属性が指示する配列中の代入命令
のソースオペランドが、このTノードよりも前段の前記
Eノードの部分構造の前記LOノードの属性のポインタ
が指示する配列中のストア命令のデスティネーションオ
ペランドであって、しかも前記LOノードよりも後段の
前記NLノードの属性が指示する配列中のストア命令の
デスティネーションオペランドに含まれておらず、かつ
、前記LOノードの実行範囲が前記Tノードの実行範囲
と等しい場合に、前記LOノードの属性が指示する配列
中のストア命令を、その実行とともにデータ転送の指示
のための転送信号を発生するシグナル付ストア命令に変
え、前記Tノードを前記転送信号の発生に同期してデー
タの転送を行うTSノードに変えて、このTSノードを
前記Eノードよりも前段に移動することを特徴とする。
〔作用〕
請求項(1)のコンパイラ処理方法によれば、構文解析
処理において、原始プログラムの記述のマクロな部分を
動的な構造であるリスト構造で表し、その細部を配列で
表した中間言語が生成される。
リトス構造を構成する構成要素は、属性として、その細
部の記述に対応した配列を指示するポインタを備えてお
り、これにより、リスト構造により規定される順序での
演算が行われることになる。
したがって、演算の順序の変更、すなわちコードの移動
は動的な構造であるリスト構造の変換により達成される
ので、構文解析処理後の最適化処理では、コードの移動
を容易に実現することができる。このように、最適化処
理が良好に行われるようになるとともに、演算の記述の
細部を配列により表現したことにより、コンパイラ処理
の実行時に必要な記憶領域を小さくすることができるよ
うになる。
請求項(2)のコンパイラ処理方法は、リスト構造がそ
の構成要素として演算実行を表すEノードと、データ転
送を表すTノードとを含み、演算実行時のデスティネー
ションオペランドがデータ転送のソースオペランドであ
る場合において、データ転送処理と演算実行とを並列処
理として行わせようとする方法である。すなわち、この
場合には、演算実行前にはデータ転送を行うことができ
ないので、演算実行後に転送信号を発生させるようにし
て、この転送信号に同期して演算終了後のデータから順
にデータ転送を行わせるようにすれば、演算実行とデー
タ転送とを並行して行わせることができる。
このため、構文解析処理後の最適化処理においては、E
ノードとTノードとを順序接続した解析構造を後段から
前段へ移動検索し、TノードをEノードの前段に移動す
る。このとき、Tノードを転送信号を受けてデータ転送
を行う転送演算を表すTSノードに変換する。これとと
もに、Eノードの部分構造であってループ演算を表すL
Oノーードが有する属性のポインタが指示する配列中の
ストア命令を、ストアとともに転送信号を発生するシグ
ナル付ストア命令に変換する。このようにして、Eノー
ドに先立ってTSノードの処理が行われ、たとえばDM
Aコントローラが起動されて、DMA転送などによるデ
ータ転送が可能な状態となった後に、EノードのLOノ
ード、すなわちループ演算が行われ、このループ演算に
おけるシグナル付ストア命令の実行により転送信号が導
出されると、この転送信号に同期してデータの転送が行
われることとなる。このようにして、データ転送のソー
スオペランドと、演算実行のデステネーションオペラン
ドとが一致する場合にも、2つの処理を並行して行わせ
ることができるようになる。
ただし、このような処理が可能であるためには、LOノ
ードよりも後段にあって非ループ演算を表すNLノード
の属性が指示する配列中のストア命令のデスティネーシ
ョンオペランドが、上記データ転送のソースオペランド
に一致せず、またL0ノードの実行範囲とTノードの実
行範囲とが等しくなっている必要がある。すなわち、こ
れらの条件が満たされない場合には、特定の範囲のデー
タの転送を見合わせたりするなどの複雑な処理が必要と
なり、実用的でないという問題が生じる。
〔実施例〕
第1図はこの発明の一実施例のコンパイラ処理方法にお
けるメモリ構造を示す説明図である。原始プログラムと
しては、第2図(1)に示すFORTRANにより記述
されたプログラムを想定する。
この原始プログラムはdoループを用いて記述された演
算部1)と、配列Cを配列すに転送させるデータ転送部
12とを含む0図中”transfer(c−+b)”
は、配列Cを配列すに転送することを表す擬像的な命令
である。
このような原始プログラムは、たとえば第2図(2)に
示すようにデータ転送部12を演算部1)の処理の前に
移動し、このデータ転送部12の処理をDMA転送によ
り行うとともに、演算部1)の処理をプロセッサで並行
して行わせるようにすれば、処理効率が向上する。この
実施例では、このようなプログラムの変換がコンパイラ
処理における最適化処理において行われる。
このようなコードの移動を実現するために、原始プログ
ラムを中間言語に変換する構文解析処理では、演算部1
)およびデータ転送部12などのマクロな演算の記述を
第1図図示のようなリスト構造21により表現するよう
にしている。リスト構造21は個々のマクロな演算を表
すエレメンートM1〜M、、からなり、たとえばエレメ
ントM1は演算項目名■1.第1.第2のポインタP+
1lIP8.、および属性B1とを含む、他のエレメン
トも同様な構成を有している。第1図にはコードの移動
が行われた後の状態が示されており、データ転送部12
に対応したニレメン)Mgは演算部1)に対応したエレ
メントM、よりも前段の処理となっている。
個々のマクロな演算を表すエレメントM + ”” M
 −の細部の演算は配列22として表現される。たとえ
ば、エレメントMlの細部は配列部分Dtで表現され、
エレメントM2の属性B2におけるポインタが配列部分
り、を指示することにより、エレメントM、に対応した
データ転送部12に対応する中間言語とすることができ
る。
各エレメントM、〜Mllの第1のポインタPオ。
〜PR+1 はそれぞれその前段のエレメントMI〜M
、−1の各第1のポインタP In 1 ”’ P (
*−1)+ 1を指示しており、演算の開始部分の検索
のために用いられる。すなわちヌルコード(第1図では
斜線で示されている。)が代入されている演算開始(ス
タート)を表すエレメントMIの検索が、この第1のポ
インタにより行われる。
また各エレメントMI〜Mll−,の各第2のポインタ
P8,8〜P (*−1)+オはそれぞれその後段のエ
レメントM2〜M1)の各第2のポインタP8,2〜P
 II+ Rを指示しており、この第2のポインタによ
り演算の実行順序が規定される。そしてこの演算の実行
の終了点はヌルコードが代入されているエレメントM、
である。
上述のようにこの実施例では、マクロ部分をすスト構造
で記述しているので、コードの移動(演算、データ転送
の順序の変更)は各エレメントにおける第1.第2のポ
インタの変更により容易に行うことができ、このとき各
エレメントの属性でその細部の演算の記述を表す配列を
指示するようにしておけば、コードの移動が達成された
ことになる。この場合、配列22は静的な構造であるの
で、コンパイラ処理において必要な記憶領域がコンパク
トになり、結果としてコンパクトでかつコードの移動が
容易に行えるコンパイラ処理が実現される。
第3図はこの発明の第2実施例のコンパイラ処理におけ
るメモリ構造を簡略化して示す説明図である。この実施
例では、第4図(1)に示される原始プログラムを第4
図(2)に示されるプログラムに最適化した目的プログ
ラムを得るようにしたコンパイラ処理が実現される。す
なわち、doループ31において代入演算が行われる配
列a (i)のデータをその後にtransfer命令
32により転送させる処理を表した第4図(1)の原始
プログラムを、データ転送をDMA転送で行うとともに
dO小ループ演算処理をプロセッサにおいて並行して行
わせるために、transfer命令をdoループの前
段にコード移動させるようにしている。
この際、transfer命令により転送される配列a
 (i)のデータはその後のdO小ループより代入処理
が行われるデータであるので、この代入処理に先立って
データの転送を行うことができない。
このため、代入処理とともに転送信号を発生させるよう
に、代入命令a(i)=xxxをシグナル付代入命令a
(+) = X X X with signalに変
更し、さらに転送命令transfer(a→b)をシ
グナル付転送命令transfer(a=b) aft
er signalに変更して、代入処理とともに発生
される転送信号に同期して代入されたデータから順にD
MA転送を行わせるようにしている。第4図(2)にお
いて、シグナル付転送命令32a、doループ31aは
それぞれ、第4図(1)のtransfer命令32.
doループ31に対応する。
第3図(1)にはコードの移動の前(すなわち第4図(
1))の原始プログラムに対応したリスト構造41、お
よびその細部の記述を表す配列42が示されている。こ
のリスト構造41は上述の第1図に示されたリスト構造
21を構成するエレメントと同様の構成の複数のエレメ
ントからなり、データ演算の実行を表すEノードのエレ
メントMEと、データ転送を表すTノードのエレメント
MTとを含む。
Eノードはループ演算を表すLOノードとNLノードと
に分類され、Eノードのエレメントの属性BEによりL
OノードのエレメントMLが指示されている。またTノ
ードは送信を表すSノードと受信を表すRノードとに分
類され、TノートのエレメントMTの属性BTは、Sノ
ードのニレメン)MSを指示している。MNはNLノー
ドのエレメント、MRはRノードのエレメントである。
各エレメントは、演算開始を示すエレメントを検索する
ための第1のポインタPK−I +  P?+l rP
L、I 、  PM、I +  Ps++ 、  Pm
、+ と、演算の実行順序を規定する第2のポインタP
t*M r  P t*RgP L+1 +  P M
+! *  P Sr1 *  P l+1とを備えて
いる。
そして、エレメントML、MN、MS、MRの各属性B
L、BN、BS、BRは、それぞれの演算の細部を記述
した配列部分DL、 DN、 DS。
DRを指示している。
コンパイラ処理における構文解析によって、原始プログ
ラムはまずこのようなリスト構造41および配列42に
より表現され、この後の最適化処理において上記第4図
(1)から第4図(2)へのプログラムの変換に対応し
たコードの移動が行われる。
このコードの移動後のメモリの構成は第3図(2)に示
されている。すなわち、データ演算を表すEノードのエ
レメントMEの前段に、DMA転送によるデータ転送を
表すTノードに代えてシグナル付データ転送を表すTS
ノードとしたエレメントMTSがコード移動されている
。そして、LOノードの属性により指示される配列DL
において、代入を表すストア(s tore)命令が、
配列a(i)へのデータの代入に伴って転送信号を発生
させるシグナル付ストア命令(s tore  S )
に変換されている。
Pア@1+  P TS+ Rはそれぞれ第1.第2の
ポインタであり、BTSは属性である。
このようなリスト構造41におけるコードの移動および
、配列42における命令の変換によって、第4図(1)
の原始プログラムから第4図(2)図示のプログラムへ
の変換に対応した最適化処理が実現される。
このようなデータ変換が可能であるためには、次のよう
な諸条件が満たされる必要がある。
(1)  Tノードの部分構造であるSノードの属性が
指示する配列中の転送命令のソースオペランドが、Tノ
ードよりも前段のEノードの部分構造のLOノードの属
性が指示する配列中のストア命令のデスティネーション
オペランドであること。
これが異なる場合は、上記第1実施例に従えばよく、シ
グナル付転送を行う必要がない。
(2)Tノードの部分構造であるSノードの属性が指示
する配列中の転送命令のソースオペランドが、Eノード
の部分構造のLOノードよりも後段のNLノードの属性
が指示する配列中のストア命令のデスティネーションオ
ペランドに含まれていないこと。
NLノードでは、一般に配列中の特定の要素のみに代入
などのデータ処理が施され、このようなNLノードのデ
スティネーションオペランドが転送のソースオペランド
に等しい場合には、配列へのデータの代入に伴う転送信
号の発生に同期したDMA転送において、上記特定の配
列要素に関するデータ転送のみを見合わせる必要があり
、処理が複雑となって実用的ではない。
(3)LOノードの実行範囲がTノードの実行範囲に等
しいこと。
具体的には、配列のパラメータの変化の範囲が等しいこ
とを意味し、この範囲が等しくない場合には、代入命令
の実行に伴う転送信号の発生を、成る範囲のパラメータ
に関してのみ行い、残余のパラメータに関しては行わな
いなどの複雑な処理が必要となって実用的でない。
上記(1)〜(3)の条件が満たされる場合には、リス
ト構造の変換が行われ、これにより転送信号により同期
のとれたデータ転送およびデータ演算の並行処理が実現
される。
〔発明の効果〕
請求項(1)のコンパイラ処理方法によれば、コードの
移動は、マクロな演算に対応したリスト構造の変換によ
り達成されるので、構文解析処理後の最適化処理はコー
ドの移動を容易に行って良好に行うことができる。また
、演算の細部は配列により表現されるので、コンパイラ
処理の実行時に必要な記憶領域を小さくすることができ
る。
請求項(2)のコンパイラ処理方法によれば、転送信号
により代入と転送との同期をとることにより、転送のソ
ースオペランドと代入のデスティネーションオペランド
とが等しい場合にも、データ演算とデータ転送との並列
処理が可能となる。
【図面の簡単な説明】
第1図はこの発明の一実施例のコンパイラ処理における
メモリの構造を簡略化して示す説明図、第2図は最適化
処理を説明するための説明図、第3図はこの発明の他の
実施例におけるメモリの構造を簡略化して示す説明図、
第4図は最適化処理を説明するための説明図である。 21.41・・・リスト構造、22.42・・・配列、
M1〜M、、ME、MT、ML、MN、MS。 MR,MTS・・・エレメント、B、−B、、BE。

Claims (2)

    【特許請求の範囲】
  1. (1)原始プログラムを中間言語に変換し、この中間言
    語に最適化処理を施して目的プログラムを生成させるコ
    ンパイラ処理方法であって、 原始プログラムを中間言語に変換する構文解析処理にお
    いて、前記最適化処理でコードの移動が行われるマクロ
    部分の記述をリスト構造で表し、前記マクロ部分を構成
    する細部の記述を配列で表すとともに、前記リスト構造
    において各マクロ部分を表す各構成要素の属性が備える
    ポインタによる各マクロ部分の細部の記述に対応した前
    記配列を指示することを特徴とするコンパイラ処理方法
  2. (2)前記リスト構造の構成要素として、演算実行を表
    すEノードとデータ転送を表すTノードとを含み、前記
    Eノードはその部分構造としてループ演算を表すLOノ
    ードと非ループ演算を表すNLノードとを有し、前記T
    ノードはその部分構造として送信を表すSノードと受信
    を表すRノードとを有し、 前記Eノードと前記Tノードとを順序接続した解析構造
    を後段から前段へ移動検索し、 前記Tノードの部分構造の前記Sノードの属性が指示す
    る配列中の代入命令のソースオペランドが、このTノー
    ドよりも前段の前記Eノードの部分構造の前記LOノー
    ドの属性のポインタが指示する配列中のストア命令のデ
    ステイネーションオペランドであって、しかも前記LO
    ノードよりも後段の前記NLノードの属性が指示する配
    列中のストア命令のデステイネーションオペランドに含
    まれておらず、かつ、前記LOノードの実行範囲が前記
    Tノードの実行範囲と等しい場合に、前記LOノードの
    属性が指示する配列中のストア命令を、その実行ととも
    にデータ転送の指示のための転送信号を発生するシグナ
    ル付ストア命令に変え、前記Tノードを前記転送信号の
    発生に同期してデータの転送を行うTSノードに変えて
    、このTSノードを前記Eノードよりも前段に移動する
    ことを特徴とする請求項(1)記載のコンパイラ処理方
    法。
JP1265503A 1989-10-11 1989-10-11 コンパイラ処理方法 Pending JPH03126133A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1265503A JPH03126133A (ja) 1989-10-11 1989-10-11 コンパイラ処理方法
US08/098,162 US5404531A (en) 1989-10-11 1993-07-28 Method and apparatus for compiler processing on program related to data transfer and calculation, and method of managing memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1265503A JPH03126133A (ja) 1989-10-11 1989-10-11 コンパイラ処理方法

Publications (1)

Publication Number Publication Date
JPH03126133A true JPH03126133A (ja) 1991-05-29

Family

ID=17418074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1265503A Pending JPH03126133A (ja) 1989-10-11 1989-10-11 コンパイラ処理方法

Country Status (2)

Country Link
US (1) US5404531A (ja)
JP (1) JPH03126133A (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2921190B2 (ja) * 1991-07-25 1999-07-19 日本電気株式会社 並列実行方式
JPH07319710A (ja) * 1994-05-20 1995-12-08 Matsushita Electric Ind Co Ltd コンパイル処理方法
US5701487A (en) * 1995-03-27 1997-12-23 Sun Microsystems, Inc. Method and apparatus for displaying locations of errors detected inside software macro calls
US6279152B1 (en) * 1996-10-18 2001-08-21 Fujitsu Limited Apparatus and method for high-speed memory access
US5940620A (en) * 1997-03-07 1999-08-17 Ncr Corporation Compiler with intermediate compiling mechanism
US7337438B1 (en) 2003-03-31 2008-02-26 Applied Micro Circuits Corporation Macros to support structures for an assembler that does not support structures
JP2007272573A (ja) * 2006-03-31 2007-10-18 Hitachi Ltd 低消費電力化メモリ管理方法及びメモリ管理プログラム
WO2019092552A1 (en) 2017-11-09 2019-05-16 nChain Holdings Limited Systems and methods for ensuring correct execution of computer program using a mediator computer system
GB201720946D0 (en) 2017-12-15 2018-01-31 Nchain Holdings Ltd Computer-implemented system and method
KR102738013B1 (ko) 2017-11-09 2024-12-05 엔체인 홀딩스 리미티드 확인 키를 변경으로부터 보호하고 정확성 증명의 유효성을 확인하기 위한 시스템
KR102810891B1 (ko) 2017-12-13 2025-05-20 엔체인 홀딩스 리미티드 암호 자료를 안전하게 공유하기 위한 시스템 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4667290A (en) * 1984-09-10 1987-05-19 501 Philon, Inc. Compilers using a universal intermediate language
US5170465A (en) * 1989-06-30 1992-12-08 Digital Equipment Corporation Incremental-scanning compiler for source-code development system
US5276880A (en) * 1989-12-15 1994-01-04 Siemens Corporate Research, Inc. Method for parsing and representing multi-versioned computer programs, for simultaneous and synchronous processing of the plural parses
US5280613A (en) * 1990-06-25 1994-01-18 Hewlett-Packard Company ANDF installer using the HPcode-Plus compiler intermediate language

Also Published As

Publication number Publication date
US5404531A (en) 1995-04-04

Similar Documents

Publication Publication Date Title
JP2666847B2 (ja) 異種言語間連絡方式
JP2738692B2 (ja) 並列化コンパイル方法
KR101082797B1 (ko) 고수준 언어 코드를 hdl 코드로 변환하는 방법 및 시스템
JP4923240B2 (ja) プログラム処理装置、並列処理プログラム、プログラム処理方法、並列処理コンパイラ、並列処理コンパイラを格納した記録媒体およびマルチプロセッサシステム
CN100562849C (zh) 程序转换器件及方法、程序转换执行器件及转换执行方法
JPH03126133A (ja) コンパイラ処理方法
US20060248262A1 (en) Method and corresponding apparatus for compiling high-level languages into specific processor architectures
US10152307B2 (en) Specifying user defined or translator definitions to use to interpret mnemonics in a computer program
US11556357B1 (en) Systems, media, and methods for identifying loops of or implementing loops for a unit of computation
CN104615496B (zh) 基于多层次异构结构的可重构架构的并行扩展方法
JPH0660047A (ja) マルチプロセッサ処理装置
JPS6022373B2 (ja) プログラマブル制御装置のプログラム変換機構
JP2006515446A (ja) 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム
JP3464019B2 (ja) レジスタの割付方式
JP3218566B2 (ja) インライン展開処理装置
JP2000089966A (ja) 既存プログラムのオブジェクト指向への移行方法
JPH03172958A (ja) 同期処理方法および並列処理システムおよび並列処理方法および並列化プログラム生成装置
JPH05224946A (ja) 入出力並び最適化処理方式
JP2000132405A (ja) インライン展開処理装置及び方法
JPH05265755A (ja) 並列命令実行方式
JPH0561687A (ja) コンパイラの処理方式
JPH0868831A (ja) 半導体試験装置及び半導体試験方法
JPH0296244A (ja) プログラム実行方式
JP2000227861A (ja) デバッグ方法及びデバッグ装置
JP2001337836A (ja) コンパイル装置ならびに同装置におけるメモリ配置の最適化方法