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
- Institución
- Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
- OAI Identificador
- seminario:seminario_nCOM000567_Marasca
Ver los metadatos del registro completo
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 |