Mercurial > hg > Papers > 2019 > anatofuz-thesis
changeset 54:dc67d629bdd9
update prepaper
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 16 Feb 2019 14:19:38 +0900 |
parents | 1499d4fbbb31 |
children | 86caceecf1c9 |
files | prepaper/finalpre.pdf prepaper/finalpre.tex |
diffstat | 2 files changed, 0 insertions(+), 47 deletions(-) [+] |
line wrap: on
line diff
--- a/prepaper/finalpre.tex Sat Feb 16 13:55:01 2019 +0900 +++ b/prepaper/finalpre.tex Sat Feb 16 14:19:38 2019 +0900 @@ -90,33 +90,6 @@ \end{onecolabstract}] \thispagestyle{fancy} -\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 に戻ることはなく、状態遷移ベースのプログラミングに適している。 - -また、当研究室で開発している 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{CbC} Perl6処理系の改良にはgccとLLVM/Clang上に実装したContinuation based C(CbC)を用いる. CbCはCodeGearを基本的な処理単位とし,CodeGearの遷移でプログラムを記述するCの下位言語である. @@ -137,18 +110,7 @@ RakudoはMoarVMの他にJVM,Javascriptを動作環境として選択可能である. 言語的な特徴ではPerl5とは違いオブジェクト指向のサポートが強力になり,漸進的型付け言語としての特徴を持つ. -%処理時間は状況にもよるが231Kbのファイルを正規表現で検索する例題を実行した場合 処理時間は状況によるが,231KBのファイルを正規表現で検索する例題の場合Perl5が0.04sに対しMoarVMに乗せたPerl6は0.86sとおよそ20倍の速度差がある. -%* Perl5 -% * 0.04s -%* Ruby -% * 0.15s -%* Python -% * 0.06s -%* Java -% * 0.27s -%* Perl6(Moar) -% * 0.86s \section{NQP} NQPとはPerl6のサブセットである. @@ -163,15 +125,6 @@ MoarVMはPerl6に特化したVMである.C言語で実装されている. JITコンパイルなどが現在導入されているが,起動時間などが低速である問題がある. MoarVM独自のByteCodeがあり,NQPからこれを出力する機能などが存在している. -%Perl6のコンパイルの流れをT図 (図\ref{perl6buil})に示す. -% IT図をいれる -\begin{figure}[ht] - \begin{center} - \includegraphics[width=65mm]{pic/tgraph.pdf} - \end{center} - \caption{Perl6のビルドフロー} - \label{fig:perl6buil} -\end{figure} \section{MoarVMのディスパッチ}