部分構造型
Substructural Type System
部分構造論理をベースとしている
型環境に構造規則についての制限を導入することにで、型環境に含まれる変数の利用について制約を持たせることができるような型システム
Type Classes for Lightweight Substructural Types
https://arxiv.org/pdf/1502.04772.pdf
https://drive.google.com/file/d/1OxnETBYjtF7H9bRDtw5pmFpLzLC6lWjK/view
諸々の部分構造型と、構造規則の関係 ref
table: 対応
転置規則 弱化規則 縮約規則 どういうものか
Ordered型 - - - 変数の使用は1回のみであり、変数の順序の制限もある
線形型 o - - 変数の使用を1回のみに制限
Affine型 o o - 変数の使用を最大1回に制限
Relevant型 o - o 変数の使用を最低1回に制限
通常の型 o o o 変数の使用は任意の回数できる
通常の型システムが一番下で任意の回数の使用ができ、
他のものはoが付いていないので、「制限を強めている」感じがひと目で分かるmrsekut.icon
言語例 ref
ATS言語
Clean
Mercury
LinearML
Alms
Granule
「構造部分型を持つ言語」としてこれらを列挙するのは雑すぎると思うので、本当はここに列挙したくはないmrsekut.icon
個別の型のページに割り振りたいmrsekut.icon
https://en.wikipedia.org/wiki/Substructural_type_system
https://drive.google.com/file/d/1OxnETBYjtF7H9bRDtw5pmFpLzLC6lWjK/view