view 2013/old/2013_03_19.html @ 0:845ff8ff4fc9

1st
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Tue, 14 Jan 2014 01:31:42 +0900
parents
children
line wrap: on
line source

<!DOCTYPE html>
<html>
  <head>
    <meta charset='utf-8'>
    
    <script
       src='./trunk/slides.js'></script>
  </head>

  <body style='display: none'>
    <section class='slides layout-regular template-default'>

      <article>
	<h1>CbCコンパイラのGCC4.7.2上での実装</h1>
        <p><br>Kaito Tokumori<br>March 19, 2013</p>
      </article>

      <article>
	<br> 
	<h3>
	  研究目的
	</h3>
	<p>
	   当研究室ではcode segment単位で処理を記述するContinuation based C(以下CbC)というプログラミング言語を開発している。CbCはCからループ制御と関数コールを取り除いたもので、C言語よりも細かく、アセンブリより高級なプログラミングが可能である。
	</p>
	<p>
	   当初CbCのコンパイルにはMicro-C版の独自のコンパイラを用いていたが、2008年の研究においてGCC-4.2ベースのCbCコンパイラが開発され、2010年にはGCC-4.4、2012年にはGCC-4.6へとアップデートが行われた。GCCへの実装によりGCCの最適化やデバッガの機能を使うことが出来より実用的なCbCプログラミングが行えるようになったが、GCCのアップデートに合わせてCbCのコンパイラも変更する必要がある。本研究では、既存のCbC-GCCをGCC-4.7.2へとアップデートし、CbCの拡張を行う。
	</p>
      </article>

      <article>
	<br> 
	<h3>
	  今週したこと
	</h3>
	<ul>
	  <li>CbCに関連する論文読み
	    <ul>
	      <li>Continuation based CコンパイラのGCC4.2による実装</li>
	      <li>Continuation based CコンパイラのGCC4.6上の実装について</li>
	      <li>mercurial上のCbC対応gccをとってきてgcc4.7.2と一緒に眺めた</li>
	    </ul>
	  </li>
	</ul>
	<br>
      </article>

      <article>
	<br> 
	<h3>
	  CbC
	</h3>
	<ul>
	  <li>アセンブリより上位でCより下位な言語。Cからループ制御と関数コールを取り除いたもの。</li>
	  <li>継続という独自のgoto、code segmentを導入。</li>
	  <li>call命令じゃなくてjump命令で根源の関数に飛ぶので無駄なreturnが無い。</li>
	  <li>code segmentはCbCにおける最も基本的な処理単位。</li>
	  <li>継続(goto)はCにおけるlabelのgotoではない。goto cs();というようにしてcode segmentからcode segmentへ継続していく。</li>
	</ul>
	<br>
      </article>

      <article>
	<br> 
	<h3>
	  既存のCbC-GCCとGCC4.7.2の実装箇所の違い
	</h3>
	<ul>
	  <li>予約語の定義は同じ場所。gcc/c-family/c-common.cのc_commoc_reswords構造体。</li>
	  <li>予約語の定義に必要なid(RID_CbC_CODE)の宣言場所も同じ。同ディレクトリのc-common.h。</li>
	  <li>4.7.2も、statmentのparseはc_parser_statement_after_labels()関数内で行われているようなので継続(goto)の実装箇所も同じ。</li>
	</ul>
	<br>
      </article>

      <article>
	<br> 
	<h3>
	  次したいこと
	</h3>
	<ul>
	  <li>誤ってCbC-GCCのGCCのバージョンが4.4のものを読んでいたので最新(4.6?)のを読みたい。</li>
	  <li>わからなかった部分を調べ直す。</li>
	</ul>
	<br>
      </article>

    </section>
  </body>
</html>