面向对象的程序可以用不同的模型建模,例如自动机、过程代数、Petri 网或 UML。其中一些模型可用于执行各种分析,以发现性能或设计中的问题。
我正在研究逻辑编程,想知道 CLP 是否有这种模型?您如何分析 CLP 程序?
面向对象的程序可以用不同的模型建模,例如自动机、过程代数、Petri 网或 UML。其中一些模型可用于执行各种分析,以发现性能或设计中的问题。
我正在研究逻辑编程,想知道 CLP 是否有这种模型?您如何分析 CLP 程序?
一定不要错过cTI_lt (左终止的基于约束的终止推断)!
终止推断是终止分析/检查的无注释概括。它将程序员的注意力从特定情况转移到整个关系。传统上,终止分析器试图证明给定类别的查询终止。这个类必须由用户提供,如果程序之前编写过没有任何注释,这是相当麻烦的。对于终止推断,不需要注释。立即推断所有相关谓词的所有可证明终止类,说明谓词的“多向性”。这意味着谓词可以安全地用于多个“方向”。
我见过使用最多的两种方法是抽象解释和 进化代数(又名抽象状态机)。Egon Boerger发表了 Prolog 的正式定义和使用进化代数对 Warren Abstract Machine 的正确性证明。纯逻辑编程语言可以直接在逻辑中建模。