Mercurial > hg > Papers > 2020 > anatofuz-sigos
changeset 13:cce07a6da420
...
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 30 Apr 2020 20:24:26 +0900 |
parents | 60693eee5ee3 |
children | dff5f09c28c7 |
files | paper/anatofuz-sigos.md paper/anatofuz-sigos.pdf paper/anatofuz-sigos.tex |
diffstat | 3 files changed, 18 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/anatofuz-sigos.md Thu Apr 30 19:19:08 2020 +0900 +++ b/paper/anatofuz-sigos.md Thu Apr 30 20:24:26 2020 +0900 @@ -37,3 +37,12 @@ 本論文ではxv6のファイルシステム関連の内部処理と、システムコール実行時に実行される処理について分析を行う。 xv6 kernelのファイルシステムは階層構造で表現されており、 最も低レベルなものにディスク階層、 抽象度が最も高いレベルのものにファイルディスクリプタがある。 + + +# Continuation Based C + +Continuation Based C(CbC)とはC言語の下位言語であり、 関数呼び出しではなく継続を導入したプログラミング言語である。 +CbCでは通常の関数呼び出しの他に、 関数呼び出し時のスタックの操作を行わず、次のコードブロックにjmp命令で移動する継続が導入されている。 +この継続はSchemeなどの環境を持つ継続とは異なり、 スタックを持たず環境を保存しない継続である為に軽量である事から軽量継続と呼べる。 +またCbCではこの軽量継続を用いた再帰呼び出しを利用することで、 for文などのループ文を廃し関数型プログラミングに近いスタイルでプログラミングすることが可能である。 +現在CbCはGCC及びLLVM/clang上にそれぞれ実装されている。
--- a/paper/anatofuz-sigos.tex Thu Apr 30 19:19:08 2020 +0900 +++ b/paper/anatofuz-sigos.tex Thu Apr 30 20:24:26 2020 +0900 @@ -90,6 +90,15 @@ 本論文ではxv6のファイルシステム関連の内部処理と、システムコール実行時に実行される処理について分析を行う。 xv6 kernelのファイルシステムは階層構造で表現されており、 最も低レベルなものにディスク階層、 抽象度が最も高いレベルのものにファイルディスクリプタがある。 + +\section{Continuation Based C} + +Continuation Based C(CbC)とはC言語の下位言語であり、 関数呼び出しではなく継続を導入したプログラミング言語である。 +CbCでは通常の関数呼び出しの他に、 関数呼び出し時のスタックの操作を行わず、次のコードブロックにjmp命令で移動する継続が導入されている。 +この継続はSchemeなどの環境を持つ継続とは異なり、 スタックを持たず環境を保存しない継続である為に軽量である事から軽量継続と呼べる。 +またCbCではこの軽量継続を用いた再帰呼び出しを利用することで、 for文などのループ文を廃し関数型プログラミングに近いスタイルでプログラミングすることが可能である。 +現在CbCはGCC及びLLVM/clang上にそれぞれ実装されている。 + \nocite{*} \bibliographystyle{ipsjunsrt} \bibliography{anatofuz-bib}