Towards run-time checks simplification via term hiding

Stulova, Nataliia and Morales Caballero, José Francisco and Hermenegildo, Manuel V. (2018). Towards run-time checks simplification via term hiding. In: "33rd International Conference on Logic Programming (ICLP 2017)", 28 Aug-01 Sep 2017, Melbourne. pp. 1-3.


Title: Towards run-time checks simplification via term hiding
  • Stulova, Nataliia
  • Morales Caballero, José Francisco
  • Hermenegildo, Manuel V.
Item Type: Presentation at Congress or Conference (Article)
Event Title: 33rd International Conference on Logic Programming (ICLP 2017)
Event Dates: 28 Aug-01 Sep 2017
Event Location: Melbourne
Title of Book: OpenAccess Series in Informatics
Date: 2018
Faculty: E.T.S. de Ingenieros Informáticos (UPM)
Department: Inteligencia Artificial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (346kB) | Preview


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.

More information

Item ID: 52882
DC Identifier:
OAI Identifier:
DOI: 10.4230/OASIcs.ICLP.2017.9
Official URL:
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 30 Oct 2018 13:29
Last Modified: 30 Oct 2018 13:29
  • 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