ANÁLISE ESTÁTICA DE ALGORITMOS COM GERAÇÃO DE COMPLEXIDADE ASSINTÓTICA

  • CLAYTON VALDO Faculades Padre Anchieta

Abstract

Este estudo teve como meta validar e evidenciar, na prática, a aplicação da complexidade assintótica por meio da análise estática de algoritmos. Para isso, foi desenvolvida uma ferramenta web interativa que possibilita a geração e visualização da complexidade de diversos algoritmos, tornando esses conceitos teóricos, frequentemente considerados abstratos, mais acessíveis, concretos e passíveis de verificação em um contexto prático. A pesquisa abordou desde os fundamentos da teoria da complexidade algorítmica, passando pela aplicação de heurísticas de identificação de estruturas de controle, até a construção de representações estruturais como Árvores Sintáticas Abstratas (AST) e Grafos de Fluxo de Controle (CFG), que serviram de base para a inferência da complexidade. A partir dessa fundamentação, foi desenvolvido o sistema Big O Analyzer, utilizando tecnologias modernas como Next.js e Monaco Editor, o que permitiu integrar uma interface interativa a um pipeline de análise eficiente e modular. O sistema processa trechos de código escritos em linguagens como JavaScript, Python e Java, identifica padrões como loops, recursões e divisões de problema e retorna a classe de complexidade correspondente, acompanhada de explicações textuais e sugestões de otimização. Os resultados mostraram que a aplicação foi capaz de reconhecer corretamente diferentes classes de complexidade de O(1) a O(n!) demonstrando consistência com os fundamentos teóricos e confirmando a validade da proposta. Além de sua utilidade prática, o projeto apresenta relevância acadêmica ao oferecer uma nova abordagem de ensino para o estudo de algoritmos, unindo interatividade, visualização e formalismo teórico.

References

ADAMKÓ, Attila. Internet Tools and Services: Layered Architecture for Web Applications. [S. l.], 2014. University of Debrecen. Disponível em: https://gyires.inf.unideb.hu/GyBITT/08/index.html. Acesso em: 29 out. 2025.
ALBERT, Elvira; HÄHNLE, Reiner; MERAYO, Alicia; STEINHÖFEL, Dominic. Certified Cost Bounds for Abstract Programs. ACM Transactions on Software Engineering and Methodology, v. 34, n. 3, p. 67:1–67:33, 2025. Disponível em: https://dl.acm.org/doi/10.1145/3705298. Acesso em: 2 out. 2025.
AHO, Alfred V. et al. Compiladores: Princípios, técnicas e ferramentas. 2. ed. [S. l.]: Pearson Education, 2008. Disponível em: https://www.scribd.com/document/706174206/Compiladores-2nd#page=348&content=query%3Agrafo+de+fluxo%2CpageNum%3A348%2CindexOnPage%3A3%2CbestMatch%3Afalse. Acesso em: 19 set. 2025.
BERNERS-LEE, Tim. Information Management: A Proposal. Genebra: CERN, 1989. Disponível em: https://cds.cern.ch/record/369245/files/dd-89-001.pdf. Acesso em: 3 out. 2025.
CORMEN, Thomas H. et al. Algoritmos: Teoria e prática. 3. ed. [S. l.]: MIT Press, 2009.
COUSOT, Patrick; COUSOT, Radhia. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Proceedings of the 4th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’77). New York: ACM, 1977. p. 238–252. Disponível em: https://dl.acm.org/doi/10.1145/512950.512973. Acesso em: 1 out. 2025.
FREE SOFTWARE FOUNDATION. GNU Compiler Collection (GCC) Internals — Control Flow Graph. Disponível em: https://gcc.gnu.org/onlinedocs/gccint/Control-Flow.html. Acesso em: 2 out. 2025.
JETBRAINS. Guia de análise estática de código. [S. l.], 2025. Disponível em: https://www.jetbrains.com/pt-br/pages/static-code-analysis-guide/#why-use-static-code-analysis. Acesso em: 3 out. 2025.
KOSINSKI, Matthew et al. O que é o MapReduce?. In: HOLDSWORTH, Jim et al. O que é o MapReduce? [S. l.], 19 nov. 2024. Disponível em: https://www.ibm.com/br-pt/think/topics/mapreduce. Acesso em: 27 out. 2025.
LLVM PROJECT. LLVM Language Reference Manual. 2018. Disponível em: https://buildmedia.readthedocs.org/media/pdf/llvm/latest/llvm.pdf. Acesso em: 1 out. 2025.
META OPEN SOURCE. React. Disponível em: https://react.dev/. Acesso em: 23 set. 2025.
META OPEN SOURCE. Rules of React. Disponível em: https://react.dev/reference/rules. Acesso em: 23 set. 2025.
MICROSOFT. Monaco Editor. Disponível em: https://microsoft.github.io/monaco-editor/. Acesso em: 24 set. 2025.
NIELSON, Flemming et al. Principles of Program Analysis. [S. l.]: Springer, 1998. Disponível em: https://www.researchgate.net/publication/265352570_Principles_of_Program_Analysis. Acesso em: 28 out. 2025.
ON the reliability of mechanisms. In: DIJKSTRA, Edsger W. NOTES ON STRUCTURED PROGRAMMING. 2. ed. [S. l.]: T.H. - Report 70-WSK-03, 1970. Disponível em: https://www.cs.utexas.edu/~EWD/transcriptions/EWD02xx/EWD249/EWD249.html. Acesso em: 6
set. 2025.
SEDGEWICK, Robert; WAYNE, Kevin. Algorithms: FOURTH EDITION. 4. ed. [S. l.]: Addison-Wesley, 2011. Disponível em: https://mrce.in/ebooks/Algorithms%204th%20Ed.pdf. Acesso em: 19 set. 2025.
SIPSER, Michael. Introduction to the Theory of Computation. 3. ed. [S. l.]: Cengage Learning, 2013. Disponível em: https://cs.brown.edu/courses/csci1810/fall-2023/resources/ch2_readings/Sipser_Introduction.to.the.Theory.of.Computation.3E.pdf. Acesso em: 18 set. 2025.
THE O Notation. In: KNUTH, Donald E. The Art of Computer Programming. 3. ed. [S. l.]: Addison-Wesley Professional, 1997. v. 1, cap. 22, p. 107-110. Disponível em: https://seriouscomputerist.atariverse.com/media/pdf/book/Art%20of%20Computer%20Programming%20-%20Volume%201%20(Fundamental%20Algorithms).pdf. Acesso em: 6 set. 2025.
VERCEL. Getting Started: Route Handlers and Middleware. Disponível em: https://nextjs.org/docs/app/getting-started/route-handlers-and-middleware. Acesso em: 30 set. 2025.
VERCEL. Next.js App Router (Docs). Disponível em: https://nextjs.org/docs/app. Acesso em: 30 set. 2025.
VERCEL. Rendering: Server Components. Disponível em: https://nextjs.org/docs/14/app/building-your-application/rendering/server-components. Acesso em: 30 set. 2025.
WORLD WIDE WEB CONSORTIUM (W3C). HTML5: A vocabulary and associated APIs for HTML and XHTML. W3C Recommendation, 28 out. 2014. Disponível em: https://www.w3.org/TR/2014/REC-html5-20141028/. Acesso em: 3 out. 2025.
Published
2025-12-18
How to Cite
VALDO, C. (2025). ANÁLISE ESTÁTICA DE ALGORITMOS COM GERAÇÃO DE COMPLEXIDADE ASSINTÓTICA. Revista De Ubiquidade, 8(2), 62-81. Retrieved from https://revistas.anchieta.br/index.php/RevistaUbiquidade/article/view/2336
Section
Artigos