Summary: | La evaluación parcial (EP) de programas es una técnica formal para
la especialización y optimización de programas. Un evaluador parcial
toma un programa y sólo una parte de sus datos de entrada (los llamados
datos estáticos) e intenta llevar a cabo todas las computaciones
que sean posibles a partir de tales datos. El evaluador parcial devuelve
un programa nuevo, denominado programa residual el cual se ejecuta
generalmente de manera más e ciente que el programa original, ya que
las computaciones que dependen de los datos estáticos se han realizado
en la fase de evaluación parcial de una vez y para siempre [JGS93]. La
evaluación parcial es una técnica de optimización de programas basada
en semántica la cual ha sido investigada dentro de diferentes paradigmas
de programación y aplicada a una amplia variedad de lenguajes. También es conocida como una técnica de transformación de programas
fuente-a-fuente para especializar programas con respecto a una parte de
sus datos de entrada (por ello también es conocida como especialización
de programas). La evaluación parcial ha sido intensamente aplicada en
el área de la programación funcional [CD93, JGS93, Tur86] y en programaci
ón lógica [Gal93, Kom82b, LS91, PP94], donde ésta es normalmente
conocida como deducción parcial. También en lenguajes imperativos
como C en [TBC+98], o aplicada a un subconjunto importante de C
en [And92] donde reportan la primera implementación autoaplicable de
evaluación parcial para un lenguaje imperativo. Y en lenguajes formales
como Scheme en [Jør92a, Jør92b] donde generan compiladores a partir
de intérpretes.
Cuando tenemos un programa sólo con algunos de sus datos de entrada
conocidos no podemos ejecutar el programa, sin embargo podemos
optimizar el programa computando respuestas tanto como sea posible.
La evaluación parcial es una técnica que permite la ejecución parcial de
un programa [MS97]. === Arroyo Delgado, G. (2012). Evaluación Parcial Offline Dirigida por Narrowing: Técnicas de Optimización y Aplicaciones [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/17655 === Palancia
|