Mercurial > hg > Members > innparusu > slides
view 2015/2015_04_14/slide.md @ 1:3b7da0b661cc
Add slide.md
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 04 Aug 2015 18:12:46 +0900 |
parents | |
children |
line wrap: on
line source
title: CbCのData Segmentの設計 author: Tatsuki IHA profile: lang: Japanese # 研究目的 - 当研究室では, プログラムをコードセグメント, データセグメントという単位を用いて記述する手法を提案している. - この手法を用いてプログラミングを行うContinuation based C というプログラミング言語を開発しており, これはCの下位言語にあたる. - この研究ではGearsのData Segmentの設計を行いつつ, CbCでのData Segmentの設計, 実装を行うことを目的とする. # 近況報告 - GearsのData Segmentの設計 # GearsのCode Segment - In Data Segmentの受け取り - Out Data segmentの生成(flipする場合もあり) - Code Segmentは次のCode Segmentを持っていない - Meta Code Segmentに次のCode Segmentの参照を持たせる # GearsのCode Segment ![](./pictures/code_segment.jpg) # GearsのCode Segment ![](./pictures/relation_cs_and_ds.jpg) # GearsのData Segment - Data Segmentは実際の値を持たせる - Meta Data Segmentにはsignatureへの参照, 次のData Segmentの参照を持たせる # GearsのData Segment ![](./pictures/data_segment.jpg) # Data SegmentでのList - Data Segmentに値 - Meta Data Segmentに繋がっているData Segmentの参照をもたせる # Data SegmentでのList ![](./pictures/list.jpg) # GearsでのAllocateContext実装 - Code Segmentの参照はContextでもつ - 呼ぶCode Segmentのenumでもち, Meta Code Segmentには次のCode Segmentのenumを渡す # AllocateContextの初期化 ``` C __code initAllocateContext(struct Context* context) { .... context->code[Code1] = code1; context->code[Code2] = code2; context->code[Code3] = code3; .... } ``` # Meta Code Segment ``` C __code meta(struct Context* context, enum Code next) { goto (context->code[next])(context); } ```