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...
Metaprogramming in Logic
- Encyclopedia of Computer Science and Technology
, 1994
"... In this review of metaprogramming in logic we pay equal attention to theoretical and practical issues: the contents range from mathematical and logical preliminaries to implementation and applications in, e.g., software engineering and knowledge representation. The area is one in rapid development b ..."
Abstract
-
Cited by 17 (0 self)
- Add to MetaCart
In this review of metaprogramming in logic we pay equal attention to theoretical and practical issues: the contents range from mathematical and logical preliminaries to implementation and applications in, e.g., software engineering and knowledge representation. The area is one in rapid development but we have emphasized such issues that are likely to be important for future metaprogramming languages and methodologies. 1 Introduction The term `metaprogramming' relates to `programming' as `metalanguage' relates to `language' and `metalogic' to `logic': programming where the data represent programs. It should be no surprise that metaprogramming with logic programming languages takes advantage of many results from metalogic. In the most general interpretation we would say that `metaprogramming ' refers to any kind of computer programming where the input or output represents programs. We will refer to a program of this kind as a metaprogram and to its data as object programs. Analogousl...
A Basis for a Multilevel Metalogic Programming Language
- Logic Program Synthesis and Transformation – Meta-Programming in Logic. LNCS 883
, 1994
"... We are developing a multilevel metalogic programming language that we call Alloy. It is based on first-order predicate calculus extended with metalogical constructs. An Alloy program consists of a collection of theories, all in the same language, and a representation relation over these theories. Th ..."
Abstract
-
Cited by 8 (3 self)
- Add to MetaCart
We are developing a multilevel metalogic programming language that we call Alloy. It is based on first-order predicate calculus extended with metalogical constructs. An Alloy program consists of a collection of theories, all in the same language, and a representation relation over these theories. The whole language is self-representable, including names for expressions with variables. A significant difference, as compared with many previous approaches, is that an arbitrary number of metalevels can be employed and that the object-meta relationship between theories need not be circular. The language is primarily intended for representation of knowledge and metaknowledge and is currently being used in research on hierarchical representation of legal knowledge. We believe that the language allows sophisticated expression and efficient automatic deduction of interesting sets of beliefs of agents. This paper aims to give a preliminary and largely informal definition of the core of the langua...
Formalizing Multiple Interpretation of Legal Knowledge
- Journal of Artificial Intelligence and Law
, 1996
"... A representation methodology for knowledge allowing multiple interpretations is described. It is based on the following conception of legal knowledge and its open texture. Since indeterminate, legal knowledge must be adapted to fit the circumstances of the cases to which it is applied. Whether a cer ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
A representation methodology for knowledge allowing multiple interpretations is described. It is based on the following conception of legal knowledge and its open texture. Since indeterminate, legal knowledge must be adapted to fit the circumstances of the cases to which it is applied. Whether a certain adaptation is lawful or not is measured by metaknowledge. But as this too is indeterminate, its adaptation to the case must be measured by metametaknowledge, etc. This hierarchical model of law is quite wellestablished and may serve well as a basis for a legal knowledge system. To account for the indeterminacy of law such a system should support the construction of different arguments for and against various interpretations of legal sources. However, automatizing this reasoning fully is unsound since it would imply a restriction to arguments defending interpretations anticipated at programming time. Therefore, the system must be interactive and the user's knowledge be furnished in a principled way. Contrary to the widespread opinion that classical logic is inadequate for representing open-textured knowledge, the framework outlined herein is given a formalization in first order logic.
On the Declarative and Procedural Semantics of Definite Metalogic Programs
- J. Logic and Computation
, 1994
"... We present a declarative and procedural semantics for an amalgamation of object language and metalanguage. We define the class of definite metalogic programs, based on a definite clause language, a binary demonstration predicate, and a naming scheme with both primitive and structured names. The dec ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
We present a declarative and procedural semantics for an amalgamation of object language and metalanguage. We define the class of definite metalogic programs, based on a definite clause language, a binary demonstration predicate, and a naming scheme with both primitive and structured names. The declarative semantics is an extension of the semantics of logic programs dealing with multiple theories and names. The procedural semantics uses a resolution rule and a meta-level to object-level reflection rule. Keywords. metalogic, meta-programming, semantics, reflection, demo, names. Contents 1 Introduction 1 2 Metalogic Programming 2 3 Definite Metalogic Programs 5 4 Naming Relations 8 4.1 The Style of Amalgamation : : : : : : : : : : : : : : : : : : : : : : : 8 4.2 The Naming Relation for Definite Metalogic Programs : : : : : : : 8 4.2.1 Constant, Function & Predicate Symbols : : : : : : : : : : : 8 4.2.2 Names : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9 4.2.3 Prop...
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...

