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-Tesis |
Lenguaje: | español |
OAI Identifier: | oai:tesis.pucp.edu.pe:20.500.12404/1503 |
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 |
PUCP_4e1a58d9ad97080d9a8bda2657ace26e |
---|---|
oai_identifier_str |
oai:tesis.pucp.edu.pe:20.500.12404/1503 |
network_acronym_str |
PUCP |
network_name_str |
PUCP-Tesis |
repository_id_str |
. |
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 |
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.relation.ispartof.fl_str_mv |
SUNEDU |
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-Tesis 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-Tesis |
collection |
PUCP-Tesis |
bitstream.url.fl_str_mv |
https://tesis.pucp.edu.pe/bitstreams/ece82b01-3d5a-4530-8ef1-c5a4f2d2818e/download https://tesis.pucp.edu.pe/bitstreams/8ed0309d-651f-44a2-b3ae-8323dcceafb3/download https://tesis.pucp.edu.pe/bitstreams/9a8aa1da-f62e-4e71-b749-c75faed37463/download https://tesis.pucp.edu.pe/bitstreams/da7e3055-5f93-44b5-9749-f5590b8cc5a8/download |
bitstream.checksum.fl_str_mv |
8a4605be74aa9ea9d79846c1fba20a33 f99e8fc24e190923b09c2b3d2ddb1384 15a3d84af48e335a67175a86d4f63084 5712661590004add6eb02134c24fce90 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio de Tesis PUCP |
repository.mail.fl_str_mv |
raul.sifuentes@pucp.pe |
_version_ |
1834736972071960576 |
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.TesisspaPontificia 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/bachelorThesisreponame:PUCP-Tesisinstname:Pontificia Universidad Católica del Perúinstacron:PUCPSUNEDUIngeniero 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#tesisLICENSElicense.txtlicense.txttext/plain; charset=utf-81748https://tesis.pucp.edu.pe/bitstreams/ece82b01-3d5a-4530-8ef1-c5a4f2d2818e/download8a4605be74aa9ea9d79846c1fba20a33MD52falseAnonymousREADORIGINALGOMEZ_RENZO_Y_SALAMANCA_JUAN_LENGUAJE_PROGRAMACION_CODIGO.pdfGOMEZ_RENZO_Y_SALAMANCA_JUAN_LENGUAJE_PROGRAMACION_CODIGO.pdfapplication/pdf1556699https://tesis.pucp.edu.pe/bitstreams/8ed0309d-651f-44a2-b3ae-8323dcceafb3/downloadf99e8fc24e190923b09c2b3d2ddb1384MD51trueAnonymousREADTEXTGOMEZ_RENZO_Y_SALAMANCA_JUAN_LENGUAJE_PROGRAMACION_CODIGO.pdf.txtGOMEZ_RENZO_Y_SALAMANCA_JUAN_LENGUAJE_PROGRAMACION_CODIGO.pdf.txtExtracted texttext/plain163300https://tesis.pucp.edu.pe/bitstreams/9a8aa1da-f62e-4e71-b749-c75faed37463/download15a3d84af48e335a67175a86d4f63084MD55falseAnonymousREADTHUMBNAILGOMEZ_RENZO_Y_SALAMANCA_JUAN_LENGUAJE_PROGRAMACION_CODIGO.pdf.jpgGOMEZ_RENZO_Y_SALAMANCA_JUAN_LENGUAJE_PROGRAMACION_CODIGO.pdf.jpgIM Thumbnailimage/jpeg31466https://tesis.pucp.edu.pe/bitstreams/da7e3055-5f93-44b5-9749-f5590b8cc5a8/download5712661590004add6eb02134c24fce90MD56falseAnonymousREAD20.500.12404/1503oai:tesis.pucp.edu.pe:20.500.12404/15032025-03-12 18:06:20.123http://creativecommons.org/licenses/by-nc-nd/2.5/pe/info:eu-repo/semantics/openAccessopen.accesshttps://tesis.pucp.edu.peRepositorio de Tesis PUCPraul.sifuentes@pucp.peTk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo= |
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).