# HG changeset patch # User Yasutaka Higa # Date 1481621150 -32400 # Node ID 4c1b257822085467a3ad1133e3ad2abd4ab4471d # Parent 4f668900d1f68fa330d8db763c231b7c4612b0c2 Add slide for seminar diff -r 4f668900d1f6 -r 4c1b25782208 slides/20161213/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides/20161213/slide.md Tue Dec 13 18:25:50 2016 +0900 @@ -0,0 +1,40 @@ +title: Verification method of programs using Continuation based C +author: Yasutaka Higa +profile: +lang: Japanese + +# 研究目的 +* コードセグメントとデータセグメントという単位を用いてプログラムを記述する手法を提案する +* プログラムはコードセグメントという処理の集合として表され、相互に接続される +* 型検査器を導入することでコードセグメントが接続可能かどうかを判断する +* また、コードセグメントの型から推論してデータセグメントの生成を行なう + +# 研究内容 +* コードセグメントとデータセグメントを用いて記述する言語 Continuation based C に型を導入する +* コードセグメント内部の演算と変数代入から型を推論する +* 接続可能かどうかをコンパイル時に判断し、必要なデータセグメントを型情報から生成する + + +# 近況報告 +* Gears の Stack の証明をこねてました + * 任意の Stack に対して n回 push した後に n回 pop したら元に戻る + * 空の Stack に対しても同様 +* Gears の型をどうするかのアイデア + +# Type of Gears +* CodeSegment のは DataSegment -> DataSegment + * DataSegment は制約か部分型 + * 合成できるのならOK +* 全ての部分型を満たすものが最初の引数になるのでそれを生成できれば良い +* 関数合成部分を切り替え可能なメタ計算にする + * Allocate とかも書けそう + +# 問題点 +* どう書くか/書けるのか +* goto の分岐 +* 総称型に拡張可能かどうか +* 並列実行はどう書くのか + * まだAPIが無い + + +