Mercurial > hg > Papers > 2017 > mitsuki-sigos
changeset 5:846e85189f33
ka
author | mir3636 |
---|---|
date | Thu, 20 Apr 2017 20:52:25 +0900 |
parents | fd019b8f2781 |
children | 00f95e081a85 |
files | paper/sigos.tex |
diffstat | 1 files changed, 31 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/sigos.tex Wed Apr 19 23:50:09 2017 +0900 +++ b/paper/sigos.tex Thu Apr 20 20:52:25 2017 +0900 @@ -91,6 +91,12 @@ % Introduce % Code Gear は関数に比べて細かく分割されているのでメタ計算をより柔軟に記述できる。 +% 研究目的 + +% 信頼性の高いOS +% これをアセンブラにしていろいろなアプリケーションを作る +% きょだいなCDGの上で動かすと既存のアプリケーションを動かすことができる + \section{Continuation based C (CbC)} CbC は Code Gear という処理の単位を用いて記述するプログラミング言語である。 Code Gear は CbC における最も基本的な処理単位である。 @@ -166,7 +172,25 @@ Gears OS を CbC で実装する上でメタ計算の記述が煩雑であることがわかった。 これらのメタ計算を自動生成することにより Gears OS を記述する上においてより良い構文をユーザーに提供することにした。 +最初にインターフェースを使う使用例を書く + + \section{interface の記述} +% union data はジェネラルなデータセグメントこれには +% goto のひきすうとしてつかう フレームを表している +関数呼び出しのabi +ひきすうで呼び出されるcg ひきすうはぜんぶ定義されていなければならない +メタデータセグメント +名前付きの変数が現れる +書き込みは**読み込みは* +いんたーふぇーすなので実装がいる + + + + + + + interface は呼び出しの引数になる Data Gear の集合であり、そこで呼び出される Code Gear のエントリである。 Code Gear、Data Gear に参照するために Context を通す必要があるが、 interface を記述することでデータ構造のapiと Data Gear を結びつけることが出来、呼び出しが容易になった。 @@ -176,6 +200,11 @@ \lstinputlisting[label=src:interface, caption=interface]{./src/Stack.cbc} \section{Gearef、GearImpl} + + + + + Context には Allocation 等で生成した Data Gear へのポインタが格納されている。 Code Gear が Context にアクセスする際、ポインタを使用してデータを取り出すため、リスト\ref{gearef1} のようにコードが煩雑になってしまう。 そこで Code Gear がデータを参照するための Gearef というマクロを定義した。 @@ -241,6 +270,8 @@ 今後の課題は Code Gear からメタ計算を行う meta Code Gear を生成できるようにし、ユーザーがメタレベルの処理を意識せずにコードを記述できるようにする。 また、今回 perl スクリプトによって Context や stub の生成を行なったが、LLVM/clang 上で実装しコンパイラで直接 CbC を実行できるようにすることを目的とする。 +% めたけいさんをどこに挟むかというのをかく 上 + %\begin{figure}[ht] % \begin{center} % \includegraphics[width=70mm]{./pic/cbc_goto.pdf}