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...

Descripción completa

Detalles Bibliográficos
Autores: Gómez Díaz, Renzo Gonzalo, Salamanca Guillén, Juan Jesús
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).