Can logic programming execute as fast as imperative programming?
Can logic programming execute as fast as imperative programming?
Abstract interpretation and application to logic programs
Journal of Logic Programming
The design and implementation of the self compiler, an optimizing compiler for object-oriented programming languages
Native code compilation in SICStus Prolog
Proceedings of the eleventh international conference on Logic programming
Region-based compilation: an introduction and motivation
Proceedings of the 28th annual international symposium on Microarchitecture
Does “just in time” = “better late than never”?
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Knowledge-based optimization in Prolog compiler
ACM '86 Proceedings of 1986 ACM Fall joint computer conference
The GNU Prolog system and its implementation
SAC '00 Proceedings of the 2000 ACM symposium on Applied computing - Volume 2
Herbrand constraint solving in HAL
Proceedings of the 1999 international conference on Logic programming
Optimising Bytecode Emulation for Prolog
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
Compiling Mercury to High-Level C Code
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Design, implementation and evaluation of adaptive recompilation with on-stack replacement
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Region Formation Analysis with Demand-Driven Inlining for Region-Based Optimization
PACT '00 Proceedings of the 2000 International Conference on Parallel Architectures and Compilation Techniques
Mixed-mode Bytecode Execution
Overview of the IBM Java just-in-time compiler
IBM Systems Journal
IBM Systems Journal
The java hotspotTM server compiler
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Demand-driven indexing of prolog clauses
ICLP'07 Proceedings of the 23rd international conference on Logic programming
The Life of a Logic Programming System
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Theory and Practice of Logic Programming - Prolog Systems
Sicstus prolog-the first 25 years
Theory and Practice of Logic Programming - Prolog Systems
Theory and Practice of Logic Programming - Prolog Systems
Hi-index | 0.00 |
We propose dynamic compilation for Prolog, in the style of Just-In-Time compilers. Our approach adapts to the actual characteristics of the target program by (i) compiling only the parts of the program that are executed frequently, and (ii) adapting to actual call patterns. This allows aggressive optimization of the parts of the program that are really executed, and better informed heuristics to drive these optimizations. Our compiler does need to support all features in the language, only what is deemed important to performance. Complex execution patterns, such as the ones caused by error handling, may be left to the interpreter. On the other hand, compilation is now part of the run-time, and thus incurs run-time overheads. We have implemented dynamic compilation for YAP system. Our initial results suggest that dynamic compilation achieves very substantial performance improvements over the original interpreter, and that it can approach and even out-perform state-of-theart native code systems. We believe that we have shown that dynamic compilation is worthwhile and fits naturally with Prolog execution.