1,823 research outputs found
Computer architectures for functional and logic languages
PhD ThesisIn recent years interest in functional and logic languages has
grown considerably. Both classes of language offer advantages for programming
and have an influential group of people promoting them. As yet
no consensus has formed as to which class is best, and such a consensus
may never form. Future general-purpose computer architectures may well
be required to support both classes of language efficiently. Novel
architectures designed to support both classes of languages could even
add impetus to the area of hybrid functional/logic languages.
Treleaven et al[68] have proposed a classification of computational
mechanisms which they believe underly several types of novel computer
architecture (i.e. control flow, data flow and reduction). The classification
partitions novel general-purpose architectures into the following
classes: control driven - where a statement is executed when it is
selected by flow(s) of control, data driven - where a statement is executed
when some combination of its arguments are available, and demand
driven - where a statement is executed when the result it produces is
needed by another, already active instruction.
This thesis investigates the efficient support of both functional
and logic languages using an architecture that attempts to be general
purpose by embodying all the mechanisms that underly the above classification.
A novel packet communication architecture is presented which intergrates
the control driven, data driven and demand driven computational
mechanisms. A software emulator for the machine was used as the basis
for separate implementations of functional and logic languages, which
were in turn used to evaluate the effectiveness of the computational
mechanisms described in the classification. These mechanisms allowed
functional languages to be implemented wi th ease, but caused severe
problems when used to support logic languages. The difficulties with
these mechanisms are taken as signifying that they do not provide adequate
support for logic languages. The problems encountered led to the
development of a novel implementation technique for logic languages,
which also proved to be a good basis for a combined functional and logic
model. This model is believed to provide a sound foundation for a
parallel computer system that would support functional and logic
languages with equal elegance and efficiency, and would therefore also
support hybrid languages. The design for such a computer is described
at the end of this thesis.the Science and Engineering Research Council, Great Britain
Towards a Rule Interchange Language for the Web
This articles discusses rule languages that are needed for a a
full deployment of the SemanticWeb. First, it motivates the need for such
languages. Then, it presents ten theses addressing (1) the rule and/or
logic languages needed on the Web, (2) data and data processing, (3)
semantics, and (4) engineering and rendering issues. Finally, it discusses
two options that might be chosen in designing a Rule Interchange Format
for the Web
The inherent risks in using a name-forming function at object language level
The Truth problem is one of the central problems of philosophy. Nowadays, every major theory of truth that applies to formal languages utilizes devices referring to formulae. Such devices include name-forming functions. The theory of truth discussed in this paper applies to strict formal logic languages, the critique of which must, therefore, also obey mathematical rigour. This is why I have used formal logic derivations below rather than the argumentation of ordinary language
Semantic models for concurrent logic languages
AbstractIn this paper we develop semantic models for a class of concurrent logic languages. We give two operational semantics based on a transition system, a declarative semantics and a denotational semantics. One operational and the declarative semantics model the success set, that is, the set of computed answer substitutions corresponding to all successfully terminating computations. The other operational and the denotational semantics also model deadlock and infinite computations. For the declarative and the denotational semantics we extend standard notions such as unification in order to cope with the synchronization mechanism of the class of languages we study. The basic mathematical structure for the declarative semantics is the complete lattice of sets of finite streams of substitutions. In the denotational semantics, we use a complete metric space of tree-like structures that are labelled with functions that represent the basic unification step. We look at the relations between the different models. We relate first the two operational semantics and next the declarative and denotational semantics with their respective operational counterparts
Logic Programming Applications: What Are the Abstractions and Implementations?
This article presents an overview of applications of logic programming,
classifying them based on the abstractions and implementations of logic
languages that support the applications. The three key abstractions are join,
recursion, and constraint. Their essential implementations are for-loops, fixed
points, and backtracking, respectively. The corresponding kinds of applications
are database queries, inductive analysis, and combinatorial search,
respectively. We also discuss language extensions and programming paradigms,
summarize example application problems by application areas, and touch on
example systems that support variants of the abstractions with different
implementations
- …