面向对象的程序可以通过不同的模型建模,例如Automata,Process Algebras,Petri Nets或UML。其中一些模型可用于执行各种分析,以发现性能或设计中的问题。
我正在研究逻辑编程,并想知道CLP是否有这种模型?你如何分析CLP计划?
答案 0 :(得分:3)
请务必不要错过cTI_lt (constraint based termination inference for left termination)!
终止推断是终止分析/检查的无注释概括。它将程序员的注意力从特定情况转移到整个关系。传统上,终止分析器试图证明给定类的查询终止。该类必须由用户提供,如果先前已经编写了没有任何注释的程序,则这是相当麻烦的。通过终止推断,不需要注释。所有相关谓词的所有可证明终止的类都被立即推断出来,说明了多方向性'谓词。这意味着可以在多个方向安全地使用谓词。
答案 1 :(得分:2)
我见过的最常用的两种方法是abstract interpretation和evolving algbras(又名抽象状态机)。 Egon Boerger发表了Prolog的正式定义和使用演化代数的Warren抽象机的正确证明。纯逻辑编程语言可以直接在逻辑中建模。