関数のメモリ使用量などのプロパティは、依存型付き言語で表現できますか?


11

全体性や関数の純粋さなどを超えてコードのプロパティについて推論したいとしましょう。メモリの消費や関数のアルゴリズムの複雑さについても気にします。これは、依存するタイピングおよびエフェクトシステムを介して実行できますか?


2
このビデオでは、ブライアンマッケナが時間の複雑さを型にエンコードする例を紹介しています。
アントンTrunov

回答:


8

はい、できます。概念的にはそれほど難しくありませんが、それほど研究されていません。この分野の1つの側面は、Guy Blellochが行った研究などのコストセマンティクスです

ビデオの脈絡で言及されているのは、純粋に機能的なデータ構造の軽量セミフォーマル時間複雑性分析におけるダニエルソンの作品です。これは実際にモナドを使用して操作あたりのコストを持ち越しています。セマンティックレベルの同様のモナドは、帰納型の関数型言語のDenotationalコストセマンティクスで使用されます。これは、実行時間の内部検証のためのCoqライブラリであるCoqで同様のことを行う2016年の論文です。

NuPRLの人々は、このようなことにも長い間関心を持っていました。でContstructiveタイプ理論で計算の複雑さを表現する基本的に構造化操作的意味論を超える計算になります。もう少し興味深いのは、言語のセマンティクスを言語に反映できることです。Naive Computational Type Theoryの最後のセクションであるセクション12の例は、この種のことを示し、説明しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.