Mercurial > hg > Papers > 2021 > anatofuz-master
changeset 142:911bf1a2c6fa
...
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 09 Feb 2021 20:15:52 +0900 |
parents | d60edd5f3a04 |
children | 6fa202c1db5f |
files | paper/chapter/02-cbc.tex paper/chapter/03-gears.tex paper/chapter/04-interface.tex paper/master_paper.pdf |
diffstat | 4 files changed, 7 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/chapter/02-cbc.tex Tue Feb 09 18:07:53 2021 +0900 +++ b/paper/chapter/02-cbc.tex Tue Feb 09 20:15:52 2021 +0900 @@ -104,8 +104,8 @@ プログラミング言語からメタ計算を取り扱う場合、 言語の特性に応じて様々な手法が使われてきた。 -関数型プログラミングの見方では、 メタ計算はモナドの形で表現されていた。\cite{moggi-monad} -OSの研究ではメタ計算の記述に型付きアセンブラを用いることもある。\cite{Yang:2010:SLI:1806596.1806610} +関数型プログラミングの見方では、 メタ計算はモナドの形で表現されていた\cite{moggi-monad}。 +OSの研究ではメタ計算の記述に型付きアセンブラを用いることもある\cite{Yang:2010:SLI:1806596.1806610}。 通常ユーザーがメタレベルのコードを扱う場合は特定のAPIを経由することになる。 プログラム実行中のスタックの中には、 プログラムが現在実行している関数までのフレームや、各関数でアロケートされた変数などの情報が入る。
--- a/paper/chapter/03-gears.tex Tue Feb 09 18:07:53 2021 +0900 +++ b/paper/chapter/03-gears.tex Tue Feb 09 20:15:52 2021 +0900 @@ -1,6 +1,6 @@ \chapter{GearsOS} -GearsOSとはContinuation Based Cを用いて信頼性と拡張性の両立を目指して実装しているOSプロジェクトである。\cite{gears} +GearsOSとはContinuation Based Cを用いて信頼性と拡張性の両立を目指して実装しているOSプロジェクト\cite{gears}である。 CodeGearとDataGearを基本単位として実行する。 CodeGearを基本単位としているため、 各CodeGearは割り込みされず実行される必要がある。 割り込みを完全に制御することは一般的には不可能であるが、 GearsOSのメタ計算部分でこれを保証したい。 @@ -484,9 +484,9 @@ \section{CbC xv6} -CbC xv6はGearsOSのシステムを利用してxv6 OSの置き換えを目指しているプロジェクトである。\cite{cbcxv6repo} +CbC xv6はGearsOSのシステムを利用してxv6 OSの置き換えを目指しているプロジェクト\cite{cbcxv6repo}である。 xv6はv6 OS\cite{lions1996lions}をx86アーキテクチャ用にMITによって実装し直されたものである。 -Raspberry Pi上での動作を目指しているため、 ARMアーキテクチャ用に改良されたバージョンを利用している。\cite{xv6rpi} +Raspberry Pi上での動作を目指しているため、 ARMアーキテクチャ用に改良されたバージョン\cite{xv6rpi}を利用している。 書き換えにおいてはビルドシステムはCMakeを利用し、 Perlクロスコンパイラを導入してたりとGearsOSのビルドシステムとほぼ同じシステムを利用している。 GearsOSを使った比較的巨大な実用的なアプリケーションであるため、 xv6の書き換えを進むに連れて様々な面で必要な機能や課題が生まれている。
--- a/paper/chapter/04-interface.tex Tue Feb 09 18:07:53 2021 +0900 +++ b/paper/chapter/04-interface.tex Tue Feb 09 20:15:52 2021 +0900 @@ -329,7 +329,7 @@ Javaでは様々な手法でこのツールを実装している。 Microsoftが提唱しているIDEとプログラミング言語のコンパイラをつなぐプロトコルにLanguage Serverがある。 Language Serverはコーディング中のソースコードをコンパイラ自身でパースし、 型推論やエラーの内容などをIDE側に通知するプロトコルである。 -主要なJavaのLanguage Serverの実装であるeclipse.jdt.ls\cite{eclipse.jdt.ls}では、 LanguageServerの機能として未実装のメソッドを検知する機能が実装されている。\cite{eclipse_pull322} +主要なJavaのLanguage Serverの実装であるeclipse.jdt.ls\cite{eclipse.jdt.ls}では、 LanguageServerの機能として未実装のメソッドを検知する機能が実装されている\cite{eclipse_pull322}。 この機能を応用してvscode上から未実装のメソッドを特定し、 雛形を生成する機能がある。 他にもIntelliJ IDEなどの商用IDEでは、 IDEが独自に未実装のメソッドを検知、雛形を生成する機能を実装している。 @@ -512,4 +512,4 @@ ソースコード\ref{src:pargotoPhil3}では、par goto作製したContextであるcontext{\textgreater}taskに、 Gearefマクロを用いて引数としてPhilsのインスタンスを代入している。(ソースコード3、 15行目) またthinkingの引数はCodeGearが必要であったので、これもnextに設定している。(ソースコード4、 16行目) この処理は、generate\_stub.plで、 par goto時にInterface呼び出しをしている際のパターンを新たに実装し、Interfaceのパースの結果から得られた引数に書き込む様なルーチンで実現している。 -\lstinputlisting[label=src:pargotoPhil3, caption=改善されたInterface経由でのpar goto]{src/ParGoto3.cbc} \ No newline at end of file +\lstinputlisting[label=src:pargotoPhil3, caption=改善されたInterface経由でのpar goto]{src/ParGoto3.cbc}