# HG changeset patch # User anatofuz # Date 1588245866 -32400 # Node ID cce07a6da420012b6a3f2e4ba0480621c47a5f49 # Parent 60693eee5ee3020e57425aa7fb332a6dfc18d05e ... diff -r 60693eee5ee3 -r cce07a6da420 paper/anatofuz-sigos.md --- 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上にそれぞれ実装されている。 diff -r 60693eee5ee3 -r cce07a6da420 paper/anatofuz-sigos.pdf Binary file paper/anatofuz-sigos.pdf has changed diff -r 60693eee5ee3 -r cce07a6da420 paper/anatofuz-sigos.tex --- 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}