A type system for logic programs
Concurrent Prolog: collected papers
Compile-time derivation of variable dependency using abstract interpretation
Journal of Logic Programming
Abstract debugging of higher-order imperative languages
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Experimental evaluation of a generic abstract interpretation algorithm for PROLOG
ACM Transactions on Programming Languages and Systems (TOPLAS)
Analyzing logic programs with dynamic scheduling
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Fast and precise regular approximations of logic programs
Proceedings of the eleventh international conference on Logic programming
Global analysis of constraint logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A methodology for granularity-based control of parallelism in logic programs
Journal of Symbolic Computation - Special issue on parallel symbolic computation
Lower bound cost estimation for logic programs
ILPS '97 Proceedings of the 1997 international symposium on Logic programming
Program specialisation and abstract interpretation reconciled
JICSLP'98 Proceedings of the 1998 joint international conference and symposium on Logic programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program analysis, debugging, and optimization using the ciao system preprocessor
Proceedings of the 1999 international conference on Logic programming
Incremental analysis of constraint logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
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
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
A Generic Processor for Program Validation and Debugging
Analysis and Visualization Tools for Constraint Programming, Constrain Debugging (DiSCiPl project)
An Assertion Language for Constraint Logic Programs
Analysis and Visualization Tools for Constraint Programming, Constrain Debugging (DiSCiPl project)
Combined Static and Dynamic Assertion-Based Debugging of Constraint Logic Programs
LOPSTR'99 Selected papers from the 9th International Workshop on Logic Programming Synthesis and Transformation
Abstract Specialization and Its Application to Program Parallelization
LOPSTR '96 Proceedings of the 6th 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
Automatic Verification by Abstract Interpretation
VMCAI 2003 Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation
Abstract specialization and its applications
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Determinacy analysis for logic programs using mode and type information
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
Justification and debugging of answer set programs in ASP
Proceedings of the sixth international symposium on Automated analysis-driven debugging
Practical type inference based on success typings
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Collection analysis for Horn clause programs
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Poly-controlled partial evaluation
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Roadmap for enhanced languages and methods to aid verification
Proceedings of the 5th international conference on Generative programming and component engineering
High-level languages for small devices: a case study
CASES '06 Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems
Poly-controlled partial evaluation in practice
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A Study on the Practicality of Poly-Controlled Partial Evaluation
Electronic Notes in Theoretical Computer Science (ENTCS)
A language for specifying type contracts in erlang and its interaction with success typings
ERLANG '07 Proceedings of the 2007 SIGPLAN workshop on ERLANG Workshop
A practical type analysis for verification of modular prolog programs
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Comparing tag scheme variations using an abstract machine generator
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Towards execution time estimation in abstract machine-based languages
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Concurrency, Graphs and Models
Annotation Algorithms for Unrestricted Independent And-Parallelism in Logic Programs
Logic-Based Program Synthesis and Transformation
COSTA: Design and Implementation of a Cost and Termination Analyzer for Java Bytecode
Formal Methods for Components and Objects
A High-Level Implementation of Non-deterministic, Unrestricted, Independent And-Parallelism
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Decompilation of Java bytecode to Prolog by partial evaluation
Information and Software Technology
Towards a Type Discipline for Answer Set Programming
Types for Proofs and Programs
Integrating Software Testing and Run-Time Checking in an Assertion Verification Framework
ICLP '09 Proceedings of the 25th International Conference on Logic Programming
Non-strict independence-based program parallelization using sharing and freeness information
Theoretical Computer Science
User-Definable Resource Usage Bounds Analysis for Java Bytecode
Electronic Notes in Theoretical Computer Science (ENTCS)
Automatic binding-related error diagnosis in logic programs
ICLP'07 Proceedings of the 23rd international conference on Logic programming
User-definable resource bounds analysis for logic programs
ICLP'07 Proceedings of the 23rd international conference on Logic programming
Demand-driven indexing of prolog clauses
ICLP'07 Proceedings of the 23rd international conference on Logic programming
A novel test case generation method for prolog programs based on call patterns semantics
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
Extracting purely functional contents from logical inductive types
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
ICSOC/ServiceWave'09 Proceedings of the 2009 international conference on Service-oriented computing
Closed-Form Upper Bounds in Static Cost Analysis
Journal of Automated Reasoning
ABC: algebraic bound computation for loops
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
PADL'11 Proceedings of the 13th international conference on Practical aspects of declarative languages
Efficient local unfolding with ancestor stacks*
Theory and Practice of Logic Programming
CLP projection for constraint handling rules
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
Cost analysis of object-oriented bytecode programs
Theoretical Computer Science
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Converting one type-based abstract domain to another
LOPSTR'05 Proceedings of the 15th international conference on Logic Based Program Synthesis and Transformation
Experiments in context-sensitive analysis of modular programs
LOPSTR'05 Proceedings of the 15th international conference on Logic Based Program Synthesis and Transformation
Reduced certificates for abstraction-carrying code
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Using combined static analysis and profiling for logic program execution time estimation
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
An overview of ciao and its design philosophy
Theory and Practice of Logic Programming - Prolog Systems
Verification of java bytecode using analysis and transformation of logic programs
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Combining static analysis and profiling for estimating execution times
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
A segment-swapping approach for executing trapped computations
PADL'12 Proceedings of the 14th international conference on Practical Aspects of Declarative Languages
Interval-Based resource usage verification: formalization and prototype
FOPARA'11 Proceedings of the Second international conference on Foundational and Practical Aspects of Resource Analysis
Turbo DiSL: partial evaluation for high-level bytecode instrumentation
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Symbolic evaluation graphs and term rewriting: a general methodology for analyzing logic programs
Proceedings of the 14th symposium on Principles and practice of declarative programming
Detecting specification errors in declarative languages with constraints
MODELS'12 Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems
Lightweight compilation of (c)lp to javascript*
Theory and Practice of Logic Programming
A modular and generic analysis server system for functional logic programs
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
The technique of Abstract Interpretation has allowed the development of very sophisticated global program analyses which are at the same time provably correct and practical. We present in a tutorial fashion a novel program development framework which uses abstract interpretation as a fundamental tool. The framework uses modular, incremental abstract interpretation to obtain information about the program. This information is used to validate programs, to detect bugs with respect to partial specifications written using assertions (in the program itself and/or in system libraries), to generate and simplify run-time tests, and to perform high-level program transformations such as multiple abstract specialization, parallelization, and resource usage control, all in a provably correct way. In the case of validation and debugging, the assertions can refer to a variety of program points such as procedure entry, procedure exit, points within procedures, or global computations. The system can reason with much richer information than, for example, traditional types. This includes data structure shape (including pointer sharing), bounds on data structure sizes, and other operational variable instantiation properties, as well as procedure-level properties such as determinacy, termination, nonfailure, and bounds on resource consumption (time or space cost). CiaoPP, the preprocessor of the Ciao multi-paradigm programming system, which implements the described functionality, will be used to illustrate the fundamental ideas.