1 |
Partial Evaluation of Rewriting Logic TheoriesCuenca Ortega, Ángel Eduardo 04 November 2019 (has links)
[ES] La evaluación parcial de programas es una técnica general y potente de optimización de programas
que preserva su semántica y tiene muchas aplicaciones relevantes. La optimización se
consigue al especializar programas con respecto a una parte de sus datos de entrada, lo que produce
un nuevo programa llamado residual o programa especializado tal que, al ejecutarlo con
los datos de entrada restantes, producirá el mismo resultado que produce el programa original
con todos sus datos de entrada. Los esquemas de evaluación parcial existentes no son aplicables
a lenguajes expresivos basados en reglas como Maude, CafeOBJ, OBJ, ASF+SDF y ELAN, los
cuales soportan: 1) sofisticados tipos estructurados con subtipos y sobrecarga de operadores;
y 2) teorías ecuacionales modulo varias combinaciones de axiomas tales como asociatividad,
conmutatividad e identidad. Esta tesis desarrolla las bases teóricas necesarias e ilustra los conceptos
principales para su aplicación a programas expresivos escritos en el lenguaje Maude. El
esquema de evaluación parcial presentado en esta tesis está basado en un algoritmo automático
de desplegado que computa variantes de términos. Para asegurar la terminación del proceso
de especialización se han diseñado algoritmos de alto rendimiento para la generalización ecuacional
menos general con tipos ordenados y subsunción homeomórfica ecuacional con tipos
ordenados. Se muestra que la técnica de evaluación parcial desarrollada es correcta y completa
para teorías de reescritura convergentes que pueden contener varias combinaciones de axiomas
de asociatividad, conmutatividad y/o identidad para diferentes operadores binarios. Finalmente
se presenta Victoria, el primer evaluador parcial para teorías ecuacionales de tipos ordenados
para el lenguaje Maude, y se demuestra la efectividad y el incremento en eficiencia ganado a
través de experimentos realizados con ejemplos reales. / [CA] L'avaluació parcial de programes és una tècnica general i potent d'optimització de programes
que preserva la seua semàntica i té moltes aplicacions rellevants. L'optimització s'aconseguix
a l'especialitzar programes respecte a una part de les seues dades d'entrada, la qual cosa produïx
un nou programa cridat residual o programa especialitzat tal que, a l'executar-ho amb les
dades d'entrada restants, produirà el mateix resultat que produïx el programa original amb totes
les seues dades d'entrada. Els esquemes d'avaluació parcial existents no són aplicables a llenguatges
expressius basats en regles com Maude, CafeOBJ, OBJ, ASF+SDF i ELAN, els quals
suporten: 1) sofisticats tipus estructurats amb subtipus i sobrecàrrega d'operadors; i 2) teories
equacionals mòdul diverses combinacions d'axiomes com asociativitat, conmutativitat i identitat.
Esta tesi desenrotlla les bases teòriques necessàries i il·lustra els conceptes principals per a
la seua aplicació a programes expressius escrits en el llenguatge Maude. L'esquema d'avaluació
parcial presentat en esta tesi està basat en un algoritme automàtic de desplegat que computa
variants de termes. Per a assegurar la terminació del procés d'especialització s'han dissenyat
algoritmes d'alt rendiment per a la generalització ecuacional menys general amb subtipus ordenats
i subsunción ecuacional homeomórfica amb subtipus ordenats. Es mostra que la tècnica
d'avaluació parcial desenrotllada és correcta i completa per a teories de reescriptura convergents
que poden contindre diverses combinacions d'axiomes d'asociativitat, conmutativitat i identitat
per a diferents operadors binaris. Finalment es presenta Victoria, el primer avaluador parcial
per a teories equacionals de tipus ordenats per al llenguatge Maude i es demostra l'efectivitat i
l'increment en eficiència guanyat a través d'experiments realitzats amb exemples reals. / [EN] Partial evaluation is a powerful and general program optimization technique that preserves program
semantics and has many successful applications. Optimization is achieved by specializing
programs w.r.t. a part of their input data so that, when the residual or specialized program is
executed on the remaining input data, it produces the same outcome than the original program
with all of its input data. Existing PE schemes do not apply to expressive rule-based languages
like Maude, CafeOBJ, OBJ, ASF+SDF, and ELAN, which support: 1) rich type structures with
sorts, subsorts, and overloading; and 2) equational rewriting modulo various combinations of
axioms such as associativity, commutativity, and identity. This thesis develops the new foundations
needed and illustrates the key concepts of equational order sorted partial evaluation by
showing how they apply to the specialization of expressive programs written in Maude. Our partial
evaluation scheme is based on an automatic unfolding algorithm that computes term variants
and relies on high-performance order-sorted equational least general generalization and ordersorted
equational homeomorphic embedding algorithms for ensuring termination.We show that
our partial evaluation technique is sound and complete for order-sorted equational theories that
may contain various combinations of associativity, commutativity, and/or identity axioms for
different binary operators. Finally, we present Victoria, the first partial evaluator for Maude's
order-sorted equational theories, and demonstrate the effectiveness of our partial evaluation
scheme on several examples where it shows significant speed-up. / Finally, I extend my thanks to SENESCYT for the support provided for my studies. Also, I
thank the Universidad de Guayaquil that is my place of work. / Cuenca Ortega, ÁE. (2019). Partial Evaluation of Rewriting Logic Theories [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/130206
|
2 |
Evaluación Parcial Offline Dirigida por Narrowing: Técnicas de Optimización y AplicacionesArroyo Delgado, Gustavo 30 October 2012 (has links)
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]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/17655
|
3 |
Una aproximación offline a la evaluación parcial dirigida por narrowingRamos Díaz, J. Guadalupe 06 May 2008 (has links)
La evaluación parcial dirigida por narrowing (NPE: Narrowing-driven Partial Evaluation) es una técnica potente para la especialización de sistemas de reescritura, i.e., para el componente de primer orden de muchos lenguajes declarativos (lógico) funcionales como Haskell, Curry o Toy.
Los evaluadores parciales se clasifican en dos grandes categorías: online y offline, de acuerdo al momento temporal en que se consideran los aspectos de terminación del proceso de especialización. Los evaluadores parciales online son usualmente más precisos ya que tienen más información disponible. Los evaluadores parciales offline proceden comúnmente en dos etapas; la primera etapa procesa un programa (e.g., para identificar aquellas llamadas a función que se pueden desplegar sin riesgo de no terminación) e incluye anotaciones para guiar las computaciones parciales; entonces, una segunda etapa, la de evaluación parcial propiamente dicha, sólo tiene que obedecer las anotaciones y por tanto el especializador es mucho más rápido que en la aproximación online.
En esta tesis se presenta un nuevo esquema de evaluación parcial dirigido por narrowing, más eficiente y que asegura la terminación siguiendo el estilo offline. Para ello, identificamos una caracterización de programas cuasi-terminantes a los que llamamos "no crecientes". En tales programas, las computaciones por narrowing necesario presentan sólo un conjunto finito de términos diferentes (módulo renombramiento de variables). La propiedad de la cuasi-terminación es importante toda vez que su presencia es regularmente una condición suficiente para la terminación del proceso de especialización.
Sin embargo, la clase de programas cuasi-terminantes es muy restrictiva, por lo que introducimos un algoritmo que acepta programas inductivamente secuenciales---una clase mucho más amplia sobre la que está definido el narrowing necesario---y anota aquellas partes que violan la caracterización de programas no crecientes. Para procesar de mane / Ramos Díaz, JG. (2007). Una aproximación offline a la evaluación parcial dirigida por narrowing [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/1888
|
Page generated in 0.0475 seconds