連鎖性言語の型システム
スタック型言語(厳密には同じではない)とも呼ばれる連鎖性言語の静的型システムについてメモ。
今のところ把握してる静的型付けの連鎖性言語
Cat
Kitten
KittenはCatの後継的な位置付けでもある
猫(Cat)から子猫(Kitten)
プリミティブなコンビネータが存在
The Primitive Instructions of Cat
その他のコンビネータはプリミティブなものから構築可能
Standard Library of Cat
基本的な考え方は
スタックからスタックへの写像
例 +(加算)は(int, int)から(int)への写像
スタックの"残り"(rest)を表す記号の存在
∀A (全称量化)
加算の場合
∀A. (A, int, int) -> (A, int)
The Big Mud Puddle: Why Concatenative Programming MattersではStack Polymorphismと呼ばれている
また、連鎖性言語のコンビネータは線形論理を満たすという論文もある
Linear Logic and Permutation Stacks--The Forth Shall Be First