Intérprete para un lenguaje de programación orientado a objetos, con mecanismos de optimización y modificación dinámica de código
Descripción del Articulo
Este trabajo trata sobre la implementación de un intérprete para un lenguaje propio, que incluye algunas características que no son abordadas en cursos básicos de Desarrollo de Compiladores. Estas características son: lenguaje de programación orientado a objetos, modificación dinámica de código y op...
Autores: | , |
---|---|
Formato: | tesis de grado |
Fecha de Publicación: | 2012 |
Institución: | Pontificia Universidad Católica del Perú |
Repositorio: | PUCP-Institucional |
Lenguaje: | español |
OAI Identifier: | oai:repositorio.pucp.edu.pe:20.500.14657/148905 |
Enlace del recurso: | http://hdl.handle.net/20.500.12404/1503 |
Nivel de acceso: | acceso abierto |
Materia: | Programación orientada a objetos Lenguajes de programación (Computadoras electrónicas) https://purl.org/pe-repo/ocde/ford#1.02.00 |
id |
RPUC_3fa027746a009fa5d8d687882e53f651 |
---|---|
oai_identifier_str |
oai:repositorio.pucp.edu.pe:20.500.14657/148905 |
network_acronym_str |
RPUC |
network_name_str |
PUCP-Institucional |
repository_id_str |
2905 |
spelling |
Khlebnikov, ViktorGómez Díaz, Renzo GonzaloSalamanca Guillén, Juan Jesús2012-09-06T16:40:08Z2012-09-06T16:40:08Z20122012-09-06http://hdl.handle.net/20.500.12404/1503Este trabajo trata sobre la implementación de un intérprete para un lenguaje propio, que incluye algunas características que no son abordadas en cursos básicos de Desarrollo de Compiladores. Estas características son: lenguaje de programación orientado a objetos, modificación dinámica de código y optimización de código intermedio. El objetivo de este proyecto es presentar estas características, proponer una forma de implementación de las mismas y finalmente proceder a implementarlas. De tal manera que este trabajo contribuya al aprendizaje de construcción de intérpretes o compiladores, sirviendo como un caso de estudio para aquellas personas que tengan como objetivo profundizar en el tema, y por consiguiente un posible punto de partida para futuros trabajos. Por otro lado, es necesario validar los resultados obtenidos por el optimizador, así como la eficiencia de la forma implementación escogida, por lo que se incluye también una experimentación numérica que permite comprobar las hipótesis planteadas al inicio. En la primera parte, se define el problema identificado, luego se describe un breve marco teórico con los principales conceptos involucrados en el desarrollo del proyecto, seguidamente se muestra el estado del arte con relación a compiladores e intérpretes y se describe la solución al problema planteado al inicio. En la segunda parte, principalmente, se describen los objetivos del proyecto, los aportes específicos, los resultados esperados y las hipótesis. Como se mencionó anteriormente, uno de los objetivos que se persigue es que la tesis pueda servir como un caso de estudio para las personas interesadas y una posible base para trabajos futuros; por lo tanto, es necesario explicar la implementación con un nivel de detalle adecuado. En ese sentido, se describe las distintas partes de la implementación escogida: se comienza con la descripción de la gramática del lenguaje, después se describen las estructuras utilizadas, algunas operaciones primitivas, el código intermedio generado, las principales acciones semánticas, la interpretación, la administración de memoria, los algoritmos de optimización, el diseño del IDE y el ambiente de desarrollo.spaPontificia Universidad Católica del PerúPEinfo:eu-repo/semantics/openAccesshttp://creativecommons.org/licenses/by-nc-nd/2.5/pe/Programación orientada a objetosLenguajes de programación (Computadoras electrónicas)https://purl.org/pe-repo/ocde/ford#1.02.00Intérprete para un lenguaje de programación orientado a objetos, con mecanismos de optimización y modificación dinámica de códigoinfo:eu-repo/semantics/bachelorThesisTesis de licenciaturareponame:PUCP-Institucionalinstname:Pontificia Universidad Católica del Perúinstacron:PUCPIngeniero InformáticoTítulo ProfesionalPontificia Universidad Católica del Perú. Facultad de Ciencias e IngenieríaIngeniería Informática612286https://purl.org/pe-repo/renati/level#tituloProfesionalhttps://purl.org/pe-repo/renati/type#tesis20.500.14657/148905oai:repositorio.pucp.edu.pe:20.500.14657/1489052024-10-06 15:32:15.498http://creativecommons.org/licenses/by-nc-nd/2.5/pe/info:eu-repo/semantics/openAccessmetadata.onlyhttps://repositorio.pucp.edu.peRepositorio Institucional de la PUCPrepositorio@pucp.pe |
dc.title.es_ES.fl_str_mv |
Intérprete para un lenguaje de programación orientado a objetos, con mecanismos de optimización y modificación dinámica de código |
title |
Intérprete para un lenguaje de programación orientado a objetos, con mecanismos de optimización y modificación dinámica de código |
spellingShingle |
Intérprete para un lenguaje de programación orientado a objetos, con mecanismos de optimización y modificación dinámica de código Gómez Díaz, Renzo Gonzalo Programación orientada a objetos Lenguajes de programación (Computadoras electrónicas) https://purl.org/pe-repo/ocde/ford#1.02.00 |
title_short |
Intérprete para un lenguaje de programación orientado a objetos, con mecanismos de optimización y modificación dinámica de código |
title_full |
Intérprete para un lenguaje de programación orientado a objetos, con mecanismos de optimización y modificación dinámica de código |
title_fullStr |
Intérprete para un lenguaje de programación orientado a objetos, con mecanismos de optimización y modificación dinámica de código |
title_full_unstemmed |
Intérprete para un lenguaje de programación orientado a objetos, con mecanismos de optimización y modificación dinámica de código |
title_sort |
Intérprete para un lenguaje de programación orientado a objetos, con mecanismos de optimización y modificación dinámica de código |
author |
Gómez Díaz, Renzo Gonzalo |
author_facet |
Gómez Díaz, Renzo Gonzalo Salamanca Guillén, Juan Jesús |
author_role |
author |
author2 |
Salamanca Guillén, Juan Jesús |
author2_role |
author |
dc.contributor.advisor.fl_str_mv |
Khlebnikov, Viktor |
dc.contributor.author.fl_str_mv |
Gómez Díaz, Renzo Gonzalo Salamanca Guillén, Juan Jesús |
dc.subject.es_ES.fl_str_mv |
Programación orientada a objetos Lenguajes de programación (Computadoras electrónicas) |
topic |
Programación orientada a objetos Lenguajes de programación (Computadoras electrónicas) https://purl.org/pe-repo/ocde/ford#1.02.00 |
dc.subject.ocde.es_ES.fl_str_mv |
https://purl.org/pe-repo/ocde/ford#1.02.00 |
description |
Este trabajo trata sobre la implementación de un intérprete para un lenguaje propio, que incluye algunas características que no son abordadas en cursos básicos de Desarrollo de Compiladores. Estas características son: lenguaje de programación orientado a objetos, modificación dinámica de código y optimización de código intermedio. El objetivo de este proyecto es presentar estas características, proponer una forma de implementación de las mismas y finalmente proceder a implementarlas. De tal manera que este trabajo contribuya al aprendizaje de construcción de intérpretes o compiladores, sirviendo como un caso de estudio para aquellas personas que tengan como objetivo profundizar en el tema, y por consiguiente un posible punto de partida para futuros trabajos. Por otro lado, es necesario validar los resultados obtenidos por el optimizador, así como la eficiencia de la forma implementación escogida, por lo que se incluye también una experimentación numérica que permite comprobar las hipótesis planteadas al inicio. En la primera parte, se define el problema identificado, luego se describe un breve marco teórico con los principales conceptos involucrados en el desarrollo del proyecto, seguidamente se muestra el estado del arte con relación a compiladores e intérpretes y se describe la solución al problema planteado al inicio. En la segunda parte, principalmente, se describen los objetivos del proyecto, los aportes específicos, los resultados esperados y las hipótesis. Como se mencionó anteriormente, uno de los objetivos que se persigue es que la tesis pueda servir como un caso de estudio para las personas interesadas y una posible base para trabajos futuros; por lo tanto, es necesario explicar la implementación con un nivel de detalle adecuado. En ese sentido, se describe las distintas partes de la implementación escogida: se comienza con la descripción de la gramática del lenguaje, después se describen las estructuras utilizadas, algunas operaciones primitivas, el código intermedio generado, las principales acciones semánticas, la interpretación, la administración de memoria, los algoritmos de optimización, el diseño del IDE y el ambiente de desarrollo. |
publishDate |
2012 |
dc.date.accessioned.es_ES.fl_str_mv |
2012-09-06T16:40:08Z |
dc.date.available.es_ES.fl_str_mv |
2012-09-06T16:40:08Z |
dc.date.created.es_ES.fl_str_mv |
2012 |
dc.date.issued.fl_str_mv |
2012-09-06 |
dc.type.es_ES.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
dc.type.other.none.fl_str_mv |
Tesis de licenciatura |
format |
bachelorThesis |
dc.identifier.uri.none.fl_str_mv |
http://hdl.handle.net/20.500.12404/1503 |
url |
http://hdl.handle.net/20.500.12404/1503 |
dc.language.iso.es_ES.fl_str_mv |
spa |
language |
spa |
dc.rights.es_ES.fl_str_mv |
info:eu-repo/semantics/openAccess |
dc.rights.uri.*.fl_str_mv |
http://creativecommons.org/licenses/by-nc-nd/2.5/pe/ |
eu_rights_str_mv |
openAccess |
rights_invalid_str_mv |
http://creativecommons.org/licenses/by-nc-nd/2.5/pe/ |
dc.publisher.es_ES.fl_str_mv |
Pontificia Universidad Católica del Perú |
dc.publisher.country.es_ES.fl_str_mv |
PE |
dc.source.none.fl_str_mv |
reponame:PUCP-Institucional instname:Pontificia Universidad Católica del Perú instacron:PUCP |
instname_str |
Pontificia Universidad Católica del Perú |
instacron_str |
PUCP |
institution |
PUCP |
reponame_str |
PUCP-Institucional |
collection |
PUCP-Institucional |
repository.name.fl_str_mv |
Repositorio Institucional de la PUCP |
repository.mail.fl_str_mv |
repositorio@pucp.pe |
_version_ |
1835638273727266816 |
score |
13.919782 |
Nota importante:
La información contenida en este registro es de entera responsabilidad de la institución que gestiona el repositorio institucional donde esta contenido este documento o set de datos. El CONCYTEC no se hace responsable por los contenidos (publicaciones y/o datos) accesibles a través del Repositorio Nacional Digital de Ciencia, Tecnología e Innovación de Acceso Abierto (ALICIA).
La información contenida en este registro es de entera responsabilidad de la institución que gestiona el repositorio institucional donde esta contenido este documento o set de datos. El CONCYTEC no se hace responsable por los contenidos (publicaciones y/o datos) accesibles a través del Repositorio Nacional Digital de Ciencia, Tecnología e Innovación de Acceso Abierto (ALICIA).