Exploiting term hiding to reduce run-time checking overhead

Stulova, Nataliia, Morales Caballero, José Francisco and Hermenegildo, Manuel V. ORCID: https://orcid.org/0000-0002-7583-323X (2018). Exploiting term hiding to reduce run-time checking overhead. In: "20th International Symposium on Practical Aspects of Declarative Languages (PADL 2018)", 08-09 Jan 2018, Los Angeles. ISBN 978-3-319-73305-0. pp. 99-115. https://doi.org/10.1007/978-3-319-73305-0_7.

Description

Title: Exploiting term hiding to reduce run-time checking overhead
Author/s:
Item Type: Presentation at Congress or Conference (Article)
Event Title: 20th International Symposium on Practical Aspects of Declarative Languages (PADL 2018)
Event Dates: 08-09 Jan 2018
Event Location: Los Angeles
Title of Book: Practical Aspects of Declarative Languages
Date: 2018
ISBN: 978-3-319-73305-0
Volume: 1
Subjects:
Freetext Keywords: Logic programming; Module systems; Practicality of run-time checking; Assertion-based debugging and validation; Static analysis
Faculty: E.T.S. de Ingenieros Informáticos (UPM)
Department: Inteligencia Artificial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[thumbnail of HERME_ARC_2018-3.pdf]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (985kB) | Preview

Abstract

One of the most attractive features of untyped languages is the flexibility in term creation and manipulation. However, with such power comes the responsibility of ensuring the correctness of these 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 static analysis can greatly reduce such overheads, 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 technique which takes advantage of module systems which can hide a selected set of functor symbols to significantly enrich the shape information that can be inferred for reusable libraries, as well as an improved run-time checking approach that leverages 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 the full expressiveness of the assertion language in this context. In contrast to other approaches it does not introduce the need to switch the language to a (static) type system, 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.

More information

Item ID: 52854
DC Identifier: https://oa.upm.es/52854/
OAI Identifier: oai:oa.upm.es:52854
DOI: 10.1007/978-3-319-73305-0_7
Official URL: https://link.springer.com/chapter/10.1007/978-3-31...
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 29 Oct 2018 15:03
Last Modified: 29 Oct 2018 15:03
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM