changeset 12:1c9fc852e4ce

Add cbc description
author atton <atton@cr.ie.u-ryukyu.ac.jp>
date Wed, 18 Jan 2017 16:26:44 +0900
parents 13096ef2be8b
children 99a9be7e6bc9
files paper/atton-master.tex paper/cbc.tex paper/reference.bib
diffstat 3 files changed, 72 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/paper/atton-master.tex	Tue Jan 17 17:13:38 2017 +0900
+++ b/paper/atton-master.tex	Wed Jan 18 16:26:44 2017 +0900
@@ -93,13 +93,7 @@
 %chapters
 \chapter{Continuation based C とメタ計算としての検証手法}
 
-\chapter{Continuation based C}
-\section{CodeSegment と DataSegment}
-\section{Continuation based C における CodeSegment と DataSegment}
-\section{MetaCodeSegment と MetaDataSegment}
-\section{GearsOS}
-\section{メタ計算ライブラリ akasha}
-\section{akasha を用いた赤黒木の実装の検証}
+\input{cbc.tex}
 
 \chapter{ラムダ計算と型システム}
 \section{型システムとは}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/cbc.tex	Wed Jan 18 16:26:44 2017 +0900
@@ -0,0 +1,38 @@
+\chapter{Continuation based C}
+
+Continuation based C (CbC)は当研究室で開発しているプログラミング言語であり、OSや組み込みソフトウェアの開発を主な対象としている。
+CbC は C言語の下位の言語であり、ソースコードの構文はほとんどC言語と同じように定義されているが、よりアセンブラに近い形でプログラムを記述する。
+CbC は CodeSegment と呼ばれる単位で処理を定義し、それらを組み合わせることにでプログラム全体を構成する。
+データの単位は DataSegment と呼ばれる単位で定義し、それら CodeSegment によって変更していくことでプログラムの実行となる。
+CbC の処理系には llvm/clang による実装\cite{110009766999} と gcc\cite{weko_82695_1}による実装などが存在する。
+
+
+\section{CodeSegment と DataSegment}
+本研究室では検証を行ないやすいプログラムの単位として CodeSegment と DataSegment を用いるプラグラミングスタイルを提案している。
+
+CodeSegment は処理の単位である。
+入力を受け取り、それに対して処理を行なった後を出力を行なう。
+また、CodeSegment は他の CodeSegment と組み合わせることが可能である。
+あるCodeSegment A を CodeSegment B に接続した場合、 A の出力は B の入力となる。
+
+% TODO: figure (cs A . cs B)
+
+DataSegment は CodeSegment が扱うデータの単位であり、処理に必要なデータが全て入っている。
+CodeSegment の入力となる DataSegment は Input DataSegment と呼ばれ、出力は Output DataSegment と呼ばれる。
+CodeSegment A と CodeSegment B を接続した時、A の Output DataSegment は B の入力 Input DataSegment となる。
+
+% TODO: figure (cs A --(ds)--> cs B)
+
+
+\section{Continuation based C における CodeSegment と DataSegment}
+Continuation based C における CodeSegment は返り値を持たない関数として表現される。 % TODO: ref
+CodeSegment を定義するためには関数宣言を行なう際に返り値の型として \verb/__code/ キーワードを用いる。
+
+% TODO: cs の例
+
+
+\section{MetaCodeSegment と MetaDataSegment}
+\section{GearsOS}
+\section{メタ計算ライブラリ akasha}
+\section{akasha を用いた赤黒木の実装の検証}
+
--- a/paper/reference.bib	Tue Jan 17 17:13:38 2017 +0900
+++ b/paper/reference.bib	Wed Jan 18 16:26:44 2017 +0900
@@ -8,14 +8,14 @@
 }
 
 @book{opac-b1092711,
-   title     = "Introduction to higher order categorical logic",
-   author    = "Lambek, Joachim (math辿maticien) and Scott, P. J.",
-   series    = "Cambridge studies in advanced mathematics",
+   title = "Introduction to higher order categorical logic",
+   author = "Lambek, Joachim (mathématicien) and Scott, P. J.",
+   series = "Cambridge studies in advanced mathematics",
    publisher = "Cambridge University Press",
-   address   = "Cambridge, New York (N. Y.), Melbourne",
-   url       = "http://opac.inria.fr/record=b1092711",
-   isbn      = "0-521-24665-2",
-   year      = 1986
+   address = "Cambridge, New York (N. Y.), Melbourne",
+   url = "http://opac.inria.fr/record=b1092711",
+   isbn = "0-521-24665-2",
+   year = 1986
 }
 
 @book{BarrM:cattcs,
@@ -59,23 +59,35 @@
   ftp         = {ftp://ftp.cs.nott.ac.uk/nott-fp/reports/yale/RR-1004.ps}
 }
 
+@article{110009766999,
+author="Kaito, Tokumori and Shinji, Kono",
+title="The implementation of Continuation based C Compiler on LLVM/clang 3.5",
+journal="IPSJ SIG Notes",
+ISSN="",
+publisher="Information Processing Society of Japan (IPSJ)",
+year="2014",
+month="may",
+volume="2014",
+number="10",
+pages="1-11",
+URL="http://ci.nii.ac.jp/naid/110009766999/en/",
+DOI="",
+}
+
+@inproceedings{weko_82695_1,
+   author = "大城,信康 and 河野,真治",
+   title = "Continuation based C の GCC4.6 上の実装について",
+   booktitle = "第53回プログラミング・シンポジウム予稿集",
+   year  = "2012",
+   volume = "2012",
+   number = "",
+   pages = "69--78",
+   month = "jan"
+}
+
 @misc{agda,
     title = {The Agda wiki},
     howpublished = {\url{http://wiki.portal.chalmers.se/agda/pmwiki.php}},
     note = {Accessed: 2015/02/17(Tue)}
 }
 
-
-@misc{git,
-    title = {Git},
-    howpublished = {\url{http://git-scm.com/}},
-    note = {Accessed: 2015/02/17(Tue)}
-}
-
-
-@misc{hg,
-    title = {Mercurial SCM},
-    howpublished = {\url{http://mercurial.selenic.com/}},
-    note = {Accessed: 2015/02/17(Tue)}
-}
-