核心概念
感度型システムを柔軟に使えるようにするため、静的型検査と動的型検査を組み合わせた漸進的な感度型付けを提案する。
摘要
本論文では、感度型システムの利点を活かしつつ、プログラミングの柔軟性を高めるために、静的型検査と動的型検査を組み合わせた漸進的な感度型付けを提案している。
まず、感度型システムの課題として以下の2点を指摘している:
- 静的型検査は保守的すぎるため、有用なプログラミングパターンを制限してしまう
- 再帰関数の感度を正確に表現するのが難しい
そこで、漸進的な感度型付けを導入することで、これらの課題に対処する。具体的には以下のような特徴がある:
- 完全に不明な感度(?)と、上限と下限を持つ感度範囲(interval)をサポートする
- 静的型検査と動的型検査を柔軟に組み合わせられる
- 再帰関数の感度を正確に表現できる
また、漸進的な感度型付けの型安全性と感度型健全性(メトリック保存)を証明している。メトリック保存は終了感度に依存せず成り立つが、感度範囲を有限に制限すれば終了感度依存のメトリック保存も成り立つことを示している。
最後に、提案手法の実装プロトタイプを紹介し、漸進的な感度型付けの有用性を示している。
統計資料
プログラムの入力変化に対する出力変化の上限を表す感度は、制御理論、動的システム、プログラム解析、差分プライバシーなどの分野で重要な役割を果たす。
感度は、静的に推論したり、動的に検査したりする様々なアプローチが提案されている。
静的な型システムでは感度を効果として扱うことで強い保証が得られるが、プログラミングパターンを制限してしまう問題がある。
引述
"Type-and-effect systems can make certain useful programming patterns tedious or overly conservative."
"Combining the advantages of static and dynamic typechecking is a very active area with a long history, but, to the best of our knowledge, sensitivity has not been explored under this perspective."