Mercurial > hg > Papers > 2010 > kent-master
diff implementation.tex @ 5:dfb89e32eea1
added gcc.tex, conclusion.tex
and some sources.
writed abstraction.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 08 Feb 2010 00:35:58 +0900 |
parents | 30c102343b37 |
children | 8ef81ff8cb52 |
line wrap: on
line diff
--- a/implementation.tex Sat Feb 06 18:28:43 2010 +0900 +++ b/implementation.tex Mon Feb 08 00:35:58 2010 +0900 @@ -1,4 +1,3 @@ - \chapter{GCCにおける実装・改善} \label{chp:impl} @@ -426,22 +425,23 @@ \subsection{プロトタイプ自動生成} \label{sec:prototype} -Cのプロトタイプ宣言はコンパイル時のエラー検出に役立っている。 -しかしCbCのコードセグメントには返り値は存在しない。また状態遷移記 -述という性質上、プログラムを記述する際は上から下に実行順にコードセ -グメントを並べることが多いため、プロトタイプ宣言をするとそれが膨大 -な数になる。 +Cのプロトタイプ宣言はコンパイル時のエラー検出に役立っている。しかしCbC +のコードセグメントには返り値は存在しない。また状態遷移記述という性質上 +、プログラムを記述する際は上から下に実行順にコードセグメントを並べるこ +とが多いため、プロトタイプ宣言をするとそれが膨大な数になる。 また、mcベースコンパイラの方ではプロトタイプ宣言を減らすため、一種の簡 単な型推論を実装している。そのためこれまでに作られたCbCのプログラムで は特殊な場合を除いてプロトタイプ宣言がほとんどなく、GCCでコンパイルす る際に問題となる。 -この問題に暫定的に対処するため、Pythonを用いてプロトタイプの自動生成を -行うスクリプトを作成した。このスクリプトでは関数の定義部を正規表現で検 -索し、マッチする部分を変換して関数宣言として出力する。 +これらの問題に暫定的に対処するため、Pythonを用いてプロトタイプの自動生 +成を行うスクリプトを作成した。このスクリプトでは関数の定義部を正規表現 +で検索し、マッチする部分を変換して関数宣言として出力する。 +全コードは付録\ref{apx:make-prototype}に掲載する。 -全コードは付録\ref{apx:make-prototype}に掲載する。 +このプトロタイプ自動生成により、これまでに作られたCbCのプログラムとの +互換性が確保できた。 % TODO: prototype declaration