コンピュータ ソフトウェア
Print ISSN : 0289-6540
25 巻 , 1 号
選択された号の論文の12件中1~12を表示しています
  • 滝本 宗宏, 岩崎 英哉
    2008 年 25 巻 1 号 p. 1_1
    発行日: 2008年
    公開日: 2008/03/31
    ジャーナル フリー
  • 中田 育男, 渡邊 坦, 佐々 政孝, 森 公一郎, 阿部 正佳
    2008 年 25 巻 1 号 p. 1_2-1_18
    発行日: 2008年
    公開日: 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万行の大きさである.本論文では,このインフラストラクチャについて,技術面と開発作業の観点から述べる.
  • 佐々 政孝, 滝本 宗宏
    2008 年 25 巻 1 号 p. 1_19-1_29
    発行日: 2008年
    公開日: 2008/03/31
    ジャーナル フリー
    コンパイラでは,機械語の目的コードを生成するだけでなく,実行させたときにその目的コードが効率良く実行できるように,様々な変換を行う.これを「最適化」という.最適化の方法としては,従来は中間表現の上で変数の定義と使用のデータの流れの解析を行う方法が使われていたが,最近は静的単一代入形式というものを用いた最適化の方法が注目を浴びている.静的単一代入形式(SSA形式)は,すべての変数の使用に対して,その値を定義(代入)している場所がテキスト上1箇所しかないように変数の名前替えをした中間表現の形式である.この性質を利用することにより,いろいろな最適化が見通し良く,容易に行えるようになる.本稿(導入編)では,SSA形式のあらまし,通常形式からSSA形式への変換,SSA形式から通常形式への逆変換について,解説する.
  • 滝本 宗宏, 佐々 政孝
    2008 年 25 巻 1 号 p. 1_30-1_46
    発行日: 2008年
    公開日: 2008/03/31
    ジャーナル フリー
    コンパイラでは,機械語の目的コードを生成するに際して,実行させたときにその目的コードが効率良く実行できるように,様々な変換を行う.これを「最適化」という.最適化の方法としては,従来はデータフロー解析と呼ばれる方法が使われていたが,最近は静的単一代入形式というものを用いた最適化の方法が注目を浴びている.静的単一代入形式(SSA形式)は,すべての変数の使用に対して,その値を定義(代入)している場所がテキスト上1箇所しかないように変数の名前替えをした中間表現の形式である.この性質を利用することにより,いろいろな最適化が見通し良く,容易にできるようになる.これを静的単一代入形式最適化と呼ぶ.本稿(発展編)では,静的単一代入形式最適化のあらましについて,解説する.
  • 中田 育男, 森 公一郎
    2008 年 25 巻 1 号 p. 1_47-1_64
    発行日: 2008年
    公開日: 2008/03/31
    ジャーナル フリー
    コンパイラのバックエンドでは,(1)低水準中間表現からターゲットマシンの命令列への変換,(2)その命令列に対するレジスタ割付け,(3)命令スケジューリングなどの最適化,などが行われるが,それらのアルゴリズムを出来るだけマシンに依存しない形で表現し,マシン依存部分は,マシン特性の記述から機械的に作成されるようにするのがリターゲッタブルコード生成の一般的な方法である.本解説では,(1)について,中間表現と命令列とのパターンマッチングの方法に使われるLR構文解析やダイナミック・プログラミングのいくつかの方法を説明し,(3)について,命令スケジューリングとソフトウェア・パイプライニングの一般的な方法と問題点などを説明する.最後に,実例として,COINSとGCCでそれぞれ使われている方法を説明する.
  • 鈴木 貢, 藤波 順久
    2008 年 25 巻 1 号 p. 1_65-1_81
    発行日: 2008年
    公開日: 2008/03/31
    ジャーナル フリー
    最近公表されるマイクロプロセッサの殆どが具備するようになったメディア処理向けSIMD拡張命令セットは,ベクタ命令セットの特別な場合と考えられるが,従来のベクタ命令にはない特徴や制約があり,そのための最適化技術をそのまま流用するだけでは潜在能力を引き出すことができない.COINSプロジェクトではSIMD拡張命令セット向け最適化を,ベクタ化を軸としたソースコードレベルで可能な最適化と,そのような変換を施されたプログラムに対して適切なSIMD命令を生成する最適化の2段階に分割し,我々が「SIMD並列化」と呼ぶ後者を中心に研究を行った.本稿では,COINSにおけるSIMD並列化について報告する.
  • 小林 由佳, 石若 裕子
    2008 年 25 巻 1 号 p. 1_82-1_88
    発行日: 2008年
    公開日: 2008/03/31
    ジャーナル フリー
  • 権藤 克彦, 川島 勇人, 今泉 貴史
    2008 年 25 巻 1 号 p. 1_105-1_123
    発行日: 2008年
    公開日: 2008/02/29
    ジャーナル フリー
    Cプログラム用のリファクタリングツールなどの実装にはCプログラムの正確な解析が必要となる.しかし,C前処理系(CPP)のため,Cプログラムの正確な解析は著しく困難になっている.Cプログラムの正確な解析には,CPPの処理前後のマッピング情報が必須である.従来は既存のCPP(例:Cpplib)を拡張して,このCPPマッピング情報を得ていた.しかしこの手法はCPPの実装に強く依存するため,保守や移植のコストが大きいという問題があった.
    この問題を解決するために,我々は新しい追跡子方式を提案する.追跡子方式ではCプログラムにXML風の追跡子を自動的に埋め込み,既存のCPPをそのまま手を加えずに前処理に用いて,最後に結果中の追跡子を解析してCPPマッピング情報を得る.このため追跡子方式には低い保守・移植コストと高い適用性という,従来方式には無い大きな利点がある.我々は追跡子方式を用いたCPP解析器のプロトタイプであるTBCppAの実装に成功した.また,TBCppAをgcc-4.1.1(約63万行)などのソースコードに実験的に適用した.この予備評価に限るが,移植性の高い方法でCPPマッピング情報を得る方式として,機能と性能の両面で追跡子方式は有用という結果を得た.
  • 乾 敦行, 工藤 晋太郎, 原 耕司, 水野 謙, 加藤 紀夫, 上田 和紀
    2008 年 25 巻 1 号 p. 1_124-1_150
    発行日: 2008年
    公開日: 2008/02/29
    ジャーナル フリー
    LMNtalは階層グラフ書換えに基づく単純な言語モデルであり,接続構造の表現に論理変数を,階層構造の表現に膜を用いることを特徴としている.LMNtalは,多重集合や並行処理やモビリティなどの概念を持つさまざまな計算モデルの統合を目指すと同時に,階層グラフ書換えに基づく実用的なプログラミング言語を提供してその有用性を示すことを重要な目標としている.本論文の目的は,プログラミング言語としてのLMNtalの諸機能を紹介し,その記述力を多くの例題を用いて示すことである.我々は,算術,ルール適用制御,モジュール,他言語インタフェースなどの重要機能を階層グラフ書換えモデルの中に組み込む方法を設計し実装した.記述力の検証のためにλ計算,π計算,ambient計算,CHRなどの代表的な関連計算モデルのエンコーディングを行い,それらを実際に処理系上で動作させることに成功した.
  • 佐原 聡一郎, 佐々 政孝
    2008 年 25 巻 1 号 p. 1_151-1_166
    発行日: 2008年
    公開日: 2008/02/29
    ジャーナル フリー
    コンパイラの最適化がプログラムの意味を変えず正しく動作することは非常に重要である.しかし,最適化には複雑なものも多く,コンパイラの最適化を正しく実装することは困難である.本論文では,プログラムが正しく最適化されたかどうかを時相論理を用いて最適化後に検査する手法を提案する.最適化によるプログラムの変形箇所が,プログラムの意味を変えないために満たすべき性質を時相論理で記述し,論理式で記述した性質を満たすかどうかを最適化後のプログラムをモデル検査することで検証する.この手法には,既存の複雑な最適化器にも適用でき,現実的な時間の範囲内での検査が可能であるといった利点がある.提案手法を実装し検査を実行した結果,COINSコンパイラの最適化器の未知のバグを発見することができた.
  • 角谷 良彦
    2008 年 25 巻 1 号 p. 1_167-1_179
    発行日: 2008年
    公開日: 2008/02/29
    ジャーナル フリー
    本論文では,直観主義様相論理IKにCurry-Howard対応する名前呼び及び値呼びの計算系を提案する.名前呼び計算は,圏論的意味論に基づいており,単純型付き名前呼びλ-計算の拡張となっている.本論文は,名前呼び計算の簡約系が強正規化可能性及び合流性を持つことを証明する.また,値呼び計算は,値呼びのλ-計算として定評のあるλc-計算の拡張として定義される.名前呼びの場合と同様,値呼び計算に対しても簡約系を与え,その強正規化可能性及び合流性を証明する.加えて,本論文では,値呼び計算の部分体系が名前呼び計算へのCPS変換によって特徴付けられることを示す.最後に,様相論理IS4への計算系の拡張についても考察する.
  • 古瀬 淳, 米澤 明憲
    2008 年 25 巻 1 号 p. 1_180-1_185
    発行日: 2008年
    公開日: 2008/02/29
    ジャーナル フリー
    C言語プログラムでのメモリ脆弱性攻撃などによって生ずる機密情報漏洩を防ぐため,我々はC言語のメモリ安全化コンパイル技術を仮定した上で,その情報流解析手法を提案する.Cのメモリ安全化コンパイルにおけるエラー忘却型計算では,メモリ脆弱性攻撃を受けた際のプログラムの脆弱性回避を自動的に行うが,我々の情報流解析による安全性は,このエラー忘却型計算の「不安定な挙動」をも安全化できる.これにより,我々のCのコンパイル技術VITCではメモリ脆弱性攻撃を受けた後にも一定の安全性の下でプログラムの継続実行を行うことができる.
feedback
Top