Project TECFRAM (Slicing Techniques for Multi-Paradigm Programs)
(Técnicas de Fragmentación de Programas Multi-Paradigma)
Project summary
Modern declarative multi-paradigm languages combine features from the best
declarative programming paradigms, namely logic, functional, and
concurrent programming. In contrast to imperative languages,
multi-paradigm languages have a formal and simple semantics.
This facilitates the development of a number of formal methods for
the analysis, transformation, debugging, optimization and
verification of programs.
Unfortunately, current development environments for these languages
still lack from several important software tools for the development
of large-scale applications (e.g., reactive systems, hardware
simulations, etc). For this purpose, powerful debuggers, analyzers,
program maintenance tools, reverse engineering tools,
testing tools, etc, are required.
In order to overcome this problem, we focus on program slicing
techniques. Program slices are obtained from a given program according
to some criterion (the so called slicing criterion), e.g., a
particular occurrence of a program variable in a given sentence.
Slicing techniques
were originally introduced by Weiser in the context of imperative
programming. Since then, they have attracted a lot
of interest and many asociated software tools have been developed.
In this project, we plan to adapt the slicing techniques to
declarative multi-paradigm programs. This will allow us to
develop effective software tools to assit the programmer in the
development of large-scale applications.
Keywords formal methods in software engineering,
multi-paradigm programming, Curry, program slicing, debugging,
verification, reactive systems