Results 1 -
6 of
6
Meta-Programming in Logic Programming
- Handbook of Logic in Artificial Intelligence and Logic Programming
, 1994
"... data types are facilitated in Godel by its type and module systems. Thus, in order to describe the meta-programming facilities of Godel, a brief account of these systems is given. Each constant, function, predicate, and proposition in a Godel program must be specified by a language declaration. The ..."
Abstract
-
Cited by 43 (3 self)
- Add to MetaCart
data types are facilitated in Godel by its type and module systems. Thus, in order to describe the meta-programming facilities of Godel, a brief account of these systems is given. Each constant, function, predicate, and proposition in a Godel program must be specified by a language declaration. The type of a variable is not declared but inferred from its context within a particular program statement. To illustrate the type system, we give the language declarations that would be required for the program in Figure 1. BASE Name. CONSTANT Tom, Jerry : Name. PREDICATE Chase : Name * Name; Cat, Mouse : Name. Note that the declaration beginning BASE indicates that Name is a base type. In the statement Chase(x,y) !- Cat(x) & Mouse(y). the variables x and y are inferred to be of type Name. Polymorphic types can also be defined in Godel. They are constructed from the base types, type variables called parameters, and type constructors. Each constructor has an arity 1 attached to it. As an...
Specialising the ground representation in the logic programming language Gödel
- PROCEEDINGS OF LOPSTR 93
, 1994
"... Meta-programs form a class of logic programs of major importance. In the past it has proved very difficult to provide a declarative semantics for meta-programs in languages such as Prolog. These problems have been identified as largely being caused by the fact that Prolog fails to handle the necessa ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
Meta-programs form a class of logic programs of major importance. In the past it has proved very difficult to provide a declarative semantics for meta-programs in languages such as Prolog. These problems have been identified as largely being caused by the fact that Prolog fails to handle the necessary representation requirements adequately. The ground representation is receiving increasing recognition as being necessary to adequately represent meta-programs. However, the expense it incurs has largely precluded its use to date. The logic programming language Gödel is a declarative successor to Prolog. Gödel provides considerable support for meta-programming, in the form of a ground repre-sentation. Using this representation, Gödel meta-programs have the advantage of having a declarative semantics and can be optimised by program specialisation, to execute in a time comparable to equivalent Prolog meta-programs which use a non-ground representation.
Debugging Prolog Programs Declaratively
- In Workshop on Meta-programming in Logic
, 1990
"... Traditional declarative debuggers, despite their theoretical attractions are not considered to be practical tools for debugging of many Prolog programs. This is partly due to the fact that the basic declarative debugging system (Shapiro 83) only dealt with pure Prolog programs, and partly due to pra ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Traditional declarative debuggers, despite their theoretical attractions are not considered to be practical tools for debugging of many Prolog programs. This is partly due to the fact that the basic declarative debugging system (Shapiro 83) only dealt with pure Prolog programs, and partly due to practical limitations of the suggested methods and algorithms. Our aim has been to study the applicability of declarative debugging methods to a wider range of Prolog programs. Earlier we have reported on improvements to methods and algorithms for declarative debugging of logic programs. In this paper we discuss extention of our algorithms for dealing with some Prolog constructs. In particular, negation of composed goals, unsafe uses of negation, the built-in setof predicate, and the if-then-else construct are elaborated upon. We also report on experiments with a sample of non-trivial Prolog programs, using our prototype system. Practical problems such as multiplicity of "irrelevant" user inter...
Effective Meta-programming in Declarative Languages
, 1998
"... Declarative meta-programming is vital, since it is the most promising means by which programs can be made to reason about other programs. A metaprogram is a program that takes another program, called the object program, as data. A declarative programming language is a programming language based on a ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Declarative meta-programming is vital, since it is the most promising means by which programs can be made to reason about other programs. A metaprogram is a program that takes another program, called the object program, as data. A declarative programming language is a programming language based on a logic that has a model theory. A meta-program operates on a representation of an object...
A Logic-Based Calculus of Fluents
, 1998
"... . This report formally defines the class of all problems on Reasoning about Actions and Change, where accurate and complete information about actions, together with strict inertia in continuous time, continuous change and alternative results of possibly concurrent and independent actions are the ass ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
. This report formally defines the class of all problems on Reasoning about Actions and Change, where accurate and complete information about actions, together with strict inertia in continuous time, continuous change and alternative results of possibly concurrent and independent actions are the assumed properties. The intended model set for each member in the class is defined in terms of a model-theoretic trajectory semantics. The case is designated, in the Features and Fluents framework, with the K-RACi family of reasoning problems. A fix-point characterization of the subclass Ksp-RAdCi is then given in terms of a simulative algebraic semantics, and show which are the difficulties when approaching the full class with that method. A non-simulative algebraic semantics is then presented as an alternative algebraic characterization of the model-theoretic trajectory semantics. Still the characterization is made in terms of complete lattices and continuous operators on those complete latti...
Updating Metalogic Programs by Rebinding Names
"... Amalgamated logic programming can be used to express relationships between two theories which can be interpreted as a transformation from one theory to another, so providing a form of logical update. In a system representing objects as theories this can explain state updates of objects but it does n ..."
Abstract
- Add to MetaCart
Amalgamated logic programming can be used to express relationships between two theories which can be interpreted as a transformation from one theory to another, so providing a form of logical update. In a system representing objects as theories this can explain state updates of objects but it does not account properly for object identifiers. We describe a notion of rebinding for object identifiers, and for primitive names of theories in general, which accounts for the change to object identifiers. 1 Introduction One of the most common approaches to combining object oriented and deductive languages is the object-as-theory approach [14, 26, 28, 29], where an object is represented as a set of formulas. These sets of formulas are to be independently queried, so providing the notions of message passing and method execution in a local context. Theories are not terms of first order logic, so representing objects as theories requires a more powerful foundation. As an alternative to higher-ord...

