Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Specialisation of Prolog and FCP programs using abstract interpretation
New Generation Computing - Special Issue: Selected Papers from the Workshop on Partial Evaluation and Mixed
A practical framework for the abstract interpretation of logic programs
Journal of Logic Programming
Partial evaluation in logic programming
Journal of Logic Programming
Multiple specialization using minimal-function graph semantics
Journal of Logic Programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Tutorial on specialisation of logic programs
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parameterized partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Fast and precise regular approximations of logic programs
Proceedings of the eleventh international conference on Logic programming
Implementation of multiple specialization in logic programs
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Program specialisation and abstract interpretation reconciled
JICSLP'98 Proceedings of the 1998 joint international conference and symposium on Logic programming
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Using regular approximations for generalisation during partial evalution
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Incremental analysis of constraint logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Systematic design of program transformation frameworks by abstract interpretation
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parallel execution of prolog programs: a survey
ACM Transactions on Programming Languages and Systems (TOPLAS)
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Global Analysis of Standard Prolog Programs
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
An Introduction to Partial Deduction
META-92 Proceedings of the 3rd International Workshop on Meta-Programming in Logic
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
An Assertion Language for Constraint Logic Programs
Analysis and Visualization Tools for Constraint Programming, Constrain Debugging (DiSCiPl project)
Logic Program Specialisation: How To Be More Specific
PLILP '96 Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs
Abstract Conjunctive Partial Deduction Using Regular Types and Its Application to Model Checking
LOPSTR '01 Selected papers from the 11th International Workshop on Logic Based Program Synthesis and Transformation
Ecological Partial Deduction: Preserving Characteristic Trees Without Constraints
LOPSTR '95 Proceedings of the 5th International Workshop on Logic Programming Synthesis and Transformation
Optimized Algorithms for Incremental Analysis of Logic Programs
SAS '96 Proceedings of the Third International Symposium on Static Analysis
More Precise Yet Efficient Type Inference for Logic Programs
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
A Theory of Logic Program Specialization and Generalization for Dealing with Input Data Properties
Selected Papers from the Internaltional Seminar on Partial Evaluation
Global Control for Partial Deduction through Characteristic Atoms and Global Trees
Selected Papers from the Internaltional Seminar on Partial Evaluation
Regular Approximation of Computation Paths in Logic and Functional Languages
Selected Papers from the Internaltional Seminar on Partial Evaluation
Combining Abstract Interpretation and Partial Evaluation (Brief Overview)
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
Program development using abstract interpretation (and the ciao system preprocessor)
SAS'03 Proceedings of the 10th international conference on Static analysis
A Model for Inter-module Analysis and Optimizing Compilation
LOPSTR '00 Selected Papers form the 10th International Workshop on Logic Based Program Synthesis and Transformation
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
Termination of Floating-Point Computations
Journal of Automated Reasoning
Logic program specialisation through partial deduction: Control issues
Theory and Practice of Logic Programming
A specialization calculus for pruning disjunctive predicates to support verification
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Abstract interpretation with specialized definitions
SAS'06 Proceedings of the 13th international conference on Static Analysis
Hi-index | 0.00 |
The aim of program specialization is to optimize programs by exploiting certain knowledge about the context in which the program will execute. There exist many program manipulation techniques which allow specializing the program in different ways. Among them, one of the best known techniques is partial evaluation, often referred to simply as program specialization, which optimizes programs by specializing them for (partially) known input data. In this work we describe abstract specialization, a technique whose main features are: (1) specialization is performed with respect to "abstract" values rather than "concrete" ones, and (2) abstract interpretation rather than standard interpretation of the program is used in order to propagate information about execution states. The concept of abstract specialization is at the heart of the specialization system in CiaoPP, the Ciao system preprocessor. In this paper we present a unifying view of the different specialization techniques used in CiaoPP and discuss their potential applications by means of examples. The applications discussed include program parallelization, optimization of dynamic scheduling (concurrency), and integration of partial evaluation techniques.