Mercurial > hg > Papers > 2019 > anatofuz-thesis
changeset 7:057978cfaa3b
add paper tex files
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 04 Feb 2019 14:33:08 +0900 |
parents | 6bc9dafb2ff3 |
children | c14eec12deb7 |
files | paper/Makefile paper/appendix.tex paper/bibliography.tex paper/main.tex paper/mythesis.sty paper/thanks.tex |
diffstat | 6 files changed, 620 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/Makefile Mon Feb 04 14:33:08 2019 +0900 @@ -0,0 +1,91 @@ +# target and root file name +TARGET = main + +# class files +CLASS_FILE = + +# figure pass +FIG_DIR = ./fig + +# ebb or extractbb +EBB = extractbb + +# dependent document files +TEX_FILES = \ + appendix.tex \ + bibliography.tex \ + chapter*.tex \ + thanks.tex \ + +# dependent image files +SVG_FILES = + +# use bibtex or not (yes|no) +BIBTEX_ENABLED = no + +# commands to compile document +LATEX = platex +BIBTEX = pbibtex +DVIPDF = dvipdfmx +DVIPS = dvips + +# generated files +DVI_FILE = $(TARGET).dvi +PDF_FILE = $(TARGET).pdf +PS_FILE = $(TARGET).ps +TEX_FILES += $(TARGET).tex +EPS_FILES = $(SVG_FILES:%.svg=%.eps) +AUX_FILES = $(TEX_FILES:%.tex=%.aux) +GENERATED_FILE = \ + $(EPS_FILES) \ + $(DVI_FILE) \ + $(PDF_FILE) \ + $(AUX_FILES) \ + $(TARGET).log \ + $(TARGET).toc \ + $(TARGET).bbl \ + $(TARGET).blg \ + $(TARGET).lof \ + $(TARGET).lol \ + texput.log + +.DEFAULT_GOAL = pdf + +.PHONY : pdf +pdf : $(PDF_FILE) + open $(TARGET).pdf +$(PDF_FILE) : $(DVI_FILE) $(TEX_FILES) $(EPS_FILES) $(CLASS_FILE) + $(DVIPDF) $(TARGET) + +.PHONY : ps +ps : $(PS_FILE) +$(PS_FILE) : $(DVI_FILE) $(TEX_FILES) $(EPS_FILES) $(CLASS_FILE) + $(DVIPS) $(TARGET) + +.PHONY : dvi +dvi : $(DVI_FILE) +$(DVI_FILE) : $(TEX_FILES) $(EPS_FILES) $(CLASS_FILE) + $(LATEX) -halt-on-error $(TARGET) +ifeq ($(BIBTEX_ENABLED),yes) + $(BIBTEX) $(TARGET) +endif + $(LATEX) -halt-on-error $(TARGET) + $(LATEX) -halt-on-error $(TARGET) + +%.eps : %.svg + inkscape --export-area-drawing --without-gui --file="$<" --export-eps="$@" + +.PHONY : clean +clean: + rm -f $(GENERATED_FILE) + +.PHONY : help +help: + @echo "make dvi" + @echo " Make DVI file from tex documents." + @echo "make pdf" + @echo " Make PDF file from DVI file." + @echo "make ps" + @echo " Make PS file from DVI file." + @echo "make clean" + @echo " Remove all generated files."
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/appendix.tex Mon Feb 04 14:33:08 2019 +0900 @@ -0,0 +1,236 @@ +\chapter{conv1 のソースコード} +\begin{lstlisting}[frame=lrbt,label=conv1,caption={}] +#include <stdio.h> +#include <stdlib.h> +static int loop; + +#if 1 // def __micro_c__ +#define CC_ONLY 0 +#else +#define CC_ONLY 1 +#endif + +#ifdef CLANG // for clang/LLVM +#define _CbC_return __return +#define _CbC_environment __environment +#endif + +typedef char *stack; +#include "conv1.h" + +/* classical function call case (0) */ +int f0(int i) { + int k,j; + k = 3+i; + j = g0(i+3); + return k+4+j; +} + +int g0(int i) { + return h0(i+4)+i; +} + +int h0(int i) { + return i+4; +} + +#if !CC_ONLY + +/* straight conversion case (1) */ + + +struct cont_interface { // General Return Continuation + __code (*ret)(int,stack); +}; + +__code f(int i,stack sp) { + int k,j; + k = 3+i; + goto f_g0(i,k,sp); +} + +struct f_g0_interface { // Specialized Return Continuation + __code (*ret)(int,stack); + int i_,k_,j_; +}; + +__code f_g1(int j,stack sp); + +__code f_g0(int i,int k,stack sp) { // Caller + struct f_g0_interface *c = + (struct f_g0_interface *)(sp -= sizeof(struct f_g0_interface)); + + c->ret = f_g1; + c->k_ = k; + c->i_ = i; + + goto g(i+3,sp); +} + +__code f_g1(int j,stack sp) { // Continuation + struct f_g0_interface *c = (struct f_g0_interface *)sp; + int k = c->k_; + sp+=sizeof(struct f_g0_interface); + c = (struct f_g0_interface *)sp; + goto (c->ret)(k+4+j,sp); +} + +__code g_h1(int j,stack sp); + +__code g(int i,stack sp) { // Caller + struct f_g0_interface *c = + (struct f_g0_interface *)(sp -= sizeof(struct f_g0_interface)); + + c->ret = g_h1; + c->i_ = i; + + goto h(i+3,sp); +} + +__code g_h1(int j,stack sp) { // Continuation + struct f_g0_interface *c = (struct f_g0_interface *)sp; + int i = c->i_; + sp+=sizeof(struct f_g0_interface); + c = (struct f_g0_interface *)sp; + goto (c->ret)(j+i,sp); +} + +__code h(int i,stack sp) { + struct f_g0_interface *c = (struct f_g0_interface *)sp; + goto (c->ret)(i+4,sp); +} + +struct main_continuation { // General Return Continuation + __code (*ret)(int,stack); + __code (*main_ret)(int,void*); + void *env; +}; + +__code main_return(int i,stack sp) { + if (loop-->0) + goto f(233,sp); + printf("#0103:%d\n",i); + goto (( (struct main_continuation *)sp)->main_ret)(0, + ((struct main_continuation *)sp)->env); +} + +/* little optimzation without stack continuation (2) */ + +__code f2(int i,char *sp) { + int k,j; + k = 3+i; + goto g2(i,k,i+3,sp); +} + +__code g2(int i,int k,int j,char *sp) { + j = j+4; + goto h2(i,k+4+j,sp); +} + +__code h2_1(int i,int k,int j,char *sp) { + goto main_return2(i+j,sp); +} + +__code h2(int i,int k,char *sp) { + goto h2_1(i,k,i+4,sp); +} + +__code main_return2(int i,stack sp) { + if (loop-->0) + goto f2(233,sp); + printf("#0132:%d\n",i); + goto (( (struct main_continuation *)sp)->main_ret)(0, + ((struct main_continuation *)sp)->env); +} + +/* little optimizaed case (3) */ + +__code f2_1(int i,char *sp) { + int k,j; + k = 3+i; + goto g2_1(k,i+3,sp); +} + +__code g2_1(int k,int i,char *sp) { + goto h2_11(k,i+4,sp); +} + +__code f2_0_1(int k,int j,char *sp); +__code h2_1_1(int i,int k,int j,char *sp) { + goto f2_0_1(k,i+j,sp); +} + +__code h2_11(int i,int k,char *sp) { + goto h2_1_1(i,k,i+4,sp); +} + +__code f2_0_1(int k,int j,char *sp) { + goto (( (struct cont_interface *)sp)->ret)(k+4+j,sp); +} + +__code main_return2_1(int i,stack sp) { + if (loop-->0) + goto f2_1(233,sp); + printf("#0165:%d\n",i); + exit(0); + //goto (( (struct main_continuation *)sp)->main_ret)(0, + //((struct main_continuation *)sp)->env); +} + +#define STACK_SIZE 2048 +char main_stack[STACK_SIZE]; +#define stack_last (main_stack+STACK_SIZE) + +#endif + +#define LOOP_COUNT 500000000 +int +main(int ac,char *av[]) +{ +#if !CC_ONLY + struct main_continuation *cont; + stack sp = stack_last; +#endif + int sw; + int j; + if (ac==2) sw = atoi(av[1]); + else sw=3; + + if (sw==0) { + for(loop=0;loop<LOOP_COUNT;loop++) { + j = f0(loop); + } + printf("#0193:%d\n",j); +#if !CC_ONLY + } else if (sw==1) { + loop = LOOP_COUNT; + sp -= sizeof(*cont); + cont = (struct main_continuation *)sp; + cont->ret = main_return; + cont->main_ret = _CbC_return; + cont->env = _CbC_environment; + goto f(loop,sp); + } else if (sw==2) { + loop = LOOP_COUNT; + sp -= sizeof(*cont); + cont = (struct main_continuation *)sp; + cont->ret = main_return2; + cont->main_ret = _CbC_return; + cont->env = _CbC_environment; + goto f2(loop,sp); + } else if (sw==3) { + loop = LOOP_COUNT; + sp -= sizeof(*cont); + cont = (struct main_continuation *)sp; + cont->ret = main_return2_1; + cont->main_ret = _CbC_return; + cont->env = _CbC_environment; + goto f2_1(loop,sp); +#endif + } + return 0; +} + +/* end */ +\end{lstlisting} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/bibliography.tex Mon Feb 04 14:33:08 2019 +0900 @@ -0,0 +1,25 @@ +% 参考文献 +\def\line{−\hspace*{-.7zw}−} + +\begin{thebibliography}{99} +%\bibitem{*}内の * は各自わかりやすい名前などをつけて、 +%論文中には \cite{*} のように使用する。 +%これをベースに書き換えた方が楽かも。 +%書籍、論文、URLによって若干書き方が異なる。 +%URLを載せる人は参考にした年月日を最後に記入すること。 + +\bibitem{cbc} +{徳森 海斗, 河野真治}: LLVM Clang 上の Continuation based C コンパイラの改良 +, 琉球大学工学部情報工学科平成 27 年度学位論文(修士) (2015). + +\bibitem{gears} +{伊波立樹, 東恩納琢偉, 河野真治}: Code Gear、Data Gear に基づく OS のプロトタイプ +, 情報処理学会システムソフトウェアとオペレーティング・システム研究会(OS) (2016). + +\bibitem{llvm} +The LLVM Compiler Infrastructure. \\\verb|http://llvm.org| + +\bibitem{llvm_ir} +LLVM Language Reference Manual. \\\verb|http://llvm.org/docs/LangRef.html| + +\end{thebibliography}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/main.tex Mon Feb 04 14:33:08 2019 +0900 @@ -0,0 +1,92 @@ +\documentclass[a4j,12pt]{jreport} +\usepackage[dvipdfmx]{graphicx} +\usepackage{mythesis} +\usepackage{multirow} +\usepackage{here} +\usepackage{listings} +\lstset{ + language={C}, + basicstyle={\footnotesize\ttfamily}, + identifierstyle={\footnotesize}, + commentstyle={\footnotesize\itshape}, + keywordstyle={\footnotesize\bfseries}, + ndkeywordstyle={\footnotesize}, + stringstyle={\footnotesize\ttfamily}, + frame={tb}, + breaklines=true, + columns=[l]{fullflexible}, + numbers=left, + xrightmargin=0zw, + xleftmargin=3zw, + numberstyle={\scriptsize}, + stepnumber=1, + numbersep=1zw, + lineskip=-0.5ex +} +\def\lstlistingname{リスト} +\def\lstlistlistingname{リスト目次} +\setlength{\itemsep}{-1zh} +\title{CbC による Perl6処理系} +\icon{ + \includegraphics[width=80mm,bb=0 0 595 642]{fig/ryukyu.pdf} %%元は 642じゃなくて842 +} +\year{平成31年度 卒業論文} +\belongto{琉球大学工学部情報工学科} +\author{155730B 清水 隆博 \\ 指導教員 {河野 真治} } +%% +%% プリアンブルに記述 +%% Figure 環境中で Table 環境の見出しを表示・カウンタの操作に必要 +%% +\makeatletter +\newcommand{\figcaption}[1]{\def\@captype{figure}\caption{#1}} +\newcommand{\tblcaption}[1]{\def\@captype{table}\caption{#1}} +\makeatother +\setlength\abovecaptionskip{0pt} + +\begin{document} + +% タイトル +\maketitle +\baselineskip 17pt plus 1pt minus 1pt + +\pagenumbering{roman} +\setcounter{page}{0} + +\tableofcontents % 目次 +\listoffigures % 図目次 +%\listoftables % 表目次 +\lstlistoflistings + +%以下のように、章ごとに個別の tex ファイルを作成して、 +% main.tex をコンパイルして確認する。 +%章分けは個人で違うので下のフォーマットを参考にして下さい。 + +% はじめに +\input{chapter1.tex} + +% 基礎概念 +\input{chapter2.tex} + +%% 実験 +%\input{chapter3.tex} +% +%% 実装 +%\input{chapter4.tex} +% +%% 評価 +%\input{chapter5.tex} +% +%% 結論 +%\input{chapter6.tex} +% +%% 参考文献 +%\input{bibliography.tex} + +% 謝辞 +\input{thanks.tex} + +\appendix +% 付録 +%\input{appendix.tex} + +\end{document}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/mythesis.sty Mon Feb 04 14:33:08 2019 +0900 @@ -0,0 +1,156 @@ +% +% 卒業論文スタイルファイル(mythesis.sty) +% version 1.0e +% +% ver 1.0e 02/07/2000 since +% usage: + +%\documentclass[a4j]{jreport} +%\usepackage{master_paper} +% +% +%\title{卒論タイトル \\ 長い} +%\etitle{\pLaTeX2e style test file for Teri's thesis } +%\year{平成11年度} +%\belongto{琉球大学大学工学部\\ 情報工学科} +%\author{豊平 絵梨} +% +%\begin{document} +% +%\maketitle +% +%%要旨 +%\input{abstract.tex} +% +%%目次 +%\tableofcontents +% +%%図目次 +%\listoffigures +% +%%表目次 +%\listoftables +% +%%第一章 +%\input{chapter1.tex} +%%chapter1.texの\chapter{}の後ろに次のコマンドを追加してください。 +%%ページカウントがリセットされ、ページ数がアラビア文字になります。 +%% \pagenumbering{arabic} +%%第二章 +%\input{chapter2.tex} +%%第三章 +%\input{chapter3.tex} +% +%%付録 +%\input{appendix.tex} +% +%%謝辞 +%%\input{thanx.tex} +% +%%参考文献 +%\input{biblography.tex} +% +%\end{document} + + +%長さ設定 +%\setlength{\topmargin}{-30mm} +%\addtolength{\oddsidemargin}{-15mm} +%\addtolength{\textwidth}{60mm} + +\topmargin -1in \addtolength{\topmargin}{35mm} +\headheight 0mm +\headsep 0mm +\oddsidemargin -1in \addtolength{\oddsidemargin}{30mm} +%\evensidemargin -1in \addtolength{\evensidemargin}{8mm} +\textwidth 160mm +\textheight 230mm +%\footheight 0mm +%\footskip 0mm +%\pagestyle{empty} + + +%年度 +\def\@year{} +\def\year#1{\gdef\@year{#1}} +%英文タイトル +\def\@etitle{} +\def\etitle#1{\gdef\@etitle{#1}} +%アイコン +\def\@icon{} +\def\icon#1{\gdef\@icon{#1}} +%所属 +\def\@belongto{} +\def\belongto#1{\gdef\@belongto{#1}} + +%表紙 +\renewcommand{\maketitle}{% +\newpage\null +\thispagestyle{empty} +\vskip 0cm% +\begin{center}% +\let\footnote\thanks + {\huge \@year \par}% + \vskip 3em% + {\Huge \@title \par}% + \vskip 1em% + {\huge \@etitle \par}% + \vskip 8em% + {\huge \@icon \par}% + \vskip 0.5em% + {\huge \@belongto \par}% + \vskip 1.0em% + {\huge \@author \par}% + +\end{center}% +\par\vskip 1.5em +} + + +%abstract +\renewenvironment{abstract}{% + \titlepage + \thispagestyle{empty} + \null\vfil + \@beginparpenalty\@lowpenalty + {\Huge \bfseries \abstractname}% + \begin{center}% + \@endparpenalty\@M + \end{center} +}% + + +%目次 +\renewcommand{\tableofcontents}{% + \pagestyle{plain} + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\contentsname + \@mkboth{\contentsname}{\contentsname}% + } \pagenumbering{roman}\@starttoc{toc}% + \if@restonecol\twocolumn\fi +} + +%章 +\renewcommand{\chapter}{% + \pagestyle{plain} + \if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{jpl@in}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} + + +\renewcommand{\prepartname}{} %\renewcommand{\prepartname}{第} +\renewcommand{\postpartname}{部} +\renewcommand{\prechaptername}{第}%\renewcommand{\prechaptername}{第} +\renewcommand{\postchaptername}{章} +\renewcommand{\contentsname}{目 次} +\renewcommand{\listfigurename}{図 目 次} +\renewcommand{\listtablename}{表 目 次} +\renewcommand{\bibname}{参考文献} +\renewcommand{\indexname}{索 引} +\renewcommand{\figurename}{図} +\renewcommand{\tablename}{表} +\renewcommand{\appendixname}{付 録} +\renewcommand{\abstractname}{要 旨}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/thanks.tex Mon Feb 04 14:33:08 2019 +0900 @@ -0,0 +1,20 @@ +\chapter*{謝辞} +\thispagestyle{empty} + +%基本的な内容は以下の通り.参考にしてみて下さい. +%厳密な決まりは無いので,個々人の文体でも構わない. +%GISゼミや英語ゼミに参加した人はその分も入れておく. +%順番は重要なので気を付けるように.(提出前に周りの人に確認してもらう.) + +\hspace{1zw} + + 本研究の遂行,また本論文の作成にあたり、御多忙にも関わらず終始懇切なる御指導と御教授を賜わりました河野真治准教授に深く感謝したします。 +また、本研究の遂行及び本論文の作成にあたり、数々の貴重な御助言と細かな御配慮を戴いた伊波立樹さん、比嘉健太さん、並びに並列信頼研究室の皆様に深く感謝致します。 + +最後に、有意義な時間を共に過ごした情報工学科の学友、並びに物心両面で支えてくれた両親に深く感謝致します。 + +%% \begin{flushright} +%% % 2017年 3月 \\ 宮城光希 +%% \end{flushright} + +