Http://www.docin.com/p-92139363.html
Due to the great success of PROLOG, PROLOG has always been a logic Program The name of the design. However, PROLOG is based on the horn subset of the first-level logic. As a non-typed logic programming language, it lacks sufficient expressiveness. In addition, due to the introduction of non-logical language components, such as cut, in specific implementation of PROLOG, the frequent use of PROLOG causes the lack of clear and clear descriptive semantics of the PROLOG program, this makes it very difficult to understand, analyze, convert, optimize, verify, and debug the PROLOG program. The ideal logic programming language should extend its theoretical basis from the Horn subset to the first-order logic. The computing and execution process of the program is transparent to the programmer, that is, the programmer does not have to understand the reasoning and Solving Process of the program, simply design the program in a descriptive way, and the specific reasoning and calculation process is handed over to the system. Logical program design researchers have been trying to improve Prolog deficiencies. The designers of the Godel language fully drew on the research results in this field and introduced a variety of new language components into the language design, so that Godel inherited and developed Prolog. Godel tries to solve many semantic problems in Prolog, enhance the expressiveness of PROLOG, and reduce the difference between the ideal logical programming language and the actual logical programming language.
Godel is a new descriptive general logic programming language that emerged after the PROLOG Language. In the middle of 1990s, it was developed by J. w. the P. m. design and Development of a research group headed by hill. It draws on many elements of the PROLOG Language and introduces new language components from many variants of the PROLOG language, such as IC-Prolog, nu-Prolog, and ML and module-2, so that it has a stronger programming expression ability. It is based on the first-order logic of Multi-types of polymorphism, abandons the non-logical components in the PROLOG Language, and effectively solves the semantic and expressive problems in the PROLOG Language. The main innovations of the Godel language on logical programs can be summarized as the introduction of parameter-type multi-type polymorphism systems, the addition of new language components such as delayed computing, and support for Modular programming and metaprogramming; it has flexible computing rules and pruning operations, and provides a wide range of abstract data types in the form of system modules to support general program design. appropriate extension of it can support object-oriented programming.
The type of the Godel language is a strongly typed system. The introduction of types facilitates the expression of knowledge, because the expected interpretation of knowledge is typed in most logic program design applications. The type information facilitates the discovery of errors in the program and improves the development efficiency of the program, it also makes the Godel language highly expressive and practical. The Godel language program design adopts the module structure and provides a method to organize large-scale programs, facilitating information hiding. These mechanisms work together with multi-type multi-variant systems to enable the Godel language to support some modern software engineering methods. The Godel language has flexible computing rules. You can declare a delay computing condition to control the selection and cancellation of the subobject order. Combined with commit pruning, the search efficiency of the inference space can be greatly improved; abstract data types are used to process metadatabase, which provides a good mechanism for metadatabase design.
More importantly, when introducing these new logical program components, the Godel language also provides better program descriptive program semantics than Prolog, good conceptual and structural descriptive program semantics are of critical importance to logical programs. First, it reduces the burden on programmers so that they only need to consider defining problems, related knowledge, and logical relationships during program design, and tell the computer system what to calculate ", without having to worry about "how to calculate", we have taken another step towards descriptive programming. Secondly, most of the currently practical logic programming languages have evolved from the PROLOG Language, the use of many non-descriptive language components and non-logical components, such as cut and retract, and Godel has made great progress in this aspect, greatly reducing the dependency on non-logical components, the gap between theory and reality in logical programming is reduced, which is conducive to the theoretical analysis of logical programming. Finally, the theoretical research of programming language shows that, programs with good descriptive semantics are easier to implement parallelism. These innovations in the Godel language inject new content into the logic program design. It is foreseeable that once the language's compilation system is broken through and popularized, it will become an important tool for intelligent software development in AI, data mining, databases, and other fields.