GCLA : the design, use and implementation of a program development system

Detta är en avhandling från Stockholm : Stockholm University

Sammanfattning: We present a program development system, GCLA (Generalized horn Clause LAnguage'), which is based on a generalization of Horn clauses (e.g. Prolog). This generalization takes a quite different view of the meaning of a logic program - a "definitional" view rather than the traditional logical view.GCLA is based on the formalism partial inductive definitions, an extension of ordinary inductive definitions. To each partial inductive definition a sequent-like calculus is associated. One of the most important derivation rules of partial inductive definitions is the rule of definitional reflection (also named D-). The principle of definitional reflection enables us to derive conclusions from assumed assertions, and it includes the computation of a minimal substitution from a given atom and the heads of a given definition, called the generation of an A-sufficient substitution. Generating an A-sufficient substitution is a quite complex operation, but can be reduced to a look-up table in runtime by a precomputation at compile time.The possibility of nesting hypothetical conditions makes GCLA suitable for different kinds of hypothetical reasoning, such as expert systems and default reasoning, but it also includes functional programming and a kind of object oriented programming as special cases. GCLA has been used as a prototyping tool in an application for planning the construction of a building. This planning process is divided into two main phases, the choice-of-method phase and the scheduling phase. The choice-of-method phase gives a set of activities, which when scheduled form the plan to construct the building. The scheduling phase is a simulation of the construction, where resources are allocated to activities to determine their duration, and the different interdependencies of tire activities are taken into account.The drawback of having a powerful formalism as the basis for a programming system is that the issue of control becomes important. The approach taken in GCLA is to develop two different levels of representation: one object level which encodes the declarative content of the application, and one control level which encodes the procedural content of the application. The control level defines inference rules and search strategies for drawing conclusions from the object level definition. The control level can be compiled to a Prolog program, which interprets the object level definition.

  KLICKA HÄR FÖR ATT SE AVHANDLINGEN I FULLTEXT. (PDF-format)