自作言語の仕様について考える
連鎖性言語
型システム 連鎖性言語の型システム
静的型付け
線形型
レコード多相
code:record.lang
: vec2
<object> swap >>y swap >>x ;
\ T(∀a. a a -- {x:a y:a})
: steal-x
x>> ;
\ T(∀a.∀o. {..o x:a} -- {..o} a)
Hindley-Milner型推論
GC無し
名前推論
code:naming-inference.lang
: memcpy (u src dst --)
var: gmem
: cc gmem memcpy ; \ (u src --)
マクロ
code:macro.lang
macro: <- ... ; \ lent macro
: v*2
2 * <- x
2 * <- y ;