# HG changeset patch # User mir3636 # Date 1487178873 -32400 # Node ID aed360eb1146a835b5160ef60662e432f4ebd556 # Parent 981020cb97ae3dca5224eb6b02d8f87b2f73d6f4 update diff -r 981020cb97ae -r aed360eb1146 final_main/bibliography.tex --- a/final_main/bibliography.tex Wed Feb 15 23:24:05 2017 +0900 +++ b/final_main/bibliography.tex Thu Feb 16 02:14:33 2017 +0900 @@ -8,4 +8,18 @@ %書籍、論文、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} diff -r 981020cb97ae -r aed360eb1146 final_main/chapter1.tex --- a/final_main/chapter1.tex Wed Feb 15 23:24:05 2017 +0900 +++ b/final_main/chapter1.tex Thu Feb 16 02:14:33 2017 +0900 @@ -17,11 +17,11 @@ Code Gear は関数に比べて細かく分割されているので Meta Computation をより柔軟に記述できる。 Code Gear、Data Gear にはそれぞれメタレベルの単位である Meta Code Gear、Meta Data Gear が存在し、これらを用いて Meta Computation を実現する。 -Continuation based C (CbC) はこの Code Gear 単位を用いたプログラミング言語として開発している。 +Continuation based C (CbC)\cite{cbc} はこの Code Gear 単位を用いたプログラミング言語として開発している。 CbCは軽量継続による遷移を行うので、継続前の Code Gear に戻ることはなく、状態遷移ベースのプログラミングに適している。 -また、当研究室で開発している Gears OS は Code Gear、 Data Gear の単位を用いて開発されており、CbC で記述されている。 +また、当研究室で開発している Gears OS\cite{gears} は Code Gear、 Data Gear の単位を用いて開発されており、CbC で記述されている。 本研究では CbC を用いての Gears OS の実装と CbC における ユーザーの関知しない Meta Computationの自動生成を行なう。 diff -r 981020cb97ae -r aed360eb1146 final_main/chapter6.tex --- a/final_main/chapter6.tex Wed Feb 15 23:24:05 2017 +0900 +++ b/final_main/chapter6.tex Thu Feb 16 02:14:33 2017 +0900 @@ -1,2 +1,6 @@ \chapter{今後の課題} -本研究では CbC +本研究では LLVM/Clang のデバッグ、interface の記述、CbC ファイルから Gears OS の記述に必要な Context と stub の生成を行う perl スクリプトの生成を行なった。 +これにより Gears OS のコードの煩雑さは改善され、ユーザーは Context への接続を意識する必要がなくなった。 +今後の課題は Code Gear から meta computation を行う meta Code Gear を生成できるようにし、ユーザーがメタレベルの処理を意識せずにコードを記述できるようにする。 +また、今回 perl スクリプトによって Context や stub の生成を行なったが、LLVM/clang 上で実装しコンパイラで直接 CbC を実行できるようにすることも優先する。 + diff -r 981020cb97ae -r aed360eb1146 final_main/main.pdf Binary file final_main/main.pdf has changed diff -r 981020cb97ae -r aed360eb1146 final_main/thanks.tex --- a/final_main/thanks.tex Wed Feb 15 23:24:05 2017 +0900 +++ b/final_main/thanks.tex Thu Feb 16 02:14:33 2017 +0900 @@ -8,18 +8,13 @@ \hspace{1zw} -%% 本研究の遂行,また本論文の作成にあたり、御多忙にも関わらず終始懇切なる御指導と御教授を賜わりましたhoge助教授に深く感謝したします。 - -%% また、本研究の遂行及び本論文の作成にあたり、日頃より終始懇切なる御教授と御指導を賜わりましたhoge教授に心より深く感謝致します。 + 本研究の遂行,また本論文の作成にあたり、御多忙にも関わらず終始懇切なる御指導と御教授を賜わりました河野真治准教授に深く感謝したします。 +また、本研究の遂行及び本論文の作成にあたり、数々の貴重な御助言と細かな御配慮を戴いた伊波立樹さん、比嘉健太さん、並びに並列信頼研究室の皆様に深く感謝致します。 -%% 数々の貴重な御助言と細かな御配慮を戴いたhoge研究室のhoge氏に深く感謝致します。 - -%% また一年間共に研究を行い、暖かな気遣いと励ましをもって支えてくれたhoge研究室のhoge君、hoge君、hogeさん並びにhoge研究室のhoge、hoge君、hoge君、hoge君、hoge君に感謝致します。 - -%% 最後に、有意義な時間を共に過ごした情報工学科の学友、並びに物心両面で支えてくれた両親に深く感謝致します。 +最後に、有意義な時間を共に過ごした情報工学科の学友、並びに物心両面で支えてくれた両親に深く感謝致します。 %% \begin{flushright} -%% % 2014年 3月 \\ 徳森海斗 +%% % 2017年 3月 \\ 宮城光希 %% \end{flushright} diff -r 981020cb97ae -r aed360eb1146 final_pre/finalPre.pdf Binary file final_pre/finalPre.pdf has changed diff -r 981020cb97ae -r aed360eb1146 final_pre/finalPre.tex --- a/final_pre/finalPre.tex Wed Feb 15 23:24:05 2017 +0900 +++ b/final_pre/finalPre.tex Thu Feb 16 02:14:33 2017 +0900 @@ -29,26 +29,26 @@ \twocolumn [ \maketitle \begin{onecolabstract} -We are developping Gears OS using Continuation based C (CbC). -Gears OS provids highly reliable computation using meta computation. +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 transfar from a Code Gear to another Code Gear is implemented using a CbC's goto statement, -which is compiled as a jump instraction in CbC. -Meta computations are key components of Gears OS, which provids memory managements, thread managements, +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 statments provids a ways of implementing meta computations. +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 transfar from a Code Gear is a goto statement to meta Code Gear with next Code Gear number and -a Context which coresponds thread structure or an enviroments in a functional programing. +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 nomal 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 nomal level. -In this paper we create scripts which generate meta Code Gear and stub Code Gear from nomal level Code Gear and Data Gear. +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 TaskManager is constracted using the interfaces which is a simple operating systems. -We will constracts various compornents of Gears OS and meta computations which provids reliabilty. -For an example, generating agda program from nomal level Code Gear provids proof suports of the Code Gear. +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) @@ -80,11 +80,11 @@ Code Gear は関数に比べて細かく分割されているので Meta Computation をより柔軟に記述できる。 Code Gear、Data Gear にはそれぞれメタレベルの単位である Meta Code Gear、Meta Data Gear が存在し、これらを用いて Meta Computation を実現する。 -Continuation based C (CbC) はこの Code Gear 単位を用いたプログラミング言語として開発している。 +Continuation based C (CbC)\cite{kaito:2015} はこの Code Gear 単位を用いたプログラミング言語として開発している。 CbCは軽量継続による遷移を行うので、継続前の Code Gear に戻ることはなく、状態遷移ベースのプログラミングに適している。 -また、当研究室で開発している Gears OS は Code Gear、 Data Gear の単位を用いて開発されており、CbC で記述されている。 +また、当研究室で開発している Gears OS\cite{gears} は Code Gear、 Data Gear の単位を用いて開発されており、CbC で記述されている。 本研究では CbC を用いての Gears OS の実装と CbC における ユーザーの関知しない Meta Computationの自動生成を行なう。 @@ -97,7 +97,7 @@ %\end{figure} \section{Continuation based C (CbC)} -CbC は 処理を Code Gear とした単位を用いて記述するプログラミング言語である。 +CbC は 処理を Code Gear とした単位を用いて記述するプログラミング言語\cite{kaito:2015}である。 Code Gear は入力と出力を持ち、CbC では引数が入出力となっている。 Code Gear から次の Code Gear へと goto による継続で遷移で処理を行い、引数として出力を与える。 図\ref{fig:cs}は Code Gear 間の処理の流れを表している。 @@ -165,9 +165,11 @@ Gears OS を現在の CbC の機能のみを用いて記述すると Context や stub Code Gear の記述を行わなくてはならず、これには多くの労力を要する。 そのため、この記述を助けるために Context を生成する generate\_context と stub Code Gear を生成する generate\_stub を perl スクリプトで作成した。 -\section{まとめ} - - +\section{今後の課題} +本研究では interface の記述、CbC ファイルから Gears OS の記述に必要な Context と stub の生成を行う perlスクリプトの生成を行なった。 +これにより Gears OS のコードの煩雑さは改善され、ユーザーは Context への接続を意識する必要がなくなった。 +今後の課題は Code Gear から meta computation を行う meta Code Gear を生成できるようにし、ユーザーがメタレベルの処理を意識せずにコードを記述できるようにする。 +また、今回 perl スクリプトによって Context や stub の生成を行なったが、LLVM/clang\cite{llvm} 上で実装しコンパイラで直接 CbC を実行できるようにすることも優先する。 \nocite{*} \bibliographystyle{junsrt} diff -r 981020cb97ae -r aed360eb1146 final_pre/reference.bib --- a/final_pre/reference.bib Wed Feb 15 23:24:05 2017 +0900 +++ b/final_pre/reference.bib Thu Feb 16 02:14:33 2017 +0900 @@ -1,5 +1,18 @@ -@Misc{tightvnc, - author = "{TightVNC Software}", - howpublished = "\url{http://www.tightvnc.com}" +@Misc{kaito:2015, + author = "{徳森 海斗, 河野真治}", + title = "LLVM Clang 上の Continuation based C コンパイラ の改良", + journal = "琉球大学工学部情報工学科平成 27 年度学位論文", + year = 2015 } +@Misc{gears, + author = "{伊波立樹, 東恩納琢偉, 河野真治}", + title = "Code Gear、Data Gear に基づく OS のプロトタイプ", + journal = "情報処理学会システムソフトウェアとオペレーティング・システム研究会", + year = 2016 +} + +@Misc{llvm, + author = "{The LLVM Compiler Infrastructure}", + howpublished = "\url{http://llvm.org}" +} diff -r 981020cb97ae -r aed360eb1146 presen/slide.md --- a/presen/slide.md Wed Feb 15 23:24:05 2017 +0900 +++ b/presen/slide.md Thu Feb 16 02:14:33 2017 +0900 @@ -11,14 +11,13 @@ - しかし、関数やクラスなどの単位は容易に分割できない。 - そこで当研究室では Meta Computation を柔軟に記述 するためのプログラミング言語の単位として Code Gear、 Data Gear という単位を提案している。 -# Continuation based C (CbC) -- Continuation based C (CbC) はこの Code Gear 単位を用いたプログラミング言語として開発している。 -- Code Gear から 次の Code Gear へと goto による継続で遷移で処理を行い、引数として出力を与える。 +# Code Gear と Data Gear +- Code Gear は関数に比べて細かく分割されているので Meta Computation をより柔軟に記述できる。 +- Data Gear はデータの単位であり、Code Gear は 任意の数の Input Data Gear を参照して処理を行い、Output Data Gear を出力し処理を終える。 -# Code Gear -- Code Gear は CbC における最も基本的な処理単位である。 -- 最も基本的な CbC のコードの一例である。 -- Code Gear は関数に比べて細かく分割されているので Meta Computation をより柔軟に記述できる。 +# Continuation based C (CbC) +- Continuation based C (CbC) はこの Code Gear 単位を 用いたプログラミング言語として開発している。 +- Code Gear から 次の Code Gear へと goto による継続で遷移で処理を行い、引数として出力を与える。 # Gears OS - Gears OS では並列実行するための Task を、実行する Code Gear 、実行に必要な Input Data Gear 、Output Data Gear の組で表現する。