Efficient local unfolding with ancestor stacks

Puebla Sánchez, Alvaro Germán; Albert Albiol, Elvira y Hermenegildo, Manuel V. (2011). Efficient local unfolding with ancestor stacks. "Theory and practice of logic programming", v. 11 (n. 1); pp. 1-32. ISSN 1471-0684. https://doi.org/10.1017/S1471068409990263.

Descripción

Título: Efficient local unfolding with ancestor stacks
Autor/es:
  • Puebla Sánchez, Alvaro Germán
  • Albert Albiol, Elvira
  • Hermenegildo, Manuel V.
Tipo de Documento: Artículo
Título de Revista/Publicación: Theory and practice of logic programming
Fecha: Enero 2011
Volumen: 11
Materias:
Palabras Clave Informales: Partial evaluation, Partial deduction, Logic programming, Prolog, SLD semantics, Local unfolding, Evaluación parcial, Deducción parcial, Programación lógica.
Escuela: Facultad de Informática (UPM) [antigua denominación]
Departamento: Inteligencia Artificial
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

[img]
Vista Previa
PDF (Document Portable Format) - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (1MB) | Vista Previa

Resumen

The most successful unfolding rules used nowadays in the partial evaluation of logic programs are based on well quasi orders (wqo) applied over (covering) ancestors, i.e., a subsequence of the atoms selected during a derivation. Ancestor (sub)sequences are used to increase the specialization power of unfolding while still guaranteeing termination and also to reduce the number of atoms for which the wqo has to be checked. Unfortunately, maintaining the structure of the ancestor relation during unfolding introduces significant overhead. We propose an efficient, practical local unfolding rule based on the notion of covering ancestors which can be used in combination with a wqo and allows a stack-based implementation without losing any opportunities for specialization. Using our technique, certain non-leftmost unfoldings are allowed as long as local unfolding is performed, i.e., we cover depth-first strategies. To deal with practical programs, we propose assertion-based techniques which allow our approach to treat programs that include (Prolog) built-ins and external predicates in a very extensible manner, for the case of leftmost unfolding. Finally, we report on our mplementation of these techniques embedded in a practical partial evaluator, which shows that our techniques, in addition to dealing with practical programs, are also significantly more efficient in time and somewhat more efficient in memory than traditional tree-based implementations. To appear in Theory and Practice of Logic Programming (TPLP).

Proyectos asociados

TipoCódigoAcrónimoResponsableTítulo
FP7215483S-CUBESin especificarSoftware Services and Systems Network
Comunidad de MadridS-0505/TIC/0407 PROMESASSin especificarSin especificarSin especificar

Más información

ID de Registro: 14259
Identificador DC: http://oa.upm.es/14259/
Identificador OAI: oai:oa.upm.es:14259
Identificador DOI: 10.1017/S1471068409990263
URL Oficial: http://journals.cambridge.org/action/displayFulltext?type=1&pdftype=1&fid=7957129&jid=TLP&volumeId=11&issueId=01&aid=7957127
Depositado por: PAS Almudena Mateos Rodríguez
Depositado el: 11 Ene 2013 08:21
Ultima Modificación: 03 Dic 2014 09:39
  • Open Access
  • Open Access
  • Sherpa-Romeo
    Compruebe si la revista anglosajona en la que ha publicado un artículo permite también su publicación en abierto.
  • Dulcinea
    Compruebe si la revista española en la que ha publicado un artículo permite también su publicación en abierto.
  • Recolecta
  • e-ciencia
  • Observatorio I+D+i UPM
  • OpenCourseWare UPM