4,779 research outputs found
Set Unification
The unification problem in algebras capable of describing sets has been
tackled, directly or indirectly, by many researchers and it finds important
applications in various research areas--e.g., deductive databases, theorem
proving, static analysis, rapid software prototyping. The various solutions
proposed are spread across a large literature. In this paper we provide a
uniform presentation of unification of sets, formalizing it at the level of set
theory. We address the problem of deciding existence of solutions at an
abstract level. This provides also the ability to classify different types of
set unification problems. Unification algorithms are uniformly proposed to
solve the unification problem in each of such classes.
The algorithms presented are partly drawn from the literature--and properly
revisited and analyzed--and partly novel proposals. In particular, we present a
new goal-driven algorithm for general ACI1 unification and a new simpler
algorithm for general (Ab)(Cl) unification.Comment: 58 pages, 9 figures, 1 table. To appear in Theory and Practice of
Logic Programming (TPLP
An interpreter for Parallel Prolog, a study and implementation
In April 1982, a new institute named ICOT (Institute for New Generation Computer Technology ) was created in Japan. The institute was to support the FGCS ( Fifth Generation Computer Systems ) project. The project is a tremendous effort to enter the fifth generation of computing. The idea is to have a Logic Programming Language as a base language for the project. The goal is to develop basic computer technology to build an intelligent computer system and its prototype which will have an inference function and an intelligent interface function. [18] The inference machine to be developed will be a parallel Logic Programming Machine consisting of hundreds of processing elements, a structured memory and a network element. Assuming that the technology can provide us with a multiprocessor capable of supporting the execution of several procedures or processes in parallel, the problem is to build an interpreter for Concurrent Prolog called TCP (Toy Concurrent Prolog). TCP is to be implemented on a single processor with simulated con currency. The implementation will provide some program annotation schemes to make communication between concurrent processes possible
An Abstract Machine for Unification Grammars
This work describes the design and implementation of an abstract machine,
Amalia, for the linguistic formalism ALE, which is based on typed feature
structures. This formalism is one of the most widely accepted in computational
linguistics and has been used for designing grammars in various linguistic
theories, most notably HPSG. Amalia is composed of data structures and a set of
instructions, augmented by a compiler from the grammatical formalism to the
abstract instructions, and a (portable) interpreter of the abstract
instructions. The effect of each instruction is defined using a low-level
language that can be executed on ordinary hardware.
The advantages of the abstract machine approach are twofold. From a
theoretical point of view, the abstract machine gives a well-defined
operational semantics to the grammatical formalism. This ensures that grammars
specified using our system are endowed with well defined meaning. It enables,
for example, to formally verify the correctness of a compiler for HPSG, given
an independent definition. From a practical point of view, Amalia is the first
system that employs a direct compilation scheme for unification grammars that
are based on typed feature structures. The use of amalia results in a much
improved performance over existing systems.
In order to test the machine on a realistic application, we have developed a
small-scale, HPSG-based grammar for a fragment of the Hebrew language, using
Amalia as the development platform. This is the first application of HPSG to a
Semitic language.Comment: Doctoral Thesis, 96 pages, many postscript figures, uses pstricks,
pst-node, psfig, fullname and a macros fil
A Rewriting Logic Semantics for ATL
As the complexity of model transformation (MT) grows, the
need to rely on formal semantics of MT languages becomes a critical issue.
Formal semantics provide precise speci cations of the expected behavior
of transformations, allowing users to understand them and to use them
properly, and MT tool builders to develop correct MT engines, compilers,
etc. In addition, formal semantics allow modelers to reason about the MTs
and to prove their correctness, something specially important in case of
large and complex MTs (with, e.g., hundreds or thousands of rules) for
which manual debugging is no longer possible. In this paper we give a
formal semantics of the ATL 3.0 model transformation language using
rewriting logic and Maude, which allows addressing these issues. Such
formalization provides additional bene ts, such as enabling the simulation
of the speci cations or giving access to the Maude toolkit to reason about
them
Comparative Study of the Inference Mechanisms in PROLOG and SPIDER
Control Network Programming (CNP) is a graphical nonprocedural programming style whose built-in inference engine (interpreter) is based on search in a recursive network. This paper is the third in a series of reports that share a common objective – comparison between the CNP language SPIDER and the logic programming language PROLOG. The focus here is on the comparative investigation of their interpreters, presented in a generic formal frame – reduction of goals. As a result of juxtaposing their pseudo-codes the advantages of SPIDER are outlined
Investigation of design and execution alternatives for the committed choice non-deterministic logic languages
The general area of developing, applying and studying new and parallel models
of computation is motivated by a need to overcome the limits of current Von
Neumann based architectures. A key area of research in understanding how new
technology can be applied to Al problem solving is through using logic languages.
Logic programming languages provide a procedural interpretation for sentences of
first order logic, mainly using a class of sentence called Horn clauses. Horn clauses
are open to a wide variety of parallel evaluation models, giving possible speed-ups
and alternative parallel models of execution.
The research in this thesis is concerned with investigating one class of parallel
logic language known as Committed Choice Non-Deterministic languages. The investigation
considers the inherent parallel behaviour of Al programs implemented
in the CCND languages and the effect of various alternatives open to language
implementors and designers. This is achieved by considering how various Al programming
techniques map to alternative language designs and the behaviour of
these Al programs on alternative implementations of these languages.
The aim of this work is to investigate how Al programming techniques are
affected (qualitatively and quantitatively) by particular language features. The
qualitative evaluation is a consideration of how Al programs can be mapped to
the various CCND languages. The applications considered are general search
algorithms (which focuses on the committed choice nature of the languages); chart
parsing (which focuses on the differences between safe and unsafe languages);
and meta-level inference (which focuses on the difference between deep and flat
languages). The quantitative evaluation considers the inherent parallel behaviour
of the resulting programs and the effect of possible implementation alternatives
on this inherent behaviour. To carry out this quantitative evaluation we have
implemented a system which improves on the current interpreter based evaluation
systems. The new system has an improved model of execution and allows severa
Detection and resolution of normative conflicts in multi-agent systems : a literature survey
Peer reviewedPostprin
Topics in Programming Languages, a Philosophical Analysis through the case of Prolog
[EN]Programming languages seldom find proper anchorage in philosophy of logic, language and science. is more, philosophy of language seems to be restricted to natural languages and linguistics, and even philosophy of logic is rarely framed into programming languages topics. The logic programming paradigm and Prolog are, thus, the most adequate paradigm and programming language to work on this subject, combining natural language processing and linguistics, logic programming and constriction methodology on both algorithms and procedures, on an overall philosophizing declarative status. Not only this, but the dimension of the Fifth Generation Computer system related to strong Al wherein Prolog took a major role. and its historical frame in the very crucial dialectic between procedural and declarative paradigms, structuralist and empiricist biases, serves, in exemplar form, to treat straight ahead philosophy of logic, language and science in the contemporaneous age as well.
In recounting Prolog's philosophical, mechanical and algorithmic harbingers, the opportunity is open to various routes. We herein shall exemplify some:
- the mechanical-computational background explored by Pascal, Leibniz, Boole, Jacquard, Babbage, Konrad Zuse, until reaching to the ACE (Alan Turing) and EDVAC (von Neumann), offering the backbone in computer architecture, and the work of Turing, Church, Gödel, Kleene, von Neumann, Shannon, and others on computability, in parallel lines, throughly studied in detail, permit us to interpret ahead the evolving realm of programming languages. The proper line from lambda-calculus, to the Algol-family, the declarative and procedural split with the C language and Prolog, and the ensuing branching and programming languages explosion and further delimitation, are thereupon inspected as to relate them with the proper syntax, semantics and philosophical élan of logic programming and Prolog
- …