Ábaco: um interpretador jit de Visual Basic 6 para a modernização de sistemas legado

dc.contributor.advisor1 Paulo, Otílio
dc.contributor.advisor1Lattes http://lattes.cnpq.br/2004899053752109pt_BR
dc.contributor.referee1 Paulo, Otílio
dc.contributor.referee1Lattes http://lattes.cnpq.br/2004899053752109pt_BR
dc.contributor.referee2 Sousa, Duany Dreyton Bezerra
dc.contributor.referee2Lattes http://lattes.cnpq.br/3744175351578428pt_BR
dc.contributor.referee3 Batista, Rogério Da Silva
dc.contributor.referee3Lattes http://lattes.cnpq.br/0697104139881988pt_BR
dc.creator Silva Júnior, Germano Barbosa
dc.creator.Lattes https://lattes.cnpq.br/3061773763957622pt_BR
dc.date.accessioned 2026-07-10T14:26:41Z
dc.date.available 2026-07-10T14:26:41Z
dc.date.issued 2026
dc.description.abstract Numerous Brazilian organizations still depend on legacy systems developed in languages whose ecosystems have become obsolete, such as Visual Basic 6.0 (VB6). Released in 1998 and without official support since 2008, the maintenance of this technology in modern environments is severely limited by the proprietary nature of its compiler and the impossibility of acquiring new licenses. This work presents the development of Ábaco, an open-source VB6 interpreter written in Rust, designed to facilitate the modernization of these systems. Unlike the original environment, Ábaco aims to establish a technical foundation that enables the future implementation of modern features, such as parallel execution and flexible integration with external libraries, while offering compatibility with legacy codebases. The implementation methodology covers the entire execution pipeline - loading, syntactic analysis, and assembly, through Just-In-Time (JIT) compilation for the 32-bit x86 architecture - with no external dependencies beyond the operating system. The results demonstrate that the system is already capable of executing a subset of the VB6 language, establishing a solid foundation for total compatibility and the extension of functionalities in legacy systems.pt_BR
dc.description.resumo Diversas organizações brasileiras ainda dependem de sistemas legados desenvolvidos em linguagens cujos ecossistemas tornaram-se obsoletos, como o Visual Basic 6.0 (VB6). Lançada em 1998 e sem suporte oficial desde 2008, a manutenção dessa tecnologia em ambientes modernos é severamente limitada pela natureza proprietária de seu compilador e pela impossibilidade de aquisição de novas licenças. Este trabalho apresenta o desenvolvimento do Ábaco, um interpretador de código aberto de VB6 escrito em Rust, projetado para facilitar a modernização desses sistemas. Diferente do ambiente original, o Ábaco visa estabelecer uma fundação técnica que viabiliza a futura implementação de capacidades modernas, como execução paralela e integração flexível com bibliotecas externas, enquanto oferece compatibilidade com o legado. A metodologia de implementação compreende todo o pipeline de execução - carregamento, análise sintática e montagem, por meio de compilação JIT (bem na hora) para a arquitetura x86 32-bit - sem dependências externas ao sistema operacional. Os resultados demonstram que o sistema já é capaz de executar um subconjunto da linguagem VB6, estabelecendo uma fundação sólida para a compatibilidade total e para a extensão de funcionalidades em sistemas legados.pt_BR
dc.identifier.citation SILVA, Germano Barbosa da Silva Júnior. Ábaco: um Interpretador JIT de Visual Basic 6 para a modernização de sistemas legado. Orientador: Otílio Paulo. 2026. 51 f. Trabalho de Conclusão de Curso (Tecnologia em Análise e Desenvolvimento de Sistemas) - Instituto Federal do Piauí, Campus Teresina Central, Teresina, 2026pt_BR
dc.identifier.uri https://bia.ifpi.edu.br/jspui/handle/123456789/5659
dc.language porpt_BR
dc.publisher Instituto Federal de Educação, Ciência e Tecnologia do Piauípt_BR
dc.publisher.country Brasilpt_BR
dc.publisher.department Campus Teresina Centralpt_BR
dc.publisher.initials IFPIpt_BR
dc.relation.references ALA-HULKKO, T. Modernization of a legacy codebase. 2025. Disponível em: <https://www.theseus.fi/handle/10024/894263>. Acesso em: 2 jun. 2026. Citado na página 15. ALFRED, V. et al. Compilers Principles, Techniques. Pearson, 2007. Disponível em: <http://www.ir.harambeeuniversity.edu.et/bitstream/handle/123456789/1534/ Compilers%20Principles%2C%20Techniques%20%26%20Tools%20by%20Alfred% 20V.%20Aho.%20%28%20PDFDrive.com%20%29.pdf?sequence=1&isAllowed=y>. Acesso em: 2 jun. 2026. Citado na página 18. ALIGNMENT. 2023. Disponível em: <https://learn.microsoft.com/en-us/cpp/cpp/ alignment-cpp-declarations?view=msvc-170>. Acesso em: 29 mai. 2026. Citado na página 31. CALLING Conventions. 2021. Disponível em: <https://learn.microsoft.com/en-us/cpp/ cpp/calling-conventions?view=msvc-170>. Acesso em: 29 mai. 2026. Citado na página 21. CARVALHO, P. H. F. Micro c-um compilador acadêmico. Fundação Universidade Federal de Mato Grosso do Sul, 2025. Acesso em: 29 mai. 2026. Citado 2 vezes nas páginas 28 e 29. CHUBCHENKO, S. Vb Decompiler. 2025. Disponível em: <https://www.vb-decompiler. org/vb60_reversing.htm>. Acesso em: 29 mai. 2026. Citado na página 17. CORMEN, T. H. et al. Introduction to algorithms. MIT press, 2022. Disponível em: <https://books.google.com.br/books?id=drZNEAAAQBAJ>. Acesso em: 2 jun. 2026. Citado na página 20. DALLE, J.-M.; JULLIEN, N. Open-source vs. proprietary software. Guest lecture at ESSID Summer School, Cargèse, 2001. Disponível em: <https://www.researchgate. net/publication/2559454_Open-Source_vs_Proprietary_Software>. Acesso em: 2 jun. 2026. Citado na página 15. DEVI, S. L.; PERUMAL, R. S.; MOULI, P. C. Challenges and issues in code migration from vb 6.0 to vb .net. 2011. Disponível em: <https://www.researchgate.net/ publication/235899034_Challenges_and_Issues_in_Code_Migration_From_VB_60_ TO_VBNET>. Acesso em: 2 jun. 2026. Citado na página 15. DIJKSTRA, E. W. Algol 60 translation : An Algol 60 translator for the x1 and Making a translator for Algol 60. [S.l.], 1961. Disponível em: <http: //www.cs.utexas.edu/users/EWD/MCReps/MR35.PDF>. Acesso em: 2 jun. 2026. Citado 2 vezes nas páginas 20 e 33. FREEBASIC. 2026. Disponível em: <https://www.freebasic.net/>. Acesso em: 29 mai. 2026. Citado na página 14. INTEL® 64 and IA-32 Architectures Software Developer’s Manual. 2026. Disponível em: <https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm. html>. Acesso em: 29 mai. 2026. Citado 2 vezes nas páginas 21 e 33. KOTZMANN, T. et al. Design of the java hotspot™ client compiler for java 6. ACM Transactions on Architecture and Code Optimization (TACO), ACM New York, NY, USA, v. 5, n. 1, p. 1–32, 2008. Disponível em: <https: //dl.acm.org/doi/abs/10.1145/1369396.1370017>. Acesso em: 2 jun. 2026. Citado na página 19. LUAJIT. 2025. Disponível em: <https://luajit.org/>. Acesso em: 2 jun. 2026. Citado na página 19. MS-VBAL: VBA Language Specification. 2025. Disponível em: <https://learn.microsoft. com/en-us/openspecs/microsoft_general_purpose_programming_languages/ms-vbal/ d5418146-0bd2-45eb-9c7a-fd9502722c74>. Acesso em: 29 mai. 2026. Citado na página 15. MYERS TOM BADGETT, C. S. G. J. The art of software testing. In: . John Wiley & Sons, Ltd, 2012. ISBN 9781119202486. Disponível em: <https: //onlinelibrary.wiley.com/doi/abs/10.1002/9781119202486>. Acesso em: 2 jun. 2026. Citado 2 vezes nas páginas 36 e 37. RADBASIC. 2026. Disponível em: <https://www.radbasic.dev/>. Acesso em: 29 mai. 2026. Citado na página 15. SPIDERMONKEY Javascript Engine. 2026. Disponível em: <https://spidermonkey.dev/>. Acesso em: 2 jun. 2026. Citado na página 19. TWINBASIC. 2026. Disponível em: <https://twinbasic.com/>. Acesso em: 29 mai. 2026. Citado na página 15. V8 Javascript Engine. 2026. Disponível em: <https://v8.dev/>. Acesso em: 2 jun. 2026. Citado na página 19.pt_BR
dc.rights Acesso Abertopt_BR
dc.subject Sistemas Legadopt_BR
dc.subject Interpretadorespt_BR
dc.subject Compiladorespt_BR
dc.subject Just In Timept_BR
dc.subject Legacy Systemspt_BR
dc.subject.cnpq CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::LINGUAGENS DE PROGRAMACAOpt_BR
dc.title Ábaco: um interpretador jit de Visual Basic 6 para a modernização de sistemas legadopt_BR
dc.title.alternative Ábaco: a Visual Basic 6 jit interpreter for the modernization of legacy systemspt_BR
dc.type Trabalho de Conclusão de Cursopt_BR

Files

Original bundle

Now showing 1 - 2 of 2
Loading...
Thumbnail Image
Name:
2026_termo_gbsilvajr.pdf
Size:
209.31 KB
Format:
Description:
Loading...
Thumbnail Image
Name:
2026_tcc_gbsilvajr.pdf
Size:
1.37 MB
Format:
Adobe Portable Document Format
Description:

License bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
1.82 KB
Format:
Item-specific license agreed upon to submission
Description: