Memorias de investigación
Ponencias en congresos:
A Practical Type Analysis for Verification of Modular Prolog Programs
Año:2008

Áreas de investigación
  • Lenguaje de programación

Datos
Descripción
Regular types are a powerful tool for computing very precise descriptive types for logic programs. However, in the context of reallife, modular Prolog programs, the accurate results obtained by regular types often come at the price of efficiency. In this paper we propose a combination of techniques aimed at improving analysis efficiency in this context. As a first technique we allow optionally reducing the accuracy of inferred types by using only the types defined by the user or present in the libraries. We claim that, for the purpose of verifying type signatures given in the form of assertions the precision obtained using this approach is sufficient, and show that analysis times can be reduced significantly. Our second technique is aimed at dealing with situations where we would like to limit the amount of reanalysis performed, especially for library modules. Borrowing some ideas from polymorphic type systems, we show how to solve the problem by admitting parameters in type specifications. This allows us to compose new call patterns with some precomputed analysis info without losing any information. We argue that together these two techniques contribute to the practical and scalable analysis and verification of types in Prolog programs.
Internacional
Si
Nombre congreso
Workshop on Partial Evaluation and Program Manipulation (PEPM'08)
Tipo de participación
960
Lugar del congreso
San Francisco, USA
Revisores
Si
ISBN o ISSN
978-1-59593-977-7
DOI
Fecha inicio congreso
07/01/2008
Fecha fin congreso
08/01/2008
Desde la página
61
Hasta la página
70
Título de las actas
A Practical Type Analysis for Verification of Modular Prolog Programs

Esta actividad pertenece a memorias de investigación

Participantes

Grupos de investigación, Departamentos, Centros e Institutos de I+D+i relacionados
  • Creador: Grupo de Investigación: Computación lógica, Lenguajes, Implementación y Paralelismo (CLIP)
  • Departamento: Lenguajes y Sistemas Informáticos e Ingeniería de Software
  • Departamento: Inteligencia Artificial