# HG changeset patch # User anatofuz # Date 1588570266 -32400 # Node ID d2a1d3d75484697d58457bf23bb8f6d674e8cea6 # Parent 2be09c284a2e9c0111605cd087cd1921859f4484 ... diff -r 2be09c284a2e -r d2a1d3d75484 paper/anatofuz-sigos.md --- a/paper/anatofuz-sigos.md Mon May 04 14:25:42 2020 +0900 +++ b/paper/anatofuz-sigos.md Mon May 04 14:31:06 2020 +0900 @@ -51,7 +51,7 @@ CodeGearの呼び出しは`goto`文によって行われる。 -``` src:cbc_example, CbCで階乗を求める処理 +``` lab:src:cbc_example, cap:CbCで階乗を求める処理 __code factorial(struct F arg) { if (arg.n<0) { exit(1); @@ -84,6 +84,7 @@ GearsOSでは、 CodeGearとDataGearを元にプログラミングを行う。 遷移する各CodeGearの実行に必要なデータの整合性の確認などのメタ計算は、 MetaCodeGearと呼ばれる各CodeGearごと実装されたCodeGearで計算を行う。 このMetaCodeGearの中で参照されるDataGearをMetaDataGearと呼ぶ。 +![lab:meta-cg-dg, cap:CodeGearとMetaCodeGear](./fig/meta-cg-dg.pdf) 各CodeGearの入出力や、各CodeGearそのものの関数ポインタなどは、関数型プログラミングの側面から見るとプログラマが直接操作するのを禁じる必要がある。 このためにGearsOSには実行する処理に必要なCodeGear及びDataGearを管理する、 contextというMetaDataGearが存在する。 @@ -114,4 +115,3 @@ したがって特定の関数内の処理のBasicBlockを分析し、 BasicBlockに対応したCodeGearへ変換することで状態遷移系への変換を行った。 -![perf, perl](./fig/meta-cg-dg.pdf) diff -r 2be09c284a2e -r d2a1d3d75484 paper/anatofuz-sigos.pdf Binary file paper/anatofuz-sigos.pdf has changed diff -r 2be09c284a2e -r d2a1d3d75484 paper/anatofuz-sigos.tex --- a/paper/anatofuz-sigos.tex Mon May 04 14:25:42 2020 +0900 +++ b/paper/anatofuz-sigos.tex Mon May 04 14:31:06 2020 +0900 @@ -160,6 +160,13 @@ GearsOSでは、 CodeGearとDataGearを元にプログラミングを行う。 遷移する各CodeGearの実行に必要なデータの整合性の確認などのメタ計算は、 MetaCodeGearと呼ばれる各CodeGearごと実装されたCodeGearで計算を行う。 このMetaCodeGearの中で参照されるDataGearをMetaDataGearと呼ぶ。 +\begin{figure}[tb] + \begin{center} + \includegraphics[width=70mm]{./fig/meta-cg-dg.pdf} + \end{center} + \caption{CodeGearとMetaCodeGear} + \label{meta-cg-dg} +\end{figure} 各CodeGearの入出力や、各CodeGearそのものの関数ポインタなどは、関数型プログラミングの側面から見るとプログラマが直接操作するのを禁じる必要がある。 このためにGearsOSには実行する処理に必要なCodeGear及びDataGearを管理する、 contextというMetaDataGearが存在する。 @@ -190,13 +197,6 @@ したがって特定の関数内の処理のBasicBlockを分析し、 BasicBlockに対応したCodeGearへ変換することで状態遷移系への変換を行った。 -\begin{figure}[tb] - \begin{center} - \includegraphics[width=70mm]{./fig/meta-cg-dg.pdf} - \end{center} - \caption{perl} - \label{perf} -\end{figure} \nocite{*} \bibliographystyle{ipsjunsrt} diff -r 2be09c284a2e -r d2a1d3d75484 paper/md2tex.pl --- a/paper/md2tex.pl Mon May 04 14:25:42 2020 +0900 +++ b/paper/md2tex.pl Mon May 04 14:31:06 2020 +0900 @@ -26,7 +26,7 @@ if (!$in_codeblock) { $line = '\end{lstlisting}' ."\n"; } - if ($line =~ /``` (.*),\s*(.*)/) { + if ($line =~ /``` lab:(.*),\s*cap:(.*)/) { $line = '\b'."egin{lstlisting}[frame=lrbt,label=$1,caption={$2}]\n"; } } @@ -46,7 +46,7 @@ $line =~ s/`([\s\w_\-\\]+)`/\\texttt{$inlineCodeBlock}/; } - if ($line =~ /!\[(.*),\s*(.*)\]\((.*)\)/) { + if ($line =~ /!\[lab:(.*),\s*cap:(.*)\]\((.*)\)/) { $line = <<"EOF"; \\begin{figure}[tb] \\begin{center} @@ -58,7 +58,7 @@ EOF } - if ($line =~ /^\[(.*),\s*(.*)\]\((.*)\)/) { + if ($line =~ /^\[lab:(.*),\s*cap:(.*)\]\((.*)\)/) { $line = '\l' ."stinputlisting[label=$1, caption={$2}]{$3}\n"; } print $texFH $line;