126 research outputs found
Description and Optimization of Abstract Machines in a Dialect of Prolog
In order to achieve competitive performance, abstract machines for Prolog and
related languages end up being large and intricate, and incorporate
sophisticated optimizations, both at the design and at the implementation
levels. At the same time, efficiency considerations make it necessary to use
low-level languages in their implementation. This makes them laborious to code,
optimize, and, especially, maintain and extend. Writing the abstract machine
(and ancillary code) in a higher-level language can help tame this inherent
complexity. We show how the semantics of most basic components of an efficient
virtual machine for Prolog can be described using (a variant of) Prolog. These
descriptions are then compiled to C and assembled to build a complete bytecode
emulator. Thanks to the high level of the language used and its closeness to
Prolog, the abstract machine description can be manipulated using standard
Prolog compilation and optimization techniques with relative ease. We also show
how, by applying program transformations selectively, we obtain abstract
machine implementations whose performance can match and even exceed that of
state-of-the-art, highly-tuned, hand-crafted emulators.Comment: 56 pages, 46 figures, 5 tables, To appear in Theory and Practice of
Logic Programming (TPLP
Wam based space efficient Prolog implementation in Lisp
This thesis proposes the implementation of a space efficient Prolog implementation
based on the work of David H. D. Warren and Hassan Aït-Kaci.
The Common Lisp is the framework used to the construction of the Prolog
system, it was chosen both to provide a space efficient environment and a
rich programming language in the sense that it supply the user with abstractions
and new ways of thinking. The resulting system is a new syntax to the
initial language that runs on top of the SBCL Common Lisp implementation
and can abstract away or exploit the underlying system.Tese (Doutorado)Esse trabalho propõe a implementação de um sistema Prolog eficiente no
espaço, o mesmo é baseado nos trabalhos de David H. D. Warren e Hassan
Aït-Kaci. A Common Lisp é a estrutura usada para a construção do sistema
Prolog, ela foi escolhida tanto por fornecer um ambiente eficiente no espaço
quando por ser uma linguagem de programação rica no sentido de que fornece
ao usuário abstrações e novas maneiras de pensar. O sistema resultante
consiste em uma nova sintaxe aplicada à linguagem inicial que funciona sobre
a implementanção Common Lisp chamada SBCL e é capaz de abstrair ou
explorar o sistema subjacente
A feasibility Study: The Succinct Solver v2.0, XSB Prolog v2.6, and Flow-Logic Based Program Analysis for Carmel
Number: SECSAFE-IMM-008-1.0 Classification: Internal Abstract. We perform a direct comparison of the Succinct Solver v2.0 and XSB Prolog v2.6 based on experiments with Control Flow Analyses of scalable Discretionary Ambient programs and Carmel programs. To facilitate this comparison we expand ALFP clauses accepted by the Succinct Solver into more general Normal clauses accepted by both solvers and run the experiments for all three possible combinations of input and solver. This allows the solvers to be tested on even ground and enables the reuse of existing analyses and their corresponding ALFP constraint generators. The performance of the Succinct Solver is at worst a small constant factor worse than XSB Prolog. In optimum cases the Succinct Solver outperforms XSB Prolog by having
Programmiersprachen und Rechenkonzepte
Seit 1984 veranstaltet die GI-Fachgruppe "Programmiersprachen und Rechenkonzepte" regelmäßig im Frühjahr einen Workshop im Physikzentrum Bad Honnef. Das Treffen dient in erster Linie dem gegenseitigen Kennenlernen, dem Erfahrungsaustausch, der Diskussion und der Vertiefung gegenseitiger Kontakte. In diesem Forum werden Vorträge und Demonstrationen sowohl bereits abgeschlossener als auch noch laufender Arbeiten vorgestellt, unter anderem (aber nicht ausschließlich) zu Themen wie - Sprachen, Sprachparadigmen, - Korrektheit von Entwurf und Implementierung, -Werkzeuge, -Software-/Hardware-Architekturen, -Spezifikation, Entwurf, - Validierung, Verifikation, - Implementierung, Integration, - Sicherheit (Safety und Security), - eingebettete Systeme, - hardware-nahe Programmierung. In diesem Technischen Bericht sind einige der präsentierten Arbeiten zusammen gestellt
Foundations of Programming Languages
This clearly written textbook provides an accessible introduction to the three programming paradigms of object-oriented/imperative, functional, and logic programming. Highly interactive in style, the text encourages learning through practice, offering test exercises for each topic covered. Review questions and programming projects are also presented, to help reinforce the concepts outside of the classroom. This updated and revised new edition features new material on the Java implementation of the JCoCo virtual machine
- …