Mercurial > hg > Members > kaito > slides
comparison before_s6/2013/old/2013_05_21.html @ 5:ab2d529bb1d7
add slide
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 14 Oct 2014 19:17:35 +0900 |
parents | 2013/old/2013_05_21.html@845ff8ff4fc9 |
children |
comparison
equal
deleted
inserted
replaced
4:10fb2b05e390 | 5:ab2d529bb1d7 |
---|---|
1 <!DOCTYPE html> | |
2 <html> | |
3 <head> | |
4 <meta charset='utf-8'> | |
5 | |
6 <script | |
7 src='./trunk/slides.js'></script> | |
8 </head> | |
9 | |
10 <body style='display: none'> | |
11 <section class='slides layout-regular template-default'> | |
12 | |
13 <article> | |
14 <h1>CbCコンパイラのLLVM3.4上での実装</h1> | |
15 <p><br>Kaito Tokumori<br>May 21, 2013</p> | |
16 </article> | |
17 | |
18 <article> | |
19 <br> | |
20 <h3> | |
21 研究目的 | |
22 </h3> | |
23 <p> | |
24 当研究室ではcode segment単位で処理を記述するContinuation based C(以下CbC)というプログラミング言語を開発している。Cからループ制御と関数コールを取り除いたもので、C言語よりも細かく、アセンブリより高級なプログラミングが可能である。 | |
25 </p> | |
26 <p> | |
27 また、CbCはcode segment間の移動をcall命令でなくjmp命令で行うという特性を持っており、これにより余分なreturnを減らすことができる。これはtail call eliminationのによって実現されるので、CbCを利用することでtail call eliminationを強制し、プログラムをより最適化できるとも言える。 | |
28 </p> | |
29 <p> | |
30 現在CbCのコンパイルはMicro-C版、GCC版がある。今回の研究ではさらにllvm,clangを用いたコンパイラの実装を行う。 | |
31 </p> | |
32 </article> | |
33 | |
34 <article> | |
35 <br> | |
36 <h3> | |
37 今週したこと | |
38 </h3> | |
39 <ul> | |
40 <li>予約語として"__code"を認識させる</li> | |
41 <li>現時点ではとりあえず"void"と同様に扱う</li> | |
42 </ul> | |
43 <br> | |
44 </article> | |
45 | |
46 <article> | |
47 <br> | |
48 <h3> | |
49 "__code"の認識 | |
50 </h3> | |
51 <ul> | |
52 <li>予約語は"clang/include/clang/Basic/TokenKinds.def"で登録する。</li> | |
53 <li>ここで登録すると"kw_(登録したワード)"として扱われる。parserのswitch文はこれを用いて分岐。</li> | |
54 <li>"clang/lib/Parse/ParseDecl.cpp"の"Parser::ParseDeclarationSpecifiers()"</li> | |
55 <li>ここで"TST_***"としてDeclSpecクラスに送られる。</li> | |
56 <li>今はここをkw_voidのときと同じ処理をするようにしてvoidとして扱っている。</li> | |
57 </ul> | |
58 <br> | |
59 </article> | |
60 | |
61 <!-- | |
62 <article> | |
63 <br> | |
64 <h3> | |
65 次したいこと | |
66 </h3> | |
67 <ul> | |
68 <li>うごくようにする。</li> | |
69 </ul> | |
70 <br> | |
71 </article> | |
72 --> | |
73 </section> | |
74 </body> | |
75 </html> |