Mercurial > hg > Papers > 2017 > atton-master
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)} -} -