著者
渡邊 坦 久島伊知郎
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.33, no.5, pp.756-760, 1992-05-15
参考文献数
6

中間語をテンプレートと構文解析手法でパタン照合し オブジェクトコードに変換する方法は コード生成の有力な一方法である中間語の構文規則は暖昧性が高いので その場合 パタン照合の競合解消が重要課題となる本論文では 還元条件を各生成規則に対して指定できるボトムアップ型構文解析系において 部分パタンを還元してコードに変換する際 そのコードに固有の標識を付け その部分パタンを先頭とするより長いパタンが検出された時 その標識まで遡ってコードを生成し直す方法を示す これはある種のシフト/還元競合を誤りの恐れなく解消する簡易な方法であり 効率の良いオブジェクトの生成に使える
著者
中田 育男 渡邊 坦 佐々 政孝 森 公一郎 阿部 正佳
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.25, no.1, pp.1_2-1_18, 2008 (Released:2008-03-31)

COINSコンパイラ・インフラストラクチャは,コンパイラの研究・開発・教育を容易にする目的で開発したものである.COINSは(1)高水準中間表現と低水準中間表現の2水準の中間表現をもつ,(2)記述言語はJavaで,すべて新規開発した,(3) SSA最適化など最適化の機能が充実している,(4)リターゲッタブルなコード生成系をもつ,(5)並列化の機能を持つ,といった特徴をもっている.開発作業は10箇所以上で分散して行い,3週間に1回程度の全体打ち合わせを持ち進めた.途中いくつかの失敗もあったが,ほぼ当初の目標を達成できた.入力言語はCとFORTRANとして,対象機種はSPARC, x86など,全部で8機種のコンパイラが出来ている.Cコンパイラの目的コードの性能は,GCCのそれに匹敵するものが得られている.COINSシステムはJavaで約26万行の大きさである.本論文では,このインフラストラクチャについて,技術面と開発作業の観点から述べる.
著者
鈴木 貢 寺島 元章 渡邊 坦
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.42, no.11, pp.102-102, 2001-11-15

マークアンドスイープ法に基づく固定長セルを対象とした並列ごみ集め(GC)を提案する.従来のGCは印付けと回収が直列的に実施されるのに対し,本GCではそれらが並列に実施される.これによってGCの処理能力が増し,セルを消費する複数のプロセスに対応できる.その特徴は,印付けを行いながら回収を行う「尺取り虫印付け法」と,複数プロセスの効率の良いセルの確保を可能にする「フリーセルのクラスタ化」である.印付けは,スタックを使ったリスト辿り法を用いているので,それに要する時間は使用中セルの個数に比例する.また,本GCでは,従来の印付け回収法では必須であった回収時の印の取り外しを行わない.そして,印付けプロセスと回収プロセスが印をめぐって際どい部分に入ることがほとんどなく,両者は本質的に非同期に稼働しうる.A parallel garbage collector (GC) based on mark-and-sweep method for fixed size cells is presented. It enables parallel running of both marking process and collection process, while previous parallel GCs do not permit such parallel running. With this method, we can get enough high performance GC to support multiple processes which consume cells. The distinguished technical points of this paper are "Inchworm marking" which enables parallel running of marking and collection, and "Clustered free cells" which improves allocation time overhead for multiple mutators. We adopts list traversal method with stack for marking, and the marking process can be completed in a time proportional to the amount of in-use cells. Our GC does not reset the marks of the cells, while others does. The marking process and the collection process rarely enter into critical region for marks, and they essentially can run asynchronously.