JP2002116917A - オブジェクト指向型プログラミング言語によるソース・プログラムをコンパイルするコンパイラ - Google Patents

オブジェクト指向型プログラミング言語によるソース・プログラムをコンパイルするコンパイラ

Info

Publication number
JP2002116917A
JP2002116917A JP2000305605A JP2000305605A JP2002116917A JP 2002116917 A JP2002116917 A JP 2002116917A JP 2000305605 A JP2000305605 A JP 2000305605A JP 2000305605 A JP2000305605 A JP 2000305605A JP 2002116917 A JP2002116917 A JP 2002116917A
Authority
JP
Japan
Prior art keywords
instruction
class
statement
parallel
execution
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.)
Withdrawn
Application number
JP2000305605A
Other languages
English (en)
Inventor
Takahiro Ishikawa
貴洋 石川
Keishiro Tanaka
啓士郎 田中
Yutaka Yamanaka
豊 山中
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 JP2000305605A priority Critical patent/JP2002116917A/ja
Priority to US09/778,087 priority patent/US20020062478A1/en
Publication of JP2002116917A publication Critical patent/JP2002116917A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions

Abstract

(57)【要約】 【課題】オブジェクト指向型プログラミング言語による
ソースプログラムでも並列処理できるようにコンパイル
する。 【解決手段】並列処理を実現するには、ソースプログラ
ムで指定されたオブジェクト1000の他に、並列化指示文
で指示されたクラス変数又は並列実行対象の実行文に含
まれるクラス型変数のために、当該クラスの並列化処理
用オブジェクト1010,1020を生成しなければならない。
また並列処理終了時には並列化処理用オブジェクトを消
滅させる。そのためコンパイラは、並列実行対象の実行
文又は並列化指示文にクラス型の変数が含まれる場合
に、並列実行対象の実行文又は並列化指示文により並列
化される実行文の前に当該クラスによるオブジェクトの
構築命令ルーチンを呼び出す命令を生成し、並列実行対
象の実行文又は並列化指示文により並列化される実行文
の後にそのクラスによるオブジェクトの消滅命令ルーチ
ンを呼び出す命令を生成する。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、コンパイラに関
し、より詳しくは、オブジェクト指向型プログラミング
言語により書かれたソース・プログラムをコンパイルす
るコンパイラに関する。
【0002】
【従来の技術】Java(Sun Microsystems社の商標)
やC++などのオブジェクト指向型プログラミング言語
は、プログラムの部品化等の理由により多くのプログラ
ム開発で用いられている。また、複数のCPU(Centra
l Processing Unit)を有する計算機も、CPU価格の
下落等の理由で普及してきている。
【0003】
【発明が解決しようとする課題】よって、オブジェクト
指向型プログラミング言語で書かれたソース・プログラ
ムから生成されたオブジェクト・プログラムを複数のC
PUを有する計算機で実行する場合も生ずるが、従来で
は、複数のCPUの能力を引き出すような並列化が行わ
れていなかった。
【0004】よって、本発明の目的は、オブジェクト指
向型プログラミング言語で書かれたソース・プログラム
でも並列処理できるようにコンパイルすることができる
コンパイラ技術を提供することである。
【0005】
【課題を解決するための手段】並列処理を実現するに
は、並列化指示文で指示されたクラス変数又は並列実行
対象の実行文に含まれるクラス型変数のために、ソース
・プログラムにおいて指定されたオブジェクト(図1の
元のオブジェクト1000)の他に、当該クラスのオブ
ジェクト(図1の並列化処理用オブジェクト1010及
び1020)を元のオブジェクト1000から生成しな
ければならない。また、並列処理終了時には、当該オブ
ジェクトを消滅させなければならない。
【0006】よって、オブジェクト指向型プログラミン
グ言語によるソース・プログラムをコンパイルするコン
パイラは、並列実行対象の実行文又は並列化指示文にク
ラス型の変数が含まれる場合には、並列実行対象の実行
文又は並列化指示文により並列化される実行文の前に当
該クラスによるオブジェクトの構築命令ルーチンを呼び
出す命令を生成し、記憶装置に格納するステップと、並
列実行対象の実行文又は並列化指示文にクラス型の変数
が含まれる場合には、並列実行対象の実行文又は並列化
指示文により並列化される実行文の後に当該クラスによ
るオブジェクトの消滅命令ルーチンを呼び出す命令を生
成し、記憶装置に格納するステップとをコンピュータに
実行させる。
【0007】これにより必要なオブジェクトが実行時に
生成されるため、並列処理が実現されるようになる。ま
た、不要になれば生成されたオブジェクトは消滅する。
【0008】なお、上で述べたようなコンパイラが通常
のコンピュータで実行されれば当該コンピュータはコン
パイル装置となる。また、コンパイラは、例えばフロッ
ピー(登録商標)ディスク、CD−ROM、光磁気ディ
スク、半導体メモリ、ハードディスク等の記憶媒体又は
記憶装置に格納される。また、コンパイラの処理途中の
中間的なデータは、コンピュータのメインメモリなどの
記憶装置に格納される。
【0009】
【発明の実施の形態】本発明の一実施の形態に係る機能
ブロック図を図2に示す。コンピュータ100は、オブ
ジェクト指向型プログラミング言語により記述されたソ
ース・プログラムを格納したソースプログラム・ファイ
ル110に対してコンパイル処理を行うコンパイラ12
0を実行する。コンパイラ120の処理結果は、オブジ
ェクトコード・ファイル130として出力される。この
オブジェクトコード・ファイル130は、複数のCPU
を有する並列コンピュータで実行される。なお、並列コ
ンピュータには、様々な形式のものが存在しているが、
以下ではOpenMPAPI(Application Program I
nterface)を前提としたプログラムの例を示すので、本
実施の形態では共有メモリ型の並列コンピュータが対象
となる。
【0010】コンパイラ120には、ソース・プログラ
ムをコンパイラ内の処理のための中間言に変換するフロ
ントエンド部122と、フロントエンド部122により
生成された中間言に対して並列化のための処理を実施す
る並列化処理部124と、並列化処理部124の処理結
果に基づきオブジェクトコードを生成するオブジェクト
コード生成部126とが含まれる。なお、コンパイラ1
20においては必要に応じてコード生成の前に最適化処
理などが実行される。
【0011】次にフロントエンド部122について説明
する。本実施の形態では、従来の中間言生成処理に加え
図4に示すような処理を追加して、従来とは異なる中間
言(図3)を生成する。従来においては、クラス毎に、
当該クラスを特定するためのクラス情報域10と、当該
クラス情報域に含まれる型情報域指標12から指し示さ
れる、当該クラスの型(タイプ)情報を格納する型情報
域20とが設けられていた。型情報域20には、当該ク
ラスのコンストラクタ(クラスの構築命令ルーチン)と
デストラクタ(クラスの消滅命令ルーチン)の情報が格
納される。本実施の形態では、OpenMPのAPIに
従って記述される並列化指示文の節(clause)にクラス
が指定されている場合にはそのクラスについて、自動並
列化処理を行う場合には全てのクラスについて、以下の
ような情報が従来の中間言に追加される。
【0012】すなわち、構築・消滅命令情報域30と、
型情報域20には当該構築・消滅命令情報域30を指し
示す構築・消滅命令情報域指標22とを追加する。構築
・消滅命令情報域30には、構築命令ルーチン40を指
し示す構築命令基点32と、消滅命令ルーチン42を指
し示す消滅命令基点34とが設けられる。
【0013】以下に、具体的プログラムを用いて説明す
る。
【表1】 01 struct A{ 02 int mem1,mem2; 03 A(){mem1=0;mem2=1;} 04 A(A&a){mem1=a.mem1;mem2=a.mem2;} 05 〜A(); 06 add(int I){mem1+=I;mem2+=I;} 07 }st; 08 A::〜A(){printf("dtor call");} 09 main(){ 10 #pragma omp parallel for private(st) 11 for (I=0;I<100000000;I++){ 12 st.add(I); 13 } 14 } なお、左端の番号は以下の説明のためにのみ追加された
ものであって、通常は含まれない。
【0014】上のプログラムはC++で書かれたソース
プログラムであって、第1行はAという構造体を定義す
る部分である。第2行はmem1及びmem2という整数型のメ
ンバを定義する文である。第3行は、コンストラクタA
()を定義する文である。第4行はコピーコンストラク
タである。第5行はデストラクタ〜A()である。第6
行はaddというメソッドを定義する文である。第7行
は、上のような構造体のクラス変数stを定義する部分
である。第8行はデストラクタを定義する文である。第
9行はメインプログラムmainの開始部分である。第10
行は、OpenMPによる並列化指示文(#pragma omp
parallel)である。なお、第10行のforは以下のfo
rループを並列化することを示しており、private(st)
はスレッド毎にクラス変数stがプライベートであるこ
とを示している。第11行はI=0からI=10000
0000までIを1ずつインクリメントするforルー
プを規定している。第12行は第6行のクラスstのa
ddメソッドが示されている。第13行はforループ
の終わりを、第14行はメインプログラムの終わりを規
定している。
【0015】なお、表1のプログラムを並列処理するた
めには、元のオブジェクトの他に並列化処理用オブジェ
クトを生成・消滅するために、コンストラクタであるs
t.mem1=0及びst.mem2=1と、デストラクタであるst.〜
A()が並列化処理用オブジェクト毎に必要となる。そし
て、st.addというメソッドが各並列化処理用オブジェク
トで実行される。各並列化処理用オブジェクトにおける
forループの範囲は、並列化処理用オブジェクトの数
で決まる。
【0016】表1のプログラムの場合、本実施の形態で
は、オブジェクト情報域10でクラスstを特定する。
また、型情報域20に、コンストラクタA()及びデス
トラクタ〜A()の情報を含む構造体Aの情報を格納す
る。さらに、構築・消滅命令情報域30に、構築命令ル
ーチン40(コンストラクタ)であるst.mem1=0とst.me
m2=1への構築命令基点32と、消滅命令ルーチン42
(デストラクタ)であるst.〜A()への消滅命令基点34
とが格納される。
【0017】以上のような情報を従来の中間言に追加す
るための処理フローを図4を用いて説明する。最初に、
自動並列化処理を行うか否か判断する(ステップS
1)。自動並列化処理を行うか否かは、例えばコンパイ
ラ120に対するユーザの設定がなされているか否かで
判断する。もし、自動並列化処理を行う場合には、現在
の処理対象の文にクラス型変数が存在するか判断する
(ステップS13)。クラス型である場合にはステップ
S7に移行する。一方、クラス型でない場合には元の処
理に戻る。
【0018】ステップS1で自動並列化処理を実施しな
い場合には、並列化指示文の使用が許されているか判断
する(ステップS3)。並列化指示文は例えばOpen
MPによる並列化指示文であり、並列化指示文の使用が
許されているか否かは、例えばコンパイラ120に対す
るユーザの設定などにより判断する。もし、並列化指示
文の使用が許されていない場合には、元の処理に戻る。
一方、並列化指示文の使用が許可されている場合には、
並列化指示文の節に指定された変数がクラス型か否かを
判断する(ステップS5)。表1の例では、節はprivat
eで、変数はstでありクラス型である。クラス型でな
ければ、元の処理に戻る。
【0019】もし並列化指示文の節に指定された変数が
クラス型である場合には、当該クラスに対して構築・消
滅命令情報域30を確保し、型情報域20内に構築・消
滅命令情報域指標22を設定する(ステップS7)。そ
して、型情報域20から構築命令ルーチン40と、消滅
命令ルーチン42とを取り出し(ステップS9)、構築
・消滅命令情報域30内に、構築命令ルーチン40に対
する構築命令基点32と、消滅命令ルーチン42に対す
る消滅命令基点34とを設定する(ステップS11)。
【0020】これにより図3に示されるような中間言が
生成される。図3に示されるような中間言が記憶装置に
用意されていれば、次の並列化処理を高速且つ確実に行
うことができるようになる。
【0021】次に並列化処理部124の本実施の形態に
おいて追加される部分の処理フローを図5に示す。ま
ず、並列化処理及び自動並列化処理において、並列化指
示文の節に指定された変数がクラス型か、若しくは並列
対象の実行文にクラス型変数が含まれているか判断する
(ステップS21)。もし、並列化指示文の節に指定さ
れた変数がクラス型でなく且つ並列対象の実行文にクラ
ス型変数が含まれていない場合には元の処理に戻る。一
方、並列化指示文の節に指定された変数がクラス型であ
る場合、又は並列対象の実行文にクラス型変数が含まれ
る場合には、クラス型変数の中間言のクラス情報域10
にある型情報域指標12から型情報域20を取り出す
(ステップS23)。その型情報域20の構築・消滅命
令情報域指標22から、構築・消滅命令情報域30を取
り出す(ステップS25)。
【0022】次に構築・消滅命令情報域30から、構築
命令基点32と消滅命令基点34を取り出す(ステップ
S27)。そして、構築命令基点32がNULL(情報
なし)であるか判断する(ステップS29)。もし、N
ULLであればステップS33にスキップする。NUL
Lでなければ、並列化される実行文の先頭に構築命令基
点32が指す構築命令ルーチン40を呼び出す命令を生
成し、記憶装置に格納する(ステップS31)。
【0023】そして消滅命令基点34がNULL(情報
なし)であるか判断する(ステップS33)。もし、N
ULLであれば元の処理に戻る。NULLでなければ、
並列化される実行文の最後に消滅命令基点34が指す消
滅命令ルーチン42を呼び出す命令を生成し、記憶装置
に格納する(ステップS35)。そして元の処理に戻
る。
【0024】このようにして図5において追加で生成さ
れた命令群と通常コンパイラ120の並列化処理部12
4で生成される命令群とを用いて、オブジェクトコード
生成部126がオブジェクトコードを生成し、オブジェ
クトコード・ファイル130に格納する。なお上でも説
明したが、並列化処理部124の後に他の処理(例えば
最適化処理)が実施され、その最適化処理後の命令群に
対してオブジェクトコードを生成する場合もある。
【0025】オブジェクトコードには、図1に示したよ
うに並列化処理用オブジェクトを生成するための構築命
令ルーチン42を呼び出す命令に対応するオブジェクト
コードと、消滅させるための消滅命令ルーチン44を呼
び出す命令に対応するオブジェクトコードとが含まれ
る。しかし、オブジェクトコード実行時に生成される並
列化処理用オブジェクトの数は、オブジェクトコードを
実行する並列コンピュータの能力などに依存するためこ
の時点では不明である。よって、構築命令ルーチン42
を呼び出す命令及び消滅命令ルーチン44を呼び出す命
令は並列化処理用オブジェクトの数分生成されるわけで
はない。
【0026】以上本発明の一実施の形態を説明したが、
本発明はこれに限定されるものではない。例えば、図5
のステップS29及びS31とステップS33及びS3
5とは順番を入れ替えることが可能である。また、図1
のコンピュータ100がネットワークに接続されてお
り、ソースプログラム・ファイル110が他のコンピュ
ータから送信されてきたり、オブジェクトコード・ファ
イル130が他のコンピュータへ送信されるような場合
もある。他のコンピュータは並列コンピュータである場
合もある。上ではOpenMPを前提としたプログラム
の例を示したが、その他の規格等に従ったプログラムで
あっても良い。
【0027】(付記1)オブジェクト指向型プログラミ
ング言語によるソース・プログラムをコンパイルするコ
ンパイラを格納した記録媒体であって、前記コンパイラ
は、コンピュータに、並列実行対象の実行文又は並列化
指示文にクラス型の変数が含まれる場合には、前記並列
実行対象の実行文又は前記並列化指示文により並列化さ
れる実行文の前に前記クラスによるオブジェクトの構築
命令ルーチンを呼び出す命令を生成し、記憶装置に格納
する構築命令ルーチン呼出命令生成ステップと、並列実
行対象の実行文又は並列化指示文にクラス型の変数が含
まれる場合には、前記並列実行対象の実行文又は前記並
列化指示文により並列化される実行文の後に前記クラス
によるオブジェクトの消滅命令ルーチンを呼び出す命令
を生成し、記憶装置に格納する消滅命令ルーチン呼出命
令生成ステップと、を実行させることを特徴とする記録
媒体。
【0028】(付記2)前記コンパイラは、コンピュー
タに、前記ソース・プログラムから中間言の生成時に、
並列実行対象と判断される可能性のあるクラス変数を特
定した場合に、当該クラスの中間言に構築・消滅命令情
報域を確保するステップと、前記構築・消滅命令情報域
に、前記クラスによるオブジェクトの構築命令ルーチン
及び消滅命令ルーチンに関する情報を格納するステップ
と、をさらに実行させ、前記構築命令ルーチン呼出命令
生成ステップ及び前記消滅命令ルーチン呼出命令生成ス
テップにおいて、前記構築・消滅命令情報域に格納され
た情報を用いることを特徴とする付記1記載の記録媒
体。
【0029】(付記3)前記構築・消滅命令情報域が、
前記クラスの型情報からアクセスできるようなデータ構
造になっていることを特徴とする付記2記載の記録媒
体。
【0030】(付記4)前記コンパイラが、共有メモリ
型の並列コンピュータのためのコンパイラであることを
特徴とする付記1乃至3のいずれか1記載の記録媒体。
【0031】(付記5)オブジェクト指向型プログラミ
ング言語によるソース・プログラムをコンパイルするコ
ンパイル装置であって、並列実行対象の実行文又は並列
化指示文にクラス型の変数が含まれる場合には、前記並
列実行対象の実行文又は前記並列化指示文により並列化
される実行文の前に前記クラスによるオブジェクトの構
築命令ルーチンを呼び出す命令を生成し、記憶装置に格
納する手段と、並列実行対象の実行文又は並列化指示文
にクラス型の変数が含まれる場合には、前記並列実行対
象の実行文又は前記並列化指示文により並列化される実
行文の後に前記クラスによるオブジェクトの消滅命令ル
ーチンを呼び出す命令を生成し、記憶装置に格納する手
段と、を有するコンパイル装置。
【0032】
【発明の効果】以上のように、オブジェクト指向型プロ
グラミング言語で書かれたソース・プログラムでも並列
処理できるようにコンパイルすることができるコンパイ
ラ技術を提供することができた。
【図面の簡単な説明】
【図1】本発明により生成されるオブジェクトコードの
実行時における模式図である。
【図2】本発明の一実施の形態に係るコンパイラを実行
するコンピュータの機能ブロック図である。
【図3】本発明の一実施の形態に係る中間言の一例を示
す図である。
【図4】図3の中間言を生成するための処理フローを示
す図である。
【図5】図3の中間言を使用する並列化処理の処理フロ
ーを示す図である。
【符号の説明】
100 コンピュータ 110 ソースプログラム・
ファイル 120 コンパイラ 122 フロントエンド部 124 並列化処理部 126 オブジェクトコード
生成部 130 オブジェクトコード・ファイル
フロントページの続き (72)発明者 山中 豊 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B045 GG11 5B081 AA09 CC32

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】オブジェクト指向型プログラミング言語に
    よるソース・プログラムをコンパイルするコンパイラを
    格納した記録媒体であって、 前記コンパイラは、コンピュータに、 並列実行対象の実行文又は並列化指示文にクラス型の変
    数が含まれる場合には、前記並列実行対象の実行文又は
    前記並列化指示文により並列化される実行文の前に前記
    クラスによるオブジェクトの構築命令ルーチンを呼び出
    す命令を生成し、記憶装置に格納する構築命令ルーチン
    呼出命令生成ステップと、 並列実行対象の実行文又は並列化指示文にクラス型の変
    数が含まれる場合には、前記並列実行対象の実行文又は
    前記並列化指示文により並列化される実行文の後に前記
    クラスによるオブジェクトの消滅命令ルーチンを呼び出
    す命令を生成し、記憶装置に格納する消滅命令ルーチン
    呼出命令生成ステップと、 を実行させることを特徴とする記録媒体。
  2. 【請求項2】前記コンパイラは、コンピュータに、 前記ソース・プログラムから中間言の生成時に、 並列実行対象と判断される可能性のあるクラス変数を特
    定した場合に、当該クラスの中間言に構築・消滅命令情
    報域を確保するステップと、 前記構築・消滅命令情報域に、前記クラスによるオブジ
    ェクトの構築命令ルーチン及び消滅命令ルーチンに関す
    る情報を格納するステップと、 をさらに実行させ、 前記構築命令ルーチン呼出命令生成ステップ及び前記消
    滅命令ルーチン呼出命令生成ステップにおいて、前記構
    築・消滅命令情報域に格納された情報を用いることを特
    徴とする請求項1記載の記録媒体。
  3. 【請求項3】前記構築・消滅命令情報域が、前記クラス
    の型情報域からアクセスできるようなデータ構造になっ
    ていることを特徴とする請求項2記載の記録媒体。
  4. 【請求項4】前記コンパイラが、共有メモリ型の並列コ
    ンピュータのためのコンパイラであることを特徴とする
    請求項1乃至3のいずれか1記載の記録媒体。
  5. 【請求項5】オブジェクト指向型プログラミング言語に
    よるソース・プログラムをコンパイルするコンパイル装
    置であって、 並列実行対象の実行文又は並列化指示文にクラス型の変
    数が含まれる場合には、前記並列実行対象の実行文又は
    前記並列化指示文により並列化される実行文の前に前記
    クラスによるオブジェクトの構築命令ルーチンを呼び出
    す命令を生成し、記憶装置に格納する手段と、 並列実行対象の実行文又は並列化指示文にクラス型の変
    数が含まれる場合には、前記並列実行対象の実行文又は
    前記並列化指示文により並列化される実行文の後に前記
    クラスによるオブジェクトの消滅命令ルーチンを呼び出
    す命令を生成し、記憶装置に格納する手段と、 を有するコンパイル装置。
JP2000305605A 2000-10-05 2000-10-05 オブジェクト指向型プログラミング言語によるソース・プログラムをコンパイルするコンパイラ Withdrawn JP2002116917A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000305605A JP2002116917A (ja) 2000-10-05 2000-10-05 オブジェクト指向型プログラミング言語によるソース・プログラムをコンパイルするコンパイラ
US09/778,087 US20020062478A1 (en) 2000-10-05 2001-02-07 Compiler for compiling source programs in an object-oriented programming language

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000305605A JP2002116917A (ja) 2000-10-05 2000-10-05 オブジェクト指向型プログラミング言語によるソース・プログラムをコンパイルするコンパイラ

Publications (1)

Publication Number Publication Date
JP2002116917A true JP2002116917A (ja) 2002-04-19

Family

ID=18786431

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000305605A Withdrawn JP2002116917A (ja) 2000-10-05 2000-10-05 オブジェクト指向型プログラミング言語によるソース・プログラムをコンパイルするコンパイラ

Country Status (2)

Country Link
US (1) US20020062478A1 (ja)
JP (1) JP2002116917A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007534065A (ja) * 2004-04-22 2007-11-22 ワラテック プロプライエタリー リミテッド オブジェクトファイナライズによる改良型コンピュータアーキテクチャ

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069556B2 (en) * 2001-09-27 2006-06-27 Intel Corporation Method and apparatus for implementing a parallel construct comprised of a single task
JP3847672B2 (ja) * 2002-07-03 2006-11-22 松下電器産業株式会社 コンパイラ装置及びコンパイル方法
US20040199919A1 (en) * 2003-04-04 2004-10-07 Tovinkere Vasanth R. Methods and apparatus for optimal OpenMP application performance on Hyper-Threading processors
US7373640B1 (en) * 2003-07-31 2008-05-13 Network Appliance, Inc. Technique for dynamically restricting thread concurrency without rewriting thread code
US20080282259A1 (en) * 2007-05-10 2008-11-13 Microsoft Corporation Declarative concurrency and coordination scheme for software services
US20090007115A1 (en) * 2007-06-26 2009-01-01 Yuanhao Sun Method and apparatus for parallel XSL transformation with low contention and load balancing
JP2009169864A (ja) * 2008-01-18 2009-07-30 Panasonic Corp コンパイル方法およびコンパイルプログラム
GB0911099D0 (en) * 2009-06-26 2009-08-12 Codeplay Software Ltd Processing method
CN102893255A (zh) * 2010-02-22 2013-01-23 美国亚德诺半导体公司 用于概率计算机的超标量控制
US9430204B2 (en) 2010-11-19 2016-08-30 Microsoft Technology Licensing, Llc Read-only communication operator
US9507568B2 (en) * 2010-12-09 2016-11-29 Microsoft Technology Licensing, Llc Nested communication operator
US9395957B2 (en) 2010-12-22 2016-07-19 Microsoft Technology Licensing, Llc Agile communication operator
US9250877B2 (en) * 2013-09-20 2016-02-02 Cray Inc. Assisting parallelization of a computer program

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3039953B2 (ja) * 1989-04-28 2000-05-08 株式会社日立製作所 並列化装置
JP2921190B2 (ja) * 1991-07-25 1999-07-19 日本電気株式会社 並列実行方式
DE4131380A1 (de) * 1991-09-20 1993-03-25 Siemens Ag Verfahren zur adaption einer objektorientierten applikation
JPH05257709A (ja) * 1992-03-16 1993-10-08 Hitachi Ltd 並列化判別方法およびそれを用いた並列化支援方法
JPH06266683A (ja) * 1993-03-12 1994-09-22 Toshiba Corp 並列処理装置
GB9320982D0 (en) * 1993-10-12 1993-12-01 Ibm A data processing system
CA2115464C (en) * 1994-02-11 1998-12-15 William G. O'farrell Concurrent processing in object oriented parallel and near parallel systems
US5613120A (en) * 1994-10-20 1997-03-18 Silicon Graphics, Inc. System and method for enabling, without recompilation, modification of class definitions and implementations in an object-oriented computer program
GB9600823D0 (en) * 1996-01-16 1996-03-20 British Telecomm Distributed processing
GB9600854D0 (en) * 1996-01-16 1996-03-20 British Telecomm Distributed processing
CA2175711A1 (en) * 1996-05-01 1997-11-02 Lee Richard Nackman Incremental compilation of c++ programs
GB9620196D0 (en) * 1996-09-27 1996-11-13 British Telecomm Distributed processing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007534065A (ja) * 2004-04-22 2007-11-22 ワラテック プロプライエタリー リミテッド オブジェクトファイナライズによる改良型コンピュータアーキテクチャ

Also Published As

Publication number Publication date
US20020062478A1 (en) 2002-05-23

Similar Documents

Publication Publication Date Title
Jayatilaka et al. Tonto: a fortran based object-oriented system for quantum chemistry and crystallography
KR930008769B1 (ko) 소프트웨어 프로그램 발생용 장치 및 방법
Schäling The boost C++ libraries
US6286134B1 (en) Instruction selection in a multi-platform environment
Schäling The boost C++ libraries
EP1178404B1 (en) Method and system for compiling multiple languages
US6526570B1 (en) File portability techniques
US5778212A (en) Interprocedural analysis user interface
US6931627B2 (en) System and method for combinatorial test generation in a compatibility testing environment
US8893080B2 (en) Parallelization of dataflow actors with local state
US6961931B2 (en) Dependency specification using target patterns
JPH08115209A (ja) ソース・コード作成システム及び方法
JPH1040114A (ja) C++プログラムのコンパイル方法及びコンパイラ
JP2002116917A (ja) オブジェクト指向型プログラミング言語によるソース・プログラムをコンパイルするコンパイラ
US6934940B2 (en) Source code transformation-temporary object reduction
Miecznikowski et al. Decompiling Java using staged encapsulation
CN111770204B (zh) 一种执行智能合约的方法、区块链节点和存储介质
Metcalf The seven ages of fortran
US5946493A (en) Method and system in a data processing system for association of source code instructions with an optimized listing of object code instructions
JP4647164B2 (ja) 中間言語内の不定サイズ変数
US7401330B2 (en) Cloning programming code
JP4768984B2 (ja) コンパイル方法、コンパイルプログラムおよびコンパイル装置
JP2005182562A (ja) コンパイル方法および装置、ならびにコンパイラ
CN111770202B (zh) 一种执行智能合约的方法、区块链节点和存储介质
JP2005332146A (ja) 動的コンテンツ作成プログラムの生成装置、動的コンテンツ作成プログラムを生成するためのプログラム、及び動的コンテンツ作成プログラムの生成方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060829

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061027

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070216

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070302