changeset 115:1b3f1e6b45bc

update
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Sat, 06 Feb 2021 18:24:59 +0900
parents c5b8cf006038
children 2c2767e29244
files paper/chapter/06-evaluation.tex paper/chapter/conclusion.tex paper/master_paper.pdf
diffstat 3 files changed, 17 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/paper/chapter/06-evaluation.tex	Sat Feb 06 17:33:57 2021 +0900
+++ b/paper/chapter/06-evaluation.tex	Sat Feb 06 18:24:59 2021 +0900
@@ -1,8 +1,10 @@
 \chapter{評価}
 
+
 \section{GearsOSの構文作製}
 GearsOSで使われるInterface、およびそのImplementの型定義ファイルを導入した。
 GearsOSでプログラミングする際に通常のC言語やJavaなどの言語の様に、まず型を作成してからプログラミングすることが可能になった。
+言語機能としてはC言語や純粋なCbCより進化しており、現代的と言われるRustやgolangと比較しても十分に実用的な言語になったと言える。
 
 ただし現状のGearsOSでは1ファイルに1つの型定義しかできない。
 アプリケーションとしてGearsOSを動かす現在の例題ではそこまで問題になっていない。
@@ -14,6 +16,16 @@
 本研究によってPerlトランスパイラレベルでのエラーの生成を可能にし、 GearsOSのメタレベルのコードを読まずともバグ検知が可能となった。
 またInterfaceのパーサーなどのAPIを定義したことによって、 トランスパイラ側での様々な処理の拡張性を高めることが可能となった。
 
+今まではGearsOSのモジュール化の仕組みとして使っていたInterfaceであるが、より一般的なInterfaceの使いかたに近づいたと言える。
+特に今まではInterfaceで定義したAPIを満たしていなくても、 GearsOSは容赦なくビルドを進めてしまう問題があった。
+これによりメタコードが含まれた状態でしかコンパイルエラーを発見できなかった。
+またコンパイルエラーも出ず、動作させてみないと解らないエラーも存在していた。
+
+Interface機能が充実したことにより、これらのエラーがビルド時に明確に解るようになった。
+従来行っていたデバッグもコンパイルエラーが発生するため不必要になり、よりプログラミングすることがやりやすい言語になった。
+また、目的としていたメタレベルとノーマルレベルの分離を、コンパイルエラーという観点でもできるようになったと考える。
+
+
 しかし導入したジェネリクス機能については議論の余地がある。
 Perlトランスパイラ側での実装を行ったが、非常に実装するのが困難であった。
 これはC言語から派生したGearsOSのシンタックスと、それを正規表現を主に使ってコード変換を行うPerlトランスパイラが、ジェネリクスとの相性が合わなかった為である。
@@ -28,4 +40,4 @@
 従来のGearsOSではcontext.hやStubCodeGearなどのメタレベルのコードは、比較的手動で実装する必要があった。
 自由度は高いものの、様々な場面で登場するメタレベルのコードをすべて書くのは煩雑である。
 本研究によってメタ計算の自動生成機能がより強化され、さらにメタレベルの計算を活用することが可能となった。
-特にmeta.pmによるMetaCodeGearの切り替えは強力であり、任意のMetaCodeGearに継続することで、モデル検査やGearsOSのデバッグ機能などを組み込むことが可能となった。context.hGen
+特にmeta.pmによるMetaCodeGearの切り替えは強力であり、任意のMetaCodeGearに継続することで、モデル検査やGearsOSのデバッグ機能などを組み込むことが可能となった。
--- a/paper/chapter/conclusion.tex	Sat Feb 06 17:33:57 2021 +0900
+++ b/paper/chapter/conclusion.tex	Sat Feb 06 18:24:59 2021 +0900
@@ -10,6 +10,10 @@
 従来はgenerate\_stub.plで呼び出されていた簡易的なパーサーを、Interface用に再実装し、様々な情報を定義ファイルから取得できるようになった。
 これによりImplementのCbCのファイルの雛形生成や、 Perlインタプリタレベルでの警告の生成などが可能となった。
 
+導入したmeta.pmによってメタ計算を自在に操作することが可能となった。
+また、Interface経由でのpar gotoの呼び出しが可能となった。
+これらの組み合わせで、並列にオブジェクトを動作させ、モデル検査させる仕組みがGearsOS上に整備された。
+実際にモデル検査器を現在のGearsOS上にすでに動作させたことがあり、 GearsOSを使ってOSの信頼性を向上させる目標に対して前進できたと言える。
 
 \section{今後の課題}
 
Binary file paper/master_paper.pdf has changed