1,823 research outputs found

    Computer architectures for functional and logic languages

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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?

    Full text link
    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
    corecore