Mercurial > hg > Papers > 2010 > kent-master
annotate introduction.tex @ 7:8ef81ff8cb52
emended.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2010 13:10:57 +0900 |
parents | dfb89e32eea1 |
children | 4b2af58b0302 |
rev | line source |
---|---|
0 | 1 \chapter{序論} |
1 | 2 \label{chp:intro} |
0 | 3 \pagenumbering{arabic} |
4 | |
5 %% 問題提起 | |
6 %% 解決案の提示 | |
7 %% 研究目標 | |
8 %% 本論文の各章の概要 | |
9 | |
10 | |
11 \section{背景と目的} | |
12 | |
13 | |
14 企業システムの多様化、IT導入の加速により、ソフトウェアは大規模化・複雑 | |
15 化する傾向にある。また家電製品のデジタル化も進み、組み込みシステムの需 | |
16 要も増大している。 | |
17 | |
7 | 18 それにともないハードウェアは驚異的な進歩を遂げ、近年はCPUのマルチコア |
19 化が進み、また新たな段階を築こうとしている。 | |
0 | 20 |
21 ハードウェアの進歩に対し、ソフトウェアの開発に用いられる記述言語は、オ | |
22 ブジェクト指向プログラミングの発明・導入やデザインパターンに見られる技 | |
23 術の集約などが行われ、注目されてきた。 | |
24 %しかしながら90年代以降、言語その物に対する大きな変化は見られない。 | |
25 オブジェクト指向を主としたJavaはその有用性が認められ多くのシステム開発 | |
26 に取り入られている。 | |
7 | 27 しかしその反面、Javaではガベージコレクタや実行時コンパイルにより、余分 |
28 な処理が必要となる。そのため軽量かつ高速な応答が要求される Real-time処 | |
29 理や組込み用途には適さない。 | |
30 %しかしその反面、Cなどの低レベルな言語による記述に比べてこれらの技術は | |
31 %余分な条件判断やメモリアクセスを増やしてしまう。そのため軽量かつ高速な | |
32 %応答が要求される Real-time処理や組み込み用途には適さない。 | |
0 | 33 |
7 | 34 %またCellに見られるような複雑なアーキテクチャをもつマシンではプログラ |
35 %ミング自体も複雑になる。Cで記述されたプログラムからアーキテクチャに直 | |
36 %接関わる命令 (DMAやシグナル)を使用するのでは、高級言語の設計思想と | |
37 %矛盾するともみられる。 | |
38 またPlayStation3にはCell Broadband Engineという特殊なCPUが採用され注目 | |
39 されている。しかしこの様な複雑なアーキテクチャを持つマシンではプログラ | |
40 ミング自体も複雑になる。Cで記述されたプログラムからアーキテクチャに直 | |
41 接関わる命令 (DMAやシグナル)を使用するのでは、高級言語の設計思想と矛 | |
42 盾するともみられる。 | |
43 | |
0 | 44 |
45 大規模システムにおけるバグの存在も深刻な問題である。 | |
46 テストファーストな開発スタイルなどで工学的なアプローチからバグの抑制が | |
47 試みられているが、完全な排除は難しい。数学的なアプローチから無矛盾を証 | |
48 明する技術の研究も進んでいるが、現在のスタックベースのプログラミングは | |
49 状態数が膨大になり、実用化された例は少ない。しかしマルチコアの台頭によ | |
7 | 50 り並列プログラミングの必要性も高まっており、今後はより検証の必要性が増 |
51 すと考えられる。 | |
0 | 52 |
7 | 53 ハードウェアの進化や数学的検証にソフトウェアが対応するためには、これま |
54 でとは違う新たな視点を持ったプログラミング言語が望ましい。 | |
0 | 55 しかし既存のソフトウェアやシステムは膨大な数に上り、これらを新しい言語 |
56 に書き換えるのは無理がある。新しい言語は古い言語との互換性が必須である。 | |
57 | |
58 | |
7 | 59 我々はこれらの問題に取り組むため、Continuation based C(以下CbC)とい |
60 う言語を提案している。Continuationとはプログラムの次の実行処理を表現す | |
61 る制御構造で、継続とも呼ばれている\cite{;}。CbCではCからサブルーチンや | |
62 ループ制御を除き、代わりに継続をベースとした実行制御を行う。この特徴か | |
63 ら、CbCはCの下位言語と考ることができ、ハードウェアの記述や記述したプロ | |
64 グラムの検証などを目的として設計されている。 | |
65 %我々はこれらの問題に取り組むため、Continuation based Cという言語を提案 | |
66 %している。Continuation based C(以下CbC)はCからサブルーチンやループ構 | |
67 %造を除いたCの下位言語であり、ハードウェアの記述、また記述したプログラ | |
68 %ムの検証などを目的としている。 | |
0 | 69 |
7 | 70 %これまでCbCのコンパイルには、micro-cをベースとしたコンパイラとGNUコン |
71 %パイラコレクション(以下GCC)をベースとしたコンパイラが用いられてきた。 | |
72 %しかしGCCにはバグや当初の期待ほど速度がでないという問題があり、研究段 | |
73 %階であるCbC言語自体にも仕様の変更などがあった。 | |
74 これまでCbCのコンパイルには、micro-cをベースとしたコンパイラが用いられ | |
75 てきた。加えて2008年の研究においてGCCをベースとしたCbCコンパイラが開発 | |
76 され、継続処理の実装が行われた。 | |
0 | 77 |
7 | 78 %TODO: taskmanager |
79 本論文ではGCCベースのコンパイラに残るCbCの機能の実装を行い、実用的な | |
80 CbCプログラムの動作を目指す。 | |
81 %本論文ではGCCベースのCbCコンパイラの問題の洗い出しとその問題の改善を行 | |
82 %い、実用レベルのCbCプログラムの動作を目指す。 | |
0 | 83 |
7 | 84 %また、CbCを用いたプログラムの例として現在開発中のCbCベースTaskManager |
85 %の紹介を行う。 | |
86 また、実装したGCCベースコンパイラの評価としてmicro-cベースコンパイラと | |
87 の速度比較を行い、GCCの開発リリースに合わせるためのメンテナンス手法に | |
88 ついても考察する。 | |
0 | 89 |
90 | |
91 | |
92 | |
93 | |
94 \section{論文構成} | |
95 | |
5
dfb89e32eea1
added gcc.tex, conclusion.tex
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
4
diff
changeset
|
96 次章以降、本論文では本研究での成果を報告する。 |
dfb89e32eea1
added gcc.tex, conclusion.tex
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
4
diff
changeset
|
97 |
dfb89e32eea1
added gcc.tex, conclusion.tex
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
4
diff
changeset
|
98 \ref{chp:cbc}章ではまずCbCについてその言語仕様から説明し、また現時点で |
dfb89e32eea1
added gcc.tex, conclusion.tex
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
4
diff
changeset
|
99 のCbCコンパイラの問題点を挙げる。 |
0 | 100 |
5
dfb89e32eea1
added gcc.tex, conclusion.tex
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
4
diff
changeset
|
101 \ref{chp:gcc}章では本研究での移植対象であるGNU コンパイラコレクション |
dfb89e32eea1
added gcc.tex, conclusion.tex
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
4
diff
changeset
|
102 の構造について、簡単に説明する。 |
0 | 103 |
5
dfb89e32eea1
added gcc.tex, conclusion.tex
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
4
diff
changeset
|
104 \ref{chp:impl}章は実際の実装方法、改善の手法を説明し、これらの結果の評 |
dfb89e32eea1
added gcc.tex, conclusion.tex
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
4
diff
changeset
|
105 価を\ref{chp:eval}で行う。 |
dfb89e32eea1
added gcc.tex, conclusion.tex
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
4
diff
changeset
|
106 |
dfb89e32eea1
added gcc.tex, conclusion.tex
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
4
diff
changeset
|
107 最後に、本研究での成果と今後の課題を\ref{chp:conc}で述べ、本論文のまと |
dfb89e32eea1
added gcc.tex, conclusion.tex
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
4
diff
changeset
|
108 めとする。 |
dfb89e32eea1
added gcc.tex, conclusion.tex
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
4
diff
changeset
|
109 |