1) logic programming
逻辑程序设计 [逻辑程序设计]
2) logic programming
逻辑程序设计
1.
The backtracking mechanism is an important facility for logic programming.
回溯机制是逻辑程序设计的重要设施。
2.
Object-oriented logic programming has both the benefits.
逻辑程序设计是通过使用逻辑规则来解决问题,面向对象的程序设计是通过定义与使用对象的方法来解决问题。
3.
On the contrary, logic programming languages, based on Horn clause logic and resolution, allow existentially quantified variables and partial data structures but lack both deterministic.
相反 ,基于 HORN子句逻辑和消解原理的逻辑程序设计语言允许存在量化的变量和部分数据结构但又缺少确定和懒惰求解的性质 。
4) logical level of programming
程序设计逻辑级
6) temporal logic programming
时序逻辑程序设计
1.
Pointers in framing projection temporal logic programming languages;
框架投影时序逻辑程序设计语言中的指针
2.
Though researchers developed interpreters to execute temporal logic programs,and temporal logic and its executed subsets are widely applied to the areas of concurrentprograms verification, however, there has not formalized an integrated formal semanticsfor temporal logic programs, at least for interval temporal logic programming languages.
时序逻辑程序设计是一种新型的程序设计范式,程序的具体执行和性质的描述可以在同一逻辑框架内表示,适用于并发系统的建模、模拟和验证。
补充资料:逻辑程序设计
将逻辑直接作为程序设计语言并将计算作为受控推理的一种程序设计技术。1972年法国科莫劳埃小组实现了第一个逻辑程序设计语言PROLOG。1974年以后R.科瓦尔斯基进一步阐明了PROLOG的理论基础,并系统地发展了逻辑程序设计的思想。对于传统的程序设计来说,算法的逻辑意义往往被程序复杂的控制成分所掩盖,使程序的正确性难以得到证明。而且通常的高级程序设计语言属于过程性语言,需要在程序执行前详细规定运行步骤。科瓦尔斯基对传统的算法或对用通常高级语言编写的程序提出了一个著名的分析公式,即算法=逻辑+控制。其基本思想是要从根本上改变程序设计的方法:用户只需要编写程序的逻辑部分(逻辑程序设计之名由此而来),而系统中的解释程序则实施控制部分的职能。这种将逻辑与控制分开的方法具有下列的优点:①可以在控制部分设计之前不断改进逻辑程序。②可以改进控制部分而无需变动逻辑程序本身。③可以从程序说明中生成逻辑程序,加以验证和变换,而无需考虑其控制部分。④只需在逻辑程序中规定目标和实现这些目标的现有条件,也就是只需告诉系统做什么(What to do),至于如何执行也就是说怎样做 (How to do),则由系统的控制部分,即解释程序处理解决。
现行逻辑程序的基本语句属于一阶谓词演算的一个子集,HORN子句集。HORN子句的一般形式为:A1,...,Am←B1,B2,...,Bn,其中Ai(1≤i≤m)、Bj(1≤j≤n)都是原子公式,分别代表结论和前提的形式。前提部分是各原子的合取式,构成子句体,结论部分最多只有一个原子,称为子句头。由此可将HORN子句分成两个基本类型:①有头HORN子句(用来代表一条规则),例如,grandfather(x,z)←father(x,y),father (y,z)代表:x是y的父亲且y是z的父亲,则x是z的祖父。有头无体的HORN子句是一断言(用来代表一个事实)。例如,father(A,B)代表:A是B的父亲,father(B,C)代表:B是C的父亲。②无头HORN子句,称为目标语句(用来代表结论的否定式),例如,←grandfather(A,C)代表:A不是C的祖父。逻辑学家A.霍恩对这类子句性质作了详尽的研究,HORN子句即因此得名。
从问题归约的角度看,可将HORN子句解释为一过程,它将问题(目标)A归约为若干子问题(子目标),每一子问题 Bi(1≤i≤n)又可解释为对其他过程(HORN子句)的调用。有头无尾的HORN子句则代表一个已知其解的基元问题。过程调用实际上是使构成子句体的一个原子(子目标)与某一子句头匹配,这就是运用归结原理中的合一的过程。因此逻辑程序的执行过程也就可以看成是定理证明过程,其中解释程序起定理证明器或问题求解器的作用。
HORN子句的过程调用(B1, B2,...,Bn)可按任意次序进行,适合于平行处理。HORN子句可作过程性的解释也可作陈述性的解释,运用比较方便。因此,以HORN子句为基础的逻辑程序设计语言PROLOG受到人们的重视(见PROLOG语言)。日本的第五代计算机系统的计划也推动了逻辑程序设计的研究。也有人认为,不同类型的问题需要不同风格的程序设计方法,在下一代的知识信息处理系统中除逻辑程序设计之外,还必须重视面向对象的程序设计、面向存取的程序设计、规则型程序设计,此外,建立与知识信息处理相适应的程序设计环境也是重要的课题。
参考书目
K.L.Clark and S.- A. Tarnlund, eds, Logic Programming, Academic Press, Inc., London,1982.
现行逻辑程序的基本语句属于一阶谓词演算的一个子集,HORN子句集。HORN子句的一般形式为:A1,...,Am←B1,B2,...,Bn,其中Ai(1≤i≤m)、Bj(1≤j≤n)都是原子公式,分别代表结论和前提的形式。前提部分是各原子的合取式,构成子句体,结论部分最多只有一个原子,称为子句头。由此可将HORN子句分成两个基本类型:①有头HORN子句(用来代表一条规则),例如,grandfather(x,z)←father(x,y),father (y,z)代表:x是y的父亲且y是z的父亲,则x是z的祖父。有头无体的HORN子句是一断言(用来代表一个事实)。例如,father(A,B)代表:A是B的父亲,father(B,C)代表:B是C的父亲。②无头HORN子句,称为目标语句(用来代表结论的否定式),例如,←grandfather(A,C)代表:A不是C的祖父。逻辑学家A.霍恩对这类子句性质作了详尽的研究,HORN子句即因此得名。
从问题归约的角度看,可将HORN子句解释为一过程,它将问题(目标)A归约为若干子问题(子目标),每一子问题 Bi(1≤i≤n)又可解释为对其他过程(HORN子句)的调用。有头无尾的HORN子句则代表一个已知其解的基元问题。过程调用实际上是使构成子句体的一个原子(子目标)与某一子句头匹配,这就是运用归结原理中的合一的过程。因此逻辑程序的执行过程也就可以看成是定理证明过程,其中解释程序起定理证明器或问题求解器的作用。
HORN子句的过程调用(B1, B2,...,Bn)可按任意次序进行,适合于平行处理。HORN子句可作过程性的解释也可作陈述性的解释,运用比较方便。因此,以HORN子句为基础的逻辑程序设计语言PROLOG受到人们的重视(见PROLOG语言)。日本的第五代计算机系统的计划也推动了逻辑程序设计的研究。也有人认为,不同类型的问题需要不同风格的程序设计方法,在下一代的知识信息处理系统中除逻辑程序设计之外,还必须重视面向对象的程序设计、面向存取的程序设计、规则型程序设计,此外,建立与知识信息处理相适应的程序设计环境也是重要的课题。
参考书目
K.L.Clark and S.- A. Tarnlund, eds, Logic Programming, Academic Press, Inc., London,1982.
说明:补充资料仅用于学习参考,请勿用于其它任何用途。
参考词条