Abstract environment trimming

Jurjo Rivas, Daniel ORCID: https://orcid.org/0000-0001-6215-1080, Morales Caballero, José Francisco, López García, Pedro ORCID: https://orcid.org/0000-0002-1092-2071 and Hermenegildo, Manuel V. ORCID: https://orcid.org/0000-0002-7583-323X (2024). Abstract environment trimming. "Theory and Practice of Logic Programming", v. 24 (n. 4); pp. 863-884. ISSN 1471-0684. https://doi.org/10.1017/S1471068424000358.

Descripción

Título: Abstract environment trimming
Autor/es:
Tipo de Documento: Artículo
Título de Revista/Publicación: Theory and Practice of Logic Programming
Fecha: 1 Julio 2024
ISSN: 1471-0684
Volumen: 24
Número: 4
Materias:
ODS:
Palabras Clave Informales: Analysis and verification of systems; Correct; Desig; Linearity; Logic programming methodology and applications; Precise; PROLOG; Securit; Set-sharing analysis; Specification
Escuela: E.T.S. de Ingenieros Informáticos (UPM)
Departamento: Inteligencia Artificial
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

[thumbnail of 10313117.pdf] PDF (Portable Document Format) - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (1MB)
[thumbnail of Preprint] PDF (Portable Document Format) (Preprint) - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (1MB)

Resumen

Variable sharing is a fundamental property in the static analysis of logic programs, since it is instrumental for ensuring correctness and increasing precision while inferring many useful program properties. Such properties include modes, determinacy, non-failure, cost, etc. This has motivated significant work on developing abstract domains to improve the precision and performance of sharing analyses. Much of this work has centered around the family of set-sharing domains, because of the high precision they offer. However, this comes at a price: their scalability to a wide set of realistic programs remains challenging and this hinders their wider adoption. In this work, rather than defining new sharing abstract domains, we focus instead on developing techniques which can be incorporated in the analyzers to address aspects that are known to affect the efficiency of these domains, such as the number of variables, without affecting precision. These techniques are inspired in others used in the context of compiler optimizations, such as expression reassociation and variable trimming. We present several such techniques and provide an extensive experimental evaluation of over 1100 program modules taken from both production code and classical benchmarks. This includes the Spectector cache analyzer, the s(CASP) system, the libraries of the Ciao system, the LPdoc documenter, the PLAI analyzer itself, etc. The experimental results are quite encouraging: we have obtained significant speedups, and, more importantly, the number of modules that require a timeout was cut in half. As a result, many more programs can be analyzed precisely in reasonable times.

Proyectos asociados

Tipo
Código
Acrónimo
Responsable
Título
Gobierno de España
PID2019-108528RB-C21
ProCode
Sin especificar
Sin especificar
Gobierno de España
TED2021-132464B-I00
PRODIGY
Sin especificar
Sin especificar

Más información

ID de Registro: 87808
Identificador DC: https://oa.upm.es/87808/
Identificador OAI: oai:oa.upm.es:87808
URL Portal Científico: https://portalcientifico.upm.es/es/ipublic/item/10313117
Identificador DOI: 10.1017/S1471068424000358
URL Oficial: https://www.cambridge.org/core/journals/theory-and...
Depositado por: iMarina Portal Científico
Depositado el: 18 Feb 2025 11:34
Ultima Modificación: 10 Mar 2026 09:45