428 research outputs found

    A semantics and implementation of a causal logic programming language

    Get PDF
    The increasingly widespread availability of multicore and manycore computers demands new programming languages that make parallel programming dramatically easier and less error prone. This paper describes a semantics for a new class of declarative programming languages that support massive amounts of implicit parallelism

    A simple approach to distributed objects in prolog

    Full text link
    We present the design of a distributed object system for Prolog, based on adding remote execution and distribution capabilities to a previously existing object system. Remote execution brings RPC into a Prolog system, and its semantics is easy to express in terms of well-known Prolog builtins. The final distributed object design features state mobility and user-transparent network behavior. We sketch an implementation which provides distributed garbage collection and some degree of tolerance to network failures. We provide a preliminary study of the overhead of the communication mechanism for some test cases

    Datalog as a parallel general purpose programming language

    Get PDF
    The increasing available parallelism of computers demands new programming languages that make parallel programming dramatically easier and less error prone. It is proposed that datalog with negation and timestamps is a suitable basis for a general purpose programming language for sequential, parallel and distributed computers. This paper develops a fully incremental bottom-up interpreter for datalog that supports a wide range of execution strategies, with trade-offs affecting efficiency, parallelism and control of resource usage. Examples show how the language can accept real-time external inputs and outputs, and mimic assignment, all without departing from its pure logical semantics

    The performance evaluation of interpreter based computer systems

    Get PDF
    PhD ThesisThis thesis explores the problem of making accurate assessments of the performance of high level language interpreter programs which are embedded in some more complex system. The overall system performance will be determined by all the software and hardware components present; but in order either to analyse and improve particular components, or to select between alternative versions of components, the concept of the performance of individual components is important. A model is developed for the abstract behaviour of software components playing the role of an interpreter by considering their interaction with the program code which is being interpreted and with the underlying virtual machine which is, in turn, interpreting them. This model enables a flexible definition of performance by relating the interactions in which an interpreter takes part. A methodology is recommended for assessing experimentally the performances defined within such a framework. The performances of an interesting selection of pseudo-machine and high level interpreter implementations of Lispkit and Prolog are then assessed and conclusions drawn.United Kingdom Science Research Counci
    corecore