论文标题
约束和面向对象的第五代编程语言及其编译器和运行时系统
A Constraint and Object Oriented Fifth Generation Programming Language and its Compiler and Runtime System
论文作者
论文摘要
自LISP出现以来,第五代编程语言已经发展了数十年。但是,与第四代编程语言相比,第五代编程语言尚未被广泛使用,因为它具有晦涩难懂的语义,严格的问题表示和有限的推理能力。因此,酷(约束和对象有序语言)是本文提出的第五代编程语言,它克服了直观语义的问题,严格的对处理问题条件的限制,并提高了先前的第五代编程语言的推理能力。具体的改进如下:首先,Cool支持以过程为导向和面向对象,以便于生产项目中的易于应用;其次,Cool支持表达式作为函数声明和函数返回,从而改善了对数学公式的语言亲和力,并支持将函数参数嵌入到函数名称字符串中,以使函数更接近自然语言。使数学问题更容易描述;第三,Cool引入了加权机制,并通过累积加权加速了推理过程。第四,Cool介绍了编程中正向和反向功能的概念,以便计算机可以通过逻辑顺序约束来推断和执行问题。第五,计算机可以通过反向跟踪算法和动态编程算法使用前向解决方案过程来推导反向解过程,从而使计算机可以通过时间序列约束来推断问题。第六,引入执行前步骤是为了将程序的推理和功能查询过程与执行过程分开,以提高程序的执行速度。
Since the advent of LISP, the fifth generation programming language has developed for decades. However, compared with the fourth generation programming language, the fifth generation programming language has not been widely used because of its obscure semantics, rigorous representation of problems, and limited inference ability. For this reason, COOL (Constraint and Object Ordered Language), a fifth generation programming language proposed in this paper, overcomes the problems of intuitive semantics, rigorous restrictions on handling problem conditions, and improves the inference ability of previous fifth generation programming languages. Specific improvements are as follows: First, COOL supports process-oriented and object-oriented for easy application in production projects; Second, COOL supports expression as function declaration and function return, which improves language affinity for mathematical formulas, and supports embedding function parameters into function name strings to make function naming closer to natural languages. Make mathematical problems easier to describe; Third, COOL introduces a weighting mechanism and accelerates the inference process through cumulative weighting. Fourth, COOL introduces the concepts of forward and reverse functions in programming so that computers can infer and execute problems with logical sequential constraints. Fifth, the computer can deduce the reverse solution process by using the forward solution process through the back-tracking algorithm and the dynamic programming algorithm, so that the computer can deduce the problem with time-sequential constraints. Sixth, the pre-execution step is introduced to separate the inference and function query process of the program from the execution process, so as to improve the execution speed of the program.