Strictness analysis とは

コンピュータサイエンスでは、厳密性解析とは、非厳密な関数型プログラミング言語の関数がその引数の1つ以上に厳密であることを証明するために使用されるアルゴリズムを指します。この情報は、厳密な関数をより効率的にコンパイルすることができるため、コンパイラにとって便利です。コンパイル時に関数が厳密(厳密性解析を使用して)であることが証明された場合、コンパイルして、囲むプログラムの意味を変更することなく、より効率的な呼び出し規約を使用することができます。
関数fは、操作上、 { } {\displaystyle \{\bot \}} を返すと発散すると言われています。つまり、fは囲みプログラムの異常終了(例えば、エラーメッセージによる失敗)を引き起こすか、無限にループします。厳密な関数は、発散する引数が与えられたときに常に発散するものであり、遅延(または厳密ではない)関数は、そのような引数が与えられたときに発散したり発散しない関数であるため、「発散」という概念は重要です。厳密性分析は、機能の「発散特性」を決定しようと試み、厳格ないくつかの機能を識別する。