Implementación de un Entorno de Ejecución Reflexivo mediante compiladores de Meta-Trazas

Autores
Marasca, Dardo Gustavo
Año de publicación
2020
Idioma
español castellano
Tipo de recurso
tesis de grado
Estado
versión publicada
Colaborador/a o director/a de tesis
Chari, Guido Martín
Garbervetsky, Diego David
Descripción
Los lenguajes dinámicos permiten al programador construir sistemas de software de forma ágil debido a que eliminan la necesidad de indicar tipos estrictos a todas las variables o entidades que forman parte del programa. Usualmente estos lenguajes son ejecutados sobre una máquina virtual que abstrae el hardware o sistema subyacente. Gracias a esto, un mismo producto de software puede ser ejecutado en diferentes entornos sin grandes modificaciones. Si bien esto último permite gran flexibilidad, la indirección adicional provoca que en términos generales los lenguajes de tipado dinámico sean significativamente más lentos que aquellos lenguajes que tienen la capacidad de generar ejecutables en código nativo. Para mejorar las capacidades evolutivas de las aplicaciones en tiempo de ejecución, recientemente se introdujo a los entornos de ejecución reflexivos, máquinas virtuales que permiten, a los programas que ejecutan soportados por ella, inspeccionarla y modificarla según sean sus necesidades. Debido a la flexibilidad que poseen los lenguajes dinámicos y la gran cantidad de estudios relacionados a la construcción de máquinas virtuales para ellos, las primeras implementaciones de entornos de ejecución reflexivos están siendo construidos para esta familia de lenguajes. En recientes estudios fue desarrollado MATE, un modelo para la construcci´on de m´aquinas virtuales reflexivas que, mediante un protocolo basado en meta-objetos, permite al usuario modificar el comportamiento de diferentes componentes de la m´aquina virtual subyacente, como por ejemplo, la organización de la memoria o el proceso ejecución de métodos. Gracias a una implementación basada en meta-compiladores con evaluación parcial, se demostró que los costos adicionales en términos de rendimiento introducidos por las funcionalidades reflexivas, pueden ser mitigados considerablemente. En este trabajo se explora una implementación alternativa de MATE, basada en compiladores por metra-trazas, con el fin de verificar si los resultados previos son generalizables a esta familia de compiladores. Para ello, implementamos una máquina virtual, mediante el framework Pypy, comparable en funcionalidades a las implementaciones previas de MATE. Esta tecnología, diseñada para la construcción de máquinas virtuales, nos permitió adicionalmente, y de forma muy sencilla, dotar a nuestra máquina virtual de un compilador JIT para mejorar su rendimiento. Para comprobar nuestra hipótesis, comparamos el rendimiento de ambas soluciones ante un conjunto de pruebas diseñadas para evaluar el impacto inherente del soporte a MATE y su desempeño en casos de uso posibles de las capacidades reflexivas. En nuestro análisis logramos comprobar que ambas soluciones presentan un rendimiento asintóticamente similar, siguiendo la misma línea que los resultados de estudios previos que comparan compiladores JIT basados en evaluación-parcial y meta-trazas.
Fil: Marasca, Dardo Gustavo. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.
Materia
MAQUINAS VIRTUALES
REFLEXION
COMPILADORES DINAMICOS
COMPILADORES DE TRAZAS
EVALUACION PARCIAL
ESPECULACION
ADAPTACION DE SOFTWARE
EVOLUCION DE SOFTWARE
Nivel de accesibilidad
acceso abierto
Condiciones de uso
https://creativecommons.org/licenses/by-nc-sa/2.5/ar
Repositorio
Biblioteca Digital (UBA-FCEN)
Institución
Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
OAI Identificador
seminario:seminario_nCOM000567_Marasca

id BDUBAFCEN_67c8ef9013cb0c478e9d34912ef07b86
oai_identifier_str seminario:seminario_nCOM000567_Marasca
network_acronym_str BDUBAFCEN
repository_id_str 1896
network_name_str Biblioteca Digital (UBA-FCEN)
spelling Implementación de un Entorno de Ejecución Reflexivo mediante compiladores de Meta-TrazasMarasca, Dardo GustavoMAQUINAS VIRTUALESREFLEXIONCOMPILADORES DINAMICOSCOMPILADORES DE TRAZASEVALUACION PARCIALESPECULACIONADAPTACION DE SOFTWAREEVOLUCION DE SOFTWARELos lenguajes dinámicos permiten al programador construir sistemas de software de forma ágil debido a que eliminan la necesidad de indicar tipos estrictos a todas las variables o entidades que forman parte del programa. Usualmente estos lenguajes son ejecutados sobre una máquina virtual que abstrae el hardware o sistema subyacente. Gracias a esto, un mismo producto de software puede ser ejecutado en diferentes entornos sin grandes modificaciones. Si bien esto último permite gran flexibilidad, la indirección adicional provoca que en términos generales los lenguajes de tipado dinámico sean significativamente más lentos que aquellos lenguajes que tienen la capacidad de generar ejecutables en código nativo. Para mejorar las capacidades evolutivas de las aplicaciones en tiempo de ejecución, recientemente se introdujo a los entornos de ejecución reflexivos, máquinas virtuales que permiten, a los programas que ejecutan soportados por ella, inspeccionarla y modificarla según sean sus necesidades. Debido a la flexibilidad que poseen los lenguajes dinámicos y la gran cantidad de estudios relacionados a la construcción de máquinas virtuales para ellos, las primeras implementaciones de entornos de ejecución reflexivos están siendo construidos para esta familia de lenguajes. En recientes estudios fue desarrollado MATE, un modelo para la construcci´on de m´aquinas virtuales reflexivas que, mediante un protocolo basado en meta-objetos, permite al usuario modificar el comportamiento de diferentes componentes de la m´aquina virtual subyacente, como por ejemplo, la organización de la memoria o el proceso ejecución de métodos. Gracias a una implementación basada en meta-compiladores con evaluación parcial, se demostró que los costos adicionales en términos de rendimiento introducidos por las funcionalidades reflexivas, pueden ser mitigados considerablemente. En este trabajo se explora una implementación alternativa de MATE, basada en compiladores por metra-trazas, con el fin de verificar si los resultados previos son generalizables a esta familia de compiladores. Para ello, implementamos una máquina virtual, mediante el framework Pypy, comparable en funcionalidades a las implementaciones previas de MATE. Esta tecnología, diseñada para la construcción de máquinas virtuales, nos permitió adicionalmente, y de forma muy sencilla, dotar a nuestra máquina virtual de un compilador JIT para mejorar su rendimiento. Para comprobar nuestra hipótesis, comparamos el rendimiento de ambas soluciones ante un conjunto de pruebas diseñadas para evaluar el impacto inherente del soporte a MATE y su desempeño en casos de uso posibles de las capacidades reflexivas. En nuestro análisis logramos comprobar que ambas soluciones presentan un rendimiento asintóticamente similar, siguiendo la misma línea que los resultados de estudios previos que comparan compiladores JIT basados en evaluación-parcial y meta-trazas.Fil: Marasca, Dardo Gustavo. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.Universidad de Buenos Aires. Facultad de Ciencias Exactas y NaturalesChari, Guido MartínGarbervetsky, Diego David2020info:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_7a1finfo:ar-repo/semantics/tesisDeGradoapplication/pdfhttps://hdl.handle.net/20.500.12110/seminario_nCOM000567_Marascaspainfo:eu-repo/semantics/openAccesshttps://creativecommons.org/licenses/by-nc-sa/2.5/arreponame:Biblioteca Digital (UBA-FCEN)instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesinstacron:UBA-FCEN2025-10-16T09:31:10Zseminario:seminario_nCOM000567_MarascaInstitucionalhttps://digital.bl.fcen.uba.ar/Universidad públicaNo correspondehttps://digital.bl.fcen.uba.ar/cgi-bin/oaiserver.cgiana@bl.fcen.uba.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:18962025-10-16 09:31:11.416Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesfalse
dc.title.none.fl_str_mv Implementación de un Entorno de Ejecución Reflexivo mediante compiladores de Meta-Trazas
title Implementación de un Entorno de Ejecución Reflexivo mediante compiladores de Meta-Trazas
spellingShingle Implementación de un Entorno de Ejecución Reflexivo mediante compiladores de Meta-Trazas
Marasca, Dardo Gustavo
MAQUINAS VIRTUALES
REFLEXION
COMPILADORES DINAMICOS
COMPILADORES DE TRAZAS
EVALUACION PARCIAL
ESPECULACION
ADAPTACION DE SOFTWARE
EVOLUCION DE SOFTWARE
title_short Implementación de un Entorno de Ejecución Reflexivo mediante compiladores de Meta-Trazas
title_full Implementación de un Entorno de Ejecución Reflexivo mediante compiladores de Meta-Trazas
title_fullStr Implementación de un Entorno de Ejecución Reflexivo mediante compiladores de Meta-Trazas
title_full_unstemmed Implementación de un Entorno de Ejecución Reflexivo mediante compiladores de Meta-Trazas
title_sort Implementación de un Entorno de Ejecución Reflexivo mediante compiladores de Meta-Trazas
dc.creator.none.fl_str_mv Marasca, Dardo Gustavo
author Marasca, Dardo Gustavo
author_facet Marasca, Dardo Gustavo
author_role author
dc.contributor.none.fl_str_mv Chari, Guido Martín
Garbervetsky, Diego David
dc.subject.none.fl_str_mv MAQUINAS VIRTUALES
REFLEXION
COMPILADORES DINAMICOS
COMPILADORES DE TRAZAS
EVALUACION PARCIAL
ESPECULACION
ADAPTACION DE SOFTWARE
EVOLUCION DE SOFTWARE
topic MAQUINAS VIRTUALES
REFLEXION
COMPILADORES DINAMICOS
COMPILADORES DE TRAZAS
EVALUACION PARCIAL
ESPECULACION
ADAPTACION DE SOFTWARE
EVOLUCION DE SOFTWARE
dc.description.none.fl_txt_mv Los lenguajes dinámicos permiten al programador construir sistemas de software de forma ágil debido a que eliminan la necesidad de indicar tipos estrictos a todas las variables o entidades que forman parte del programa. Usualmente estos lenguajes son ejecutados sobre una máquina virtual que abstrae el hardware o sistema subyacente. Gracias a esto, un mismo producto de software puede ser ejecutado en diferentes entornos sin grandes modificaciones. Si bien esto último permite gran flexibilidad, la indirección adicional provoca que en términos generales los lenguajes de tipado dinámico sean significativamente más lentos que aquellos lenguajes que tienen la capacidad de generar ejecutables en código nativo. Para mejorar las capacidades evolutivas de las aplicaciones en tiempo de ejecución, recientemente se introdujo a los entornos de ejecución reflexivos, máquinas virtuales que permiten, a los programas que ejecutan soportados por ella, inspeccionarla y modificarla según sean sus necesidades. Debido a la flexibilidad que poseen los lenguajes dinámicos y la gran cantidad de estudios relacionados a la construcción de máquinas virtuales para ellos, las primeras implementaciones de entornos de ejecución reflexivos están siendo construidos para esta familia de lenguajes. En recientes estudios fue desarrollado MATE, un modelo para la construcci´on de m´aquinas virtuales reflexivas que, mediante un protocolo basado en meta-objetos, permite al usuario modificar el comportamiento de diferentes componentes de la m´aquina virtual subyacente, como por ejemplo, la organización de la memoria o el proceso ejecución de métodos. Gracias a una implementación basada en meta-compiladores con evaluación parcial, se demostró que los costos adicionales en términos de rendimiento introducidos por las funcionalidades reflexivas, pueden ser mitigados considerablemente. En este trabajo se explora una implementación alternativa de MATE, basada en compiladores por metra-trazas, con el fin de verificar si los resultados previos son generalizables a esta familia de compiladores. Para ello, implementamos una máquina virtual, mediante el framework Pypy, comparable en funcionalidades a las implementaciones previas de MATE. Esta tecnología, diseñada para la construcción de máquinas virtuales, nos permitió adicionalmente, y de forma muy sencilla, dotar a nuestra máquina virtual de un compilador JIT para mejorar su rendimiento. Para comprobar nuestra hipótesis, comparamos el rendimiento de ambas soluciones ante un conjunto de pruebas diseñadas para evaluar el impacto inherente del soporte a MATE y su desempeño en casos de uso posibles de las capacidades reflexivas. En nuestro análisis logramos comprobar que ambas soluciones presentan un rendimiento asintóticamente similar, siguiendo la misma línea que los resultados de estudios previos que comparan compiladores JIT basados en evaluación-parcial y meta-trazas.
Fil: Marasca, Dardo Gustavo. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.
description Los lenguajes dinámicos permiten al programador construir sistemas de software de forma ágil debido a que eliminan la necesidad de indicar tipos estrictos a todas las variables o entidades que forman parte del programa. Usualmente estos lenguajes son ejecutados sobre una máquina virtual que abstrae el hardware o sistema subyacente. Gracias a esto, un mismo producto de software puede ser ejecutado en diferentes entornos sin grandes modificaciones. Si bien esto último permite gran flexibilidad, la indirección adicional provoca que en términos generales los lenguajes de tipado dinámico sean significativamente más lentos que aquellos lenguajes que tienen la capacidad de generar ejecutables en código nativo. Para mejorar las capacidades evolutivas de las aplicaciones en tiempo de ejecución, recientemente se introdujo a los entornos de ejecución reflexivos, máquinas virtuales que permiten, a los programas que ejecutan soportados por ella, inspeccionarla y modificarla según sean sus necesidades. Debido a la flexibilidad que poseen los lenguajes dinámicos y la gran cantidad de estudios relacionados a la construcción de máquinas virtuales para ellos, las primeras implementaciones de entornos de ejecución reflexivos están siendo construidos para esta familia de lenguajes. En recientes estudios fue desarrollado MATE, un modelo para la construcci´on de m´aquinas virtuales reflexivas que, mediante un protocolo basado en meta-objetos, permite al usuario modificar el comportamiento de diferentes componentes de la m´aquina virtual subyacente, como por ejemplo, la organización de la memoria o el proceso ejecución de métodos. Gracias a una implementación basada en meta-compiladores con evaluación parcial, se demostró que los costos adicionales en términos de rendimiento introducidos por las funcionalidades reflexivas, pueden ser mitigados considerablemente. En este trabajo se explora una implementación alternativa de MATE, basada en compiladores por metra-trazas, con el fin de verificar si los resultados previos son generalizables a esta familia de compiladores. Para ello, implementamos una máquina virtual, mediante el framework Pypy, comparable en funcionalidades a las implementaciones previas de MATE. Esta tecnología, diseñada para la construcción de máquinas virtuales, nos permitió adicionalmente, y de forma muy sencilla, dotar a nuestra máquina virtual de un compilador JIT para mejorar su rendimiento. Para comprobar nuestra hipótesis, comparamos el rendimiento de ambas soluciones ante un conjunto de pruebas diseñadas para evaluar el impacto inherente del soporte a MATE y su desempeño en casos de uso posibles de las capacidades reflexivas. En nuestro análisis logramos comprobar que ambas soluciones presentan un rendimiento asintóticamente similar, siguiendo la misma línea que los resultados de estudios previos que comparan compiladores JIT basados en evaluación-parcial y meta-trazas.
publishDate 2020
dc.date.none.fl_str_mv 2020
dc.type.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
info:eu-repo/semantics/publishedVersion
http://purl.org/coar/resource_type/c_7a1f
info:ar-repo/semantics/tesisDeGrado
format bachelorThesis
status_str publishedVersion
dc.identifier.none.fl_str_mv https://hdl.handle.net/20.500.12110/seminario_nCOM000567_Marasca
url https://hdl.handle.net/20.500.12110/seminario_nCOM000567_Marasca
dc.language.none.fl_str_mv spa
language spa
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
https://creativecommons.org/licenses/by-nc-sa/2.5/ar
eu_rights_str_mv openAccess
rights_invalid_str_mv https://creativecommons.org/licenses/by-nc-sa/2.5/ar
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
publisher.none.fl_str_mv Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
dc.source.none.fl_str_mv reponame:Biblioteca Digital (UBA-FCEN)
instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
instacron:UBA-FCEN
reponame_str Biblioteca Digital (UBA-FCEN)
collection Biblioteca Digital (UBA-FCEN)
instname_str Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
instacron_str UBA-FCEN
institution UBA-FCEN
repository.name.fl_str_mv Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
repository.mail.fl_str_mv ana@bl.fcen.uba.ar
_version_ 1846142864000548864
score 12.712165