Avaliação de otimizações de código intermediário para uma máquina de pilha
| Autor(a) principal: | |
|---|---|
| Data de Publicação: | 2025 |
| Tipo de documento: | Trabalho de conclusão de curso |
| Idioma: | por |
| Título da fonte: | Repositório Digital do Mackenzie |
| Texto Completo: | https://dspace.mackenzie.br/handle/10899/41003 |
Resumo: | Indicado da publicação. |
| id |
UPM_8b55e020d50d7c891e3cc8fb700aabc1 |
|---|---|
| oai_identifier_str |
oai:dspace.mackenzie.br:10899/41003 |
| network_acronym_str |
UPM |
| network_name_str |
Repositório Digital do Mackenzie |
| repository_id_str |
10277 |
| spelling |
Guidotti, Tito Ribeiro de AlmeidaLubacheski, Fabio Aparecido Gamarra2025-07-02T19:19:36Z2025-07-02T19:19:36Z2025-06-14https://dspace.mackenzie.br/handle/10899/41003Indicado da publicação.Por conta da diversidade de linguagens de programação e arquiteturas de máquina,o desenvolvimento de compiladores dedicados para cada combinação de linguagem e arquitetura tornou-se uma tarefa onerosa. Por conta disso alguns compiladores fazem uso de linguagens intermediárias que permitem uma abstração do código, facilitando a sua tradução para diversas arquiteturas. Durante a compilação de um código-fonte, é possível otimizar o resultado através de uma série de transformações automatizadas que visam melhorar características da sua execução. Realizar essas transformações diretamente na linguagem intermediária é vantajoso por conta de generalidade e compatibilidade. Para avaliar a efetividade de otimizações no código intermediário, foi proposto um otimizador para uma linguagem intermediária didática que faz uso de uma arquitetura de pilha, a MEPA. Este otimizador implementa otimização de fluxo, eliminação de cópia de constantes, eliminação de código morto e eliminação de variáveis mortas. Para analisar a sua saída, foi desenvolvida uma máquina virtual para execução de MEPA; para avaliar a sua eficácia, foi projetada uma linguagem de programação e compilador que produz código MEPA. Com ele, foi feito um banco de programas que, otimizados, tiveram em média uma redução de 12% no número de instruções, 20% no uso de memória e 9% nas etapas de execução.Due to the diversity of programming languages and machine architectures, developing dedicated compilers for each combination of language and architecture has become a costly task. As a result, some compilers make use of intermediate languages that allow for code abstraction, making translation to various architectures easier. During the compilation of source code, it is possible to optimize the result through a series of automated transformations aimed at improving execution characteristics. Performing these transformations directly in the intermediate language is advantageous due to its generality and compatibility. To evaluate the effectiveness of optimizations in the intermediate code, an optimizer was proposed for a didactic intermediate language that uses a stack-based architecture, MEPA. This optimizer implements flow optimization, constant copy elimination, dead code elimination, and dead variable elimination. To analyze its output, a virtual machine was developed for executing MEPA; to evaluate its effectiveness, a programming language and compiler were designed to produce MEPA code. Using this setup, a set of programs was created which, after optimization, showed an average reduction of 12% in the number of instructions, 20% in memory usage, and 9% in execution steps.Universidade Presbiteriana Mackenzielinguagem intermediáriaarquitetura de pilhaotimizador de códigointermediate languagestack-based architecturecode optimizer.Avaliação de otimizações de código intermediário para uma máquina de pilhainfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisporreponame:Repositório Digital do Mackenzieinstname:Universidade Presbiteriana Mackenzie (MACKENZIE)instacron:MACKENZIEinfo:eu-repo/semantics/openAccessFaculdade de Computação e Informática (FCI)ORIGINALTito Ribeiro de Almeida Guidotti.pdfTito Ribeiro de Almeida Guidotti.pdfapplication/pdf705341https://dspace.mackenzie.br/bitstreams/78ab9d45-61c8-486b-8cd2-58782bf9f912/download64a11b57f69e6ebd6505073ad379ee20MD51trueAnonymousREADLICENSElicense.txtlicense.txttext/plain; charset=utf-82269https://dspace.mackenzie.br/bitstreams/9870ba9e-e263-4b8b-bed7-7e205fb8ecdf/downloadf0d4931322d30f6d2ee9ebafdf037c16MD52falseAnonymousREADTEXTTito Ribeiro de Almeida Guidotti.pdf.txtTito Ribeiro de Almeida Guidotti.pdf.txtExtracted texttext/plain44383https://dspace.mackenzie.br/bitstreams/73162c3a-6c29-4dde-bc3e-ac786656d5ca/download9da4a452f6015ecd0a55db40c284447eMD53falseAnonymousREADTHUMBNAILTito Ribeiro de Almeida Guidotti.pdf.jpgTito Ribeiro de Almeida Guidotti.pdf.jpgGenerated Thumbnailimage/jpeg3536https://dspace.mackenzie.br/bitstreams/098b6f51-4128-47d2-98aa-361cf0e08e1b/download085f6761e2fac0f83d6185328e0b9263MD54falseAnonymousREAD10899/410032025-07-03T06:01:39.934Zopen.accessoai:dspace.mackenzie.br:10899/41003https://dspace.mackenzie.brBiblioteca Digital de Teses e Dissertaçõeshttp://tede.mackenzie.br/jspui/PRIhttps://adelpha-api.mackenzie.br/server/oai/repositorio@mackenzie.br||paola.damato@mackenzie.bropendoar:102772025-07-03T06:01:39Repositório Digital do Mackenzie - Universidade Presbiteriana Mackenzie (MACKENZIE)falseTElDRU7Dh0EgREUgRElTVFJJQlVJw4fDg08gTsODTy1FWENMVVNJVkEKPGJyPjxicj4KQ29tIG8gYWNlaXRlIGRlc3RhIGxpY2Vuw6dhLCB2b2PDqiAobyBhdXRvciAoZXMpIG91IG8gdGl0dWxhciBkb3MgZGlyZWl0b3MgZGUgYXV0b3IpIGNvbmNlZGUgw6AgVW5pdmVyc2lkYWRlIFByZXNiaXRlcmlhbmEgTWFja2VuemllIG8gZGlyZWl0byBuw6NvLWV4Y2x1c2l2byBkZSByZXByb2R1emlyLCB0cmFkdXppciAoY29uZm9ybWUgZGVmaW5pZG8gYWJhaXhvKSwgZS9vdSBkaXN0cmlidWlyIHNldSB0cmFiYWxobyAoaW5jbHVpbmRvIG8gcmVzdW1vKSBwb3IgdG9kbyBvIG11bmRvIG5vIGZvcm1hdG8gaW1wcmVzc28gZSBlbGV0csO0bmljbyBlIGVtIHF1YWxxdWVyIG1laW8sIGluY2x1aW5kbyBvcyBmb3JtYXRvcyDDoXVkaW8gb3UgdsOtZGVvLgo8YnI+PGJyPgpBY2VpdGFuZG8gZXNzYSBsaWNlbsOnYSB2b2PDqiBjb25jb3JkYSBxdWUgYSBVbml2ZXJzaWRhZGUgUHJlc2JpdGVyaWFuYSBNYWNrZW56aWUgcG9kZSwgc2VtIGFsdGVyYXIgbyBjb250ZcO6ZG8sIHRyYW5zcG9yIG8gc2V1IHRyYWJhbGhvIHBhcmEgcXVhbHF1ZXIgbWVpbyBvdSBmb3JtYXRvIGUgbWFudGVyIG1haXMgZGUgdW1hIGPDs3BpYSBkbyBzZXUgdHJhYmFsaG8gcGFyYSBmaW5zIGRlIHNlZ3VyYW7Dp2EsIGJhY2stdXAgZSBwcmVzZXJ2YcOnw6NvLgo8YnI+PGJyPgpDb25jb3JkYXLDoSBxdWUgc2V1IHRyYWJhbGhvIHRhbWLDqW0gc2Vyw6EgcmVnaWRvIHBlbGEgQ3JlYXRpdmUgQ29tbW9ucyBxdWUgTsODTyBwZXJtaXRlIG8gdXNvIGNvbWVyY2lhbCBvdSBxdWFscXVlciBhbHRlcmHDp8OjbyBkYSBvYnJhIHBvciB0ZXJjZWlyb3MgY29uZm9ybWUgZGVzY3JpdG8gZW0gPGEgaHJlZj0iaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLW5kLzQuMC8iIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktbmMtbmQvNC4wLzwvYT4uCjxicj48YnI+ClZvY8OqIGRlY2xhcmEgcXVlIHNldSB0cmFiYWxobyDDqSBvcmlnaW5hbCBlIHF1ZSB2b2PDqiB0ZW0gbyBwb2RlciBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBvIGRlcMOzc2l0byBkbyBzZXUgdHJhYmFsaG8gbsOjbywgcXVlIHNlamEgZGUgc2V1IGNvbmhlY2ltZW50bywgaW5mcmluZ2UgZGlyZWl0b3MgYXV0b3JhaXMgZGUgbmluZ3XDqW0uCjxicj48YnI+CkNhc28gbyBzZXUgdHJhYmFsaG8gY29udGVuaGEgbWF0ZXJpYWwgcXVlIHZvY8OqIG7Do28gcG9zc3VpIGEgdGl0dWxhcmlkYWRlIGRvcyBkaXJlaXRvcyBhdXRvcmFpcywgdm9jw6ogZGVjbGFyYSBxdWUgb2J0ZXZlIGEgcGVybWlzc8OjbyBpcnJlc3RyaXRhIGRvIGRldGVudG9yIGRvcyBkaXJlaXRvcyBhdXRvcmFpcyBwYXJhIGNvbmNlZGVyIMOgIFVuaXZlcnNpZGFkZSBQcmVzYml0ZXJpYW5hIE1hY2tlbnppZSBvcyBkaXJlaXRvcyBhcHJlc2VudGFkb3MgbmVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgZGUgcHJvcHJpZWRhZGUgZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUgaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3Ugbm8gY29udGXDumRvIGRvIHNldSB0cmFiYWxobyBvcmEgZGVwb3NpdGFkby4KPGJyPjxicj4KQ0FTTyBPIFRSQUJBTEhPIE9SQSBERVBPU0lUQURPIFRFTkhBIFNJRE8gUkVTVUxUQURPIERFIFVNIFBBVFJPQ8ONTklPIE9VIEFQT0lPIERFIFVNQSBBR8OKTkNJQSBERSBGT01FTlRPIE9VIE9VVFJPIE9SR0FOSVNNTyBRVUUgTsODTyBTRUpBIEEgVU5JVkVSU0lEQURFIFBSRVNCSVRFUklBTkEgTUFDS0VOWklFLCBWT0PDiiBERUNMQVJBIFFVRSBSRVNQRUlUT1UgVE9ET1MgRSBRVUFJU1FVRVIgRElSRUlUT1MgREUgUkVWSVPDg08gQ09NTyBUQU1Cw4lNIEFTIERFTUFJUyBPQlJJR0HDh8OVRVMgRVhJR0lEQVMgUE9SIENPTlRSQVRPIE9VIEFDT1JETy4KPGJyPjxicj4KQSBVbml2ZXJzaWRhZGUgUHJlc2JpdGVyaWFuYSBNYWNrZW56aWUgc2UgY29tcHJvbWV0ZSBhIGlkZW50aWZpY2FyIGNsYXJhbWVudGUgbyBzZXUgbm9tZSAocykgb3UgbyhzKSBub21lKHMpIGRvKHMpIGRldGVudG9yKGVzKSBkb3MgZGlyZWl0b3MgYXV0b3JhaXMgZG8gc2V1IHRyYWJhbGhvLCBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIGFsw6ltIGRhcXVlbGFzIGNvbmNlZGlkYXMgcG9yIGVzdGEgbGljZW7Dp2EuCg== |
| dc.title.none.fl_str_mv |
Avaliação de otimizações de código intermediário para uma máquina de pilha |
| title |
Avaliação de otimizações de código intermediário para uma máquina de pilha |
| spellingShingle |
Avaliação de otimizações de código intermediário para uma máquina de pilha Guidotti, Tito Ribeiro de Almeida linguagem intermediária arquitetura de pilha otimizador de código intermediate language stack-based architecture code optimizer. |
| title_short |
Avaliação de otimizações de código intermediário para uma máquina de pilha |
| title_full |
Avaliação de otimizações de código intermediário para uma máquina de pilha |
| title_fullStr |
Avaliação de otimizações de código intermediário para uma máquina de pilha |
| title_full_unstemmed |
Avaliação de otimizações de código intermediário para uma máquina de pilha |
| title_sort |
Avaliação de otimizações de código intermediário para uma máquina de pilha |
| author |
Guidotti, Tito Ribeiro de Almeida |
| author_facet |
Guidotti, Tito Ribeiro de Almeida |
| author_role |
author |
| dc.contributor.author.fl_str_mv |
Guidotti, Tito Ribeiro de Almeida |
| dc.contributor.advisor1.fl_str_mv |
Lubacheski, Fabio Aparecido Gamarra |
| contributor_str_mv |
Lubacheski, Fabio Aparecido Gamarra |
| dc.subject.por.fl_str_mv |
linguagem intermediária arquitetura de pilha otimizador de código intermediate language stack-based architecture code optimizer. |
| topic |
linguagem intermediária arquitetura de pilha otimizador de código intermediate language stack-based architecture code optimizer. |
| description |
Indicado da publicação. |
| publishDate |
2025 |
| dc.date.accessioned.fl_str_mv |
2025-07-02T19:19:36Z |
| dc.date.available.fl_str_mv |
2025-07-02T19:19:36Z |
| dc.date.issued.fl_str_mv |
2025-06-14 |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
| format |
bachelorThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
https://dspace.mackenzie.br/handle/10899/41003 |
| url |
https://dspace.mackenzie.br/handle/10899/41003 |
| dc.language.iso.fl_str_mv |
por |
| language |
por |
| dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
| eu_rights_str_mv |
openAccess |
| dc.publisher.none.fl_str_mv |
Universidade Presbiteriana Mackenzie |
| publisher.none.fl_str_mv |
Universidade Presbiteriana Mackenzie |
| dc.source.none.fl_str_mv |
reponame:Repositório Digital do Mackenzie instname:Universidade Presbiteriana Mackenzie (MACKENZIE) instacron:MACKENZIE |
| instname_str |
Universidade Presbiteriana Mackenzie (MACKENZIE) |
| instacron_str |
MACKENZIE |
| institution |
MACKENZIE |
| reponame_str |
Repositório Digital do Mackenzie |
| collection |
Repositório Digital do Mackenzie |
| bitstream.url.fl_str_mv |
https://dspace.mackenzie.br/bitstreams/78ab9d45-61c8-486b-8cd2-58782bf9f912/download https://dspace.mackenzie.br/bitstreams/9870ba9e-e263-4b8b-bed7-7e205fb8ecdf/download https://dspace.mackenzie.br/bitstreams/73162c3a-6c29-4dde-bc3e-ac786656d5ca/download https://dspace.mackenzie.br/bitstreams/098b6f51-4128-47d2-98aa-361cf0e08e1b/download |
| bitstream.checksum.fl_str_mv |
64a11b57f69e6ebd6505073ad379ee20 f0d4931322d30f6d2ee9ebafdf037c16 9da4a452f6015ecd0a55db40c284447e 085f6761e2fac0f83d6185328e0b9263 |
| bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 |
| repository.name.fl_str_mv |
Repositório Digital do Mackenzie - Universidade Presbiteriana Mackenzie (MACKENZIE) |
| repository.mail.fl_str_mv |
repositorio@mackenzie.br||paola.damato@mackenzie.br |
| _version_ |
1854950367417073664 |