# HG changeset patch # User mir3636 # Date 1492506399 -32400 # Node ID f126e8e89573c6b274a163fcac6ea46126f8315e # Parent 39aeddde8be2790400c8cbea8a271043c3758a03 up diff -r 39aeddde8be2 -r f126e8e89573 paper/sigos.dvi Binary file paper/sigos.dvi has changed diff -r 39aeddde8be2 -r f126e8e89573 paper/sigos.log --- a/paper/sigos.log Sat Apr 15 19:14:30 2017 +0900 +++ b/paper/sigos.log Tue Apr 18 18:06:39 2017 +0900 @@ -1,4 +1,4 @@ -This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.2.4) 15 APR 2017 15:03 +This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.2.4) 18 APR 2017 18:06 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -206,4 +206,4 @@ 929 hyphenation exceptions out of 8191 30i,10n,49p,213b,230s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on sigos.dvi (3 pages, 19096 bytes). +Output written on sigos.dvi (3 pages, 19104 bytes). diff -r 39aeddde8be2 -r f126e8e89573 paper/sigos.pdf Binary file paper/sigos.pdf has changed diff -r 39aeddde8be2 -r f126e8e89573 paper/sigos.tex --- a/paper/sigos.tex Sat Apr 15 19:14:30 2017 +0900 +++ b/paper/sigos.tex Tue Apr 18 18:06:39 2017 +0900 @@ -151,15 +151,15 @@ \section{Gearef、GearImpl} Context には Allocation 等で生成した Data Gear へのポインタが格納されている。 -Code Gear が Context にアクセスする際、ポインタを使用してデータを取り出すためコードが煩雑になってしまう。 +Code Gear が Context にアクセスする際、ポインタを使用してデータを取り出すため、コードが煩雑になってしまう。 そこで Code Gear がデータを参照するための Gearef というマクロを定義した。 Gearef に Context と型を渡すことでデータの参照が行える。 また impliment のデータを参照する際も、ポインタでの記述が複雑になってしまうため 同様に GearImpl を定義した。 GearImpl は Context と interface 名、interface の変数名を指定して参照する。 \section{stub Code Gear} -Code Gear が必要とする Data Gear を取り出す際に Context を通す必要がある。 -しかし、Context を直接扱うのはセキュリティ上好ましくない。 +Code Gear が必要とする Data Gear を取り出す際に Context を通す必要があるが、 +Context を直接扱うのはセキュリティ上好ましくない。 そこで Context から必要なデータを取り出して Code Gear に接続する stub Code Gear を定義し、これを介して間接的に必要な Data Gear にアクセスする。 stub Code Gear は Code Gear 毎に生成され、次の Code Gear へと継続する間に挟まれる。 @@ -170,7 +170,7 @@ \section{stub Code Segment の生成} stub Code Gear は Code Gear 間の継続に挟まれる Code Gear が必要な Data Gear を Context から取り出す処理を行うものである。 -stub Code Gear は Code Gear 毎に記述する必要があり、そのCode Gear の引数を見て取り出す Data Gear を選択する。 +Code Gear 毎に記述する必要があり、そのCode Gear の引数を見て取り出す Data Gear を選択する。 stub Code Gear を 自動生成することによって Code Gear の記述量を約半分にすることができる。 stub を生成するために generate\_stub は指定された cbc ファイルの \_\_code型である Code Gear を取得し、引数から必要な Data Gear を選択する。 @@ -200,6 +200,9 @@ \section{今後の課題} 本研究では LLVM/Clang のデバッグ、interface の記述、CbC ファイルから Gears OS の記述に必要な Context と stub の生成を行う perl スクリプトの生成を行なった。 これにより Gears OS のコードの煩雑さは改善され、ユーザーは Context への接続を意識する必要がなくなった。 + +%しかし、現在のスクリプトでは stub + 今後の課題は Code Gear からメタ計算を行う meta Code Gear を生成できるようにし、ユーザーがメタレベルの処理を意識せずにコードを記述できるようにする。 また、今回 perl スクリプトによって Context や stub の生成を行なったが、LLVM/clang 上で実装しコンパイラで直接 CbC を実行できるようにすることを目的とする。