License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/OASIcs.ICLP.2017.9
URN: urn:nbn:de:0030-drops-84601
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2018/8460/
Stulova, Nataliia ;
Morales, Jose F. ;
Hermenegildo, Manuel V.
Towards Run-time Checks Simplification via Term Hiding
Abstract
One of the most attractive features of untyped languages for programmers
is the flexibility in term creation and manipulation.
However, with such power comes the responsibility of ensuring
correctness of operations.
A solution is adding run-time checks to the program via assertions, but
this can introduce overheads that are in many cases impractical.
While such overheads can be greatly reduced with static analysis, the
gains depend strongly on the quality of the information inferred.
Reusable libraries, i.e., library modules that are pre-compiled
independently of the client, pose special challenges in this context.
We propose a relaxed form of atom-based module system (which hides only
a selected set of functor symbols but still provides a strict mechanism
to prevent breaking visibility rules across modules) that can enrich
significantly the shape information that can be inferred in reusable
modular programs.
We also propose an improved run-time checking approach that takes
advantage of the proposed mechanisms to achieve large reductions in
overhead, closer to those of static languages even in the
reusable-library context.
While the approach is general and system-independent, we present it for
concreteness in the context of the Ciao assertion language and combined
static/dynamic checking framework.
Our method maintains full expressiveness of the checks in this context.
Contrary to other approaches it does not introduce the need to switch
the language to (static) type systems, which is known to change the
semantics in languages like Prolog.
We also study the approach experimentally and evaluate the overhead
reduction achieved in the run-time checks.
BibTeX - Entry
@InProceedings{stulova_et_al:OASIcs:2018:8460,
author = {Nataliia Stulova and Jose F. Morales and Manuel V. Hermenegildo},
title = {{Towards Run-time Checks Simplification via Term Hiding}},
booktitle = {Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017)},
pages = {9:1--9:3},
series = {OpenAccess Series in Informatics (OASIcs)},
ISBN = {978-3-95977-058-3},
ISSN = {2190-6807},
year = {2018},
volume = {58},
editor = {Ricardo Rocha and Tran Cao Son and Christopher Mears and Neda Saeedloei},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
address = {Dagstuhl, Germany},
URL = {http://drops.dagstuhl.de/opus/volltexte/2018/8460},
URN = {urn:nbn:de:0030-drops-84601},
doi = {10.4230/OASIcs.ICLP.2017.9},
annote = {Keywords: Module Systems, Implementation, Run-time Checking, Assertion-based Debugging and Validation, Static Analysis}
}
Keywords: |
|
Module Systems, Implementation, Run-time Checking, Assertion-based Debugging and Validation, Static Analysis |
Collection: |
|
Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017) |
Issue Date: |
|
2018 |
Date of publication: |
|
14.02.2018 |