comparison paper.tex @ 5:a5607d53f55e default tip

fix typo
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Tue, 01 Mar 2016 21:25:43 +0900
parents 5ebc6e5c5c8f
children
comparison
equal deleted inserted replaced
4:5ebc6e5c5c8f 5:a5607d53f55e
58 % Titles are generally capitalized except for words such as a, an, and, as, 58 % Titles are generally capitalized except for words such as a, an, and, as,
59 % at, but, by, for, in, nor, of, on, or, the, to and up, which are usually 59 % at, but, by, for, in, nor, of, on, or, the, to and up, which are usually
60 % not capitalized unless they are the first or last word of the title. 60 % not capitalized unless they are the first or last word of the title.
61 % Linebreaks \\ can be used within to get better formatting as desired. 61 % Linebreaks \\ can be used within to get better formatting as desired.
62 % Do not put math or special symbols in the title. 62 % Do not put math or special symbols in the title.
63 \title{LLVM と Clang を利用した新しい言語の実装} 63 \title{LLVM 3.9 と Clang 3.9 を利用した新しい言語の実装}
64 64
65 % author names and affiliations 65 % author names and affiliations
66 % use a multiple column layout for up to three different 66 % use a multiple column layout for up to three different
67 % affiliations 67 % affiliations
68 \author{ 68 \author{
91 % creates the second title. It will be ignored for other modes. 91 % creates the second title. It will be ignored for other modes.
92 \IEEEpeerreviewmaketitle 92 \IEEEpeerreviewmaketitle
93 93
94 94
95 95
96 本章では LLVM と Clang を利用した新しいプログラミング言語のコンパイラの実装を行う方法を Continuaton based C(CbC)\cite{CbC2011} 96 本章では LLVM 3.9 (以下 LLVM) と Clang 3.9 (以下 Clang) を利用した新しいプログラミング言語のコンパイラの実装を行う方法を Continuaton based C(CbC)\cite{CbC2011}
97 という言語の実装例とともに説明する. 97 という言語の実装例とともに説明する.
98 LLVMとClangは、C++ で記述されており、GCCよりも見通し良く書かれている。 98 LLVMとClangは、C++ で記述されており、GCCよりも見通し良く書かれている。
99 LLVMは汎用のコンパイラフレームワークであり、プログラミング言語の構文解析、中間コード生成、機械語生成の各段階で様々なサポートがある。 99 LLVMは汎用のコンパイラフレームワークであり、プログラミング言語の構文解析、中間コード生成、機械語生成の各段階で様々なサポートがある。
100 LLVMで新しい言語を作る方法には様々な方法がある。一つは自作の構文解析器からLLVMの抽象構文木生成のAPI呼び出す方法である。 100 LLVMで新しい言語を作る方法には様々な方法がある。一つは自作の構文解析器からLLVMの抽象構文木生成のAPI呼び出す方法である。
101 また、LLVM IRという中間コードを直接生成しても良い。 101 また、LLVM IRという中間コードを直接生成しても良い。
780 C の関数呼び出しとし, それぞれを5万回に行った時の時間の差を見ると結果は表\ref{comp}になる. 780 C の関数呼び出しとし, それぞれを5万回に行った時の時間の差を見ると結果は表\ref{comp}になる.
781 781
782 関数呼び出しを完全に排除したCbCのコードはアセンブラ的であり, 人が書きやすいものとは言えない. 782 関数呼び出しを完全に排除したCbCのコードはアセンブラ的であり, 人が書きやすいものとは言えない.
783 CbC はアーキテクチャに依存しないアセンブラとして使用することができる. 783 CbC はアーキテクチャに依存しないアセンブラとして使用することができる.
784 性能が要求されるOSやデータベースなどのシステムソフトウェアなどに向いている. 784 性能が要求されるOSやデータベースなどのシステムソフトウェアなどに向いている.
785 あるいは,状態遷移を基本としたアプリ, 例えばネットワークアプリケーション, あるいは grep などをにも 785 あるいは,状態遷移を基本としたアプリ, 例えばネットワークアプリケーション, あるいは grep などに向いている.
786 向いている.
787 786
788 \begin{table}[htpb] 787 \begin{table}[htpb]
789 \centering 788 \centering
790 \begin{tabular}{|l|r|} \hline 789 \begin{tabular}{|l|r|} \hline
791 & 実行速度 (s) \\ \hline 790 & 実行速度 (s) \\ \hline