Mercurial > hg > Members > kaito > slides
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>