Mercurial > hg > Papers > 2019 > anatofuz-thesis
changeset 5:bca5f3fa78f7
make finalpre
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 04 Feb 2019 14:22:30 +0900 |
parents | 437a7629f76f |
children | 6bc9dafb2ff3 |
files | prepaper/finalpre.tex |
diffstat | 1 files changed, 90 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/prepaper/finalpre.tex Mon Feb 04 14:13:27 2019 +0900 +++ b/prepaper/finalpre.tex Mon Feb 04 14:22:30 2019 +0900 @@ -1,8 +1,10 @@ \documentclass[twocolumn,twoside,9.5pt]{jarticle} -\usepackage[dvips]{graphicx} +\usepackage[dvipdfmx]{graphicx} \usepackage{picins} \usepackage{fancyhdr} -\pagestyle{fancy} +\usepackage{abstract} +\usepackage{url} +%\pagestyle{fancy} \lhead{\parpic{\includegraphics[height=1zw,keepaspectratio,bb=0 0 251 246]{pic/emblem-bitmap.pdf}}琉球大学主催 工学部情報工学科 卒業研究発表会} \rhead{} \cfoot{} @@ -17,26 +19,97 @@ \setlength{\footskip}{0mm} \pagestyle{empty} +\input{dummy.tex} +\renewcommand{\abstractname}{Abstract} \begin{document} -\title{題名} -\author{学籍番号 氏名 {}{} 指導教員 : 指導教員名} +\title{CbCによるPerl6処理系} +%\title{Supporting NAT in Screen Sharing System TreeVNC} +\author{135730B 氏名 {清水}{隆博} 指導教員 : 河野 真治} \date{} +\twocolumn [ \maketitle -\thispagestyle{fancy} - -\section{section1} +\begin{onecolabstract} +We are developing Gears OS using Continuation based C (CbC). +Gears OS provides highly reliable computation using meta computation. +CbC gives Code Gear and Data Gear as programing units. +A transfer from a Code Gear to another Code Gear is implemented using a CbC's goto statement, +which is compiled as a jump instruction in CbC. +Meta computations are key components of Gears OS, which provides memory managements, thread managements, +managements of Data/Code Gear themselves. +CbC's goto statements provides a ways of implementing meta computations. +From a view point of meta computation, Data Gear or Code Gear are uniform data units, which are implemented +as union Data in CbC. +In the meta level, a transfer from a Code Gear is a goto statement to meta Code Gear with next Code Gear number and +a Context which corresponds thread structure or an environments in a functional programing. +A meta Code Gear handles meta computations such as meta computations. +From a normal level, meta structures are not visible directly and a Code Gear looks like a function using continuations. +A stub Code Gear is used as a bridge between meta level and normal level. +In this paper we create scripts which generate meta Code Gear and stub Code Gear from normal level Code Gear and Data Gear. +Using these scripts, we can provide a interface mechanisms which are packages of Code Gears and Data Gears. +A simple task manager is constructed using the interfaces which is a simple operating systems. +We will constructs various components of Gears OS and meta computations which provides reliability. +For an example, generating agda program from normal level Code Gear provides proof supports of the Code Gear. +%CbC で OS を記述する。 +%CbCはLLVMで実装されている。 +%codeとcode のあいだをcall ではなくjmpで結ぶことができる(goto) +%gotoをつかうことによりOSに必須なmeta計算を実現できる +%メタ計算は例えばメモリ管理スレッド管理CPUやGPUの資源管理そしてData/Code Gear の管理などである +%metaレベルではcode/data gear は一つの塊として操作される。これをcbcではunion dataとして実装している +%code gear 間の接続はつぎのcode gearの番号とthread structure に相当するcontextをmeta code gear にgoto する +%meta code gear で os の 機能であるメモリ管理やスレッド管理を行う。 +%ユーザーレベルではmeta構造を直接見ることはなく、継続を用いた関数型プログラミングに見える +%metaレベルから見たdata gearをゆーざーれべるのcode gearに接続するにはstub というmeta code gear を用いる +%stubとmetaはユーザーレベルcodegear とdatagearから生成することができる +%本論文ではstub とcontext 管理構造を生成するスクリプトを作成した +%これによりcode gear とdeta gear をデータを操作するinterface というまとまりにすることができる。 +%この仕組みの上に並列処理用のtaskmanagerを簡単なosとして構成することができた。 +%こんごはgears os の様々な構成要素を作成していきたい。 +%またメタ計算を用いて信頼性をあげる方法についても研究を進めていく。 +%例えばユーザーレベルプログラムから定理証明支援系であるagdaのコードを生成することにより、プログラムの正しさを証明していくことが考えられる。 +\end{onecolabstract}] +\thispagestyle{fancy} -\section{section2} +\section{メタ計算の重要性} +プログラムを記述する際、通常の処理の他に、メモリ管理、スレッドの待ち合わせやネットワークの管理、エラーハンドリング等、記述しなければならない処理が存在する。 +これらの計算を Meta Computation と呼ぶ。 + +Meta Computation を通常の計算から切り離して記述するためには処理を細かく分割する必要がある。しかし、関数やクラスなどの単位は容易に分割できない。 + +そこで当研究室では Meta Computation を柔軟に記述するためのプログラミング言語の単位として Code Gear、Data Gear という単位を提案している。 + +Code Gear は関数に比べて細かく分割されているので Meta Computation をより柔軟に記述できる。 +Code Gear、Data Gear にはそれぞれメタレベルの単位である Meta Code Gear、Meta Data Gear が存在し、これらを用いて Meta Computation を実現する。 + +Continuation based C (CbC)\cite{kaito:2015} はこの Code Gear 単位を用いたプログラミング言語として開発している。 + +CbCは軽量継続による遷移を行うので、継続前の Code Gear に戻ることはなく、状態遷移ベースのプログラミングに適している。 -\section{section3} +また、当研究室で開発している Gears OS\cite{gears} は Code Gear、 Data Gear の単位を用いて開発されており、CbC で記述されている。 + +本研究では CbC を用いての Gears OS の実装と CbC における ユーザーの関知しない Meta Computationの自動生成を行なう。 + +%\begin{figure}[htbp] +% \begin{center} +% \includegraphics[width=50mm]{./pic/treeVnc.pdf} +% \end{center} +% \caption{構成される木構造} +% \label{fig:tree} +%\end{figure} + +\section{Continuation based C (CbC)} +CbC は 処理を Code Gear とした単位を用いて記述するプログラミング言語\cite{kaito:2015}である。 +Code Gear は入力と出力を持ち、CbC では引数が入出力となっている。 +Code Gear から次の Code Gear へと goto による継続で遷移で処理を行い、引数として出力を与える。 +図\ref{fig:cs}は Code Gear 間の処理の流れを表している。 -\section{section4} - -\thispagestyle{fancy} -\begin{thebibliography}{9} +\section{今後の課題} +本研究では interface の記述、CbC ファイルから Gears OS の記述に必要な Context と stub の生成を行う perlスクリプトの生成を行なった。 +これにより Gears OS のコードの煩雑さは改善され、ユーザーは Context への接続を意識する必要がなくなった。 +今後の課題は Code Gear からメタ計算を行う meta Code Gear を生成できるようにし、ユーザーがメタレベルの処理を意識せずにコードを記述できるようにする。 +また、今回 perl スクリプトによって Context や stub の生成を行なったが、LLVM/clang\cite{llvm} 上で実装しコンパイラで直接 CbC を実行できるようにすることも優先する。 -\bibitem{1} - -\end{thebibliography} -\end{document} \ No newline at end of file +\nocite{*} +\bibliographystyle{junsrt} +\bibliography{reference} +\end{document}