Exploiting Multiple Abstract Call Patterns for Optimizing Run-Time Checks

📅 2026-05-31
📈 Citations: 0
Influential: 0
📄 PDF

career value

118K/year
🤖 AI Summary
This work addresses the significant runtime overhead commonly incurred by assertion checking in dynamically typed languages. It proposes a novel approach that, for the first time, systematically incorporates multi-calling-context information into a goal-directed, multi-variant abstract interpretation framework. By performing top-down inference of program properties under distinct calling contexts and selectively integrating the runtime semantics of assertions, the method substantially reduces redundant checks while preserving the ability to provide hints about unverified properties. An implementation in the Ciao system demonstrates that this technique markedly decreases the number of runtime checks and improves execution performance compared to existing approaches.
📝 Abstract
In strongly-typed languages, types are verified at compile time, while dynamically typed languages, such as Prolog, perform type consistency checks entirely at run-time. Extending dynamic languages with assertions allows expressing both classical types and more general properties, providing high expressiveness, but at the cost of run-time overhead. Abstract interpretation allows safely approximating such program properties at compile time, which has been used to reduce the number of properties that require run-time checks, while still reporting unverified properties that can guide further static analyses, testing, or domain refinement. In this work, we first study how to selectively integrate the run-time semantics of assertion properties into a multivariant, top-down, goal-directed abstract interpretation algorithm. We then show how multiple inferred calling patterns can be exploited to reduce the number of properties that must be checked at run-time, thus minimizing the overhead. Finally, we report on an implementation of our approach in the Ciao system and provide performance results supporting that better results can be obtained than with the previously reported techniques.
Problem

Research questions and friction points this paper is trying to address.

run-time checks
abstract interpretation
assertion properties
dynamic languages
type consistency
Innovation

Methods, ideas, or system contributions that make the work stand out.

abstract interpretation
run-time checks
calling patterns
assertion properties
dynamic languages
🔎 Similar Papers
No similar papers found.
D
Daniela Ferreiro
Universidad Politécnica de Madrid (UPM), IMDEA Software Institute, Madrid, Spain
D
Daniel Jurjo-Rivas
Universidad Politécnica de Madrid (UPM), IMDEA Software Institute, Madrid, Spain
M
Marco Ciccalè
Universidad Politécnica de Madrid (UPM), IMDEA Software Institute, Madrid, Spain
Jose F. Morales
Jose F. Morales
Assistant Professor at UPM / IMDEA Software Institute
Logic ProgrammingVirtual MachinesCompilersAbstract InterpretationStatic Analysis
P
Pedro López-García
Spanish Council for Scientific Research, IMDEA Software Institute, Madrid, Spain
Manuel Hermenegildo
Manuel Hermenegildo
IMDEA Software Institute and Technical U. of Madrid (UPM)
Abstract InterpretationProgram AnalysisVerificationLogic ProgrammingComputational Logic