Análise de Ferramentas de Compiladores em Ambientes Virtualizados
DOI:
https://doi.org/10.5753/rbie.2021.2302Keywords:
Compiladores, Parsers, Ferramentas, EducaçãoAbstract
O uso de ferramentas de ensino tornou-se uma alternativa para complementar a aprendizagem do conteúdo escolar. Este artigo faz uma panorâmica de aspectos da Compilação e análise de desempenho das ferramentas computacionais GALS, Grammophone, The Context Grammar Free Checker, Verto e Parsing Simulator que foram desenvolvidas para suporte ao processo de compilação e têm como objetivo o apoio ao aprendizado da disciplina de Compiladores. Há várias ferramentas conhecidas, porém só algumas foram construídas para fins acadêmicos e serão apresentadas neste trabalho, bem como foram testadas com alunos na disciplina de Compiladores do curso de Graduação e também no Mestrado em Ciência da Computação de uma Universidade Pública Brasileira no Paraná para analisar hipóteses, auxiliar na verificação de exemplos de parsing e trocar experiências sobre essas ferramentas de Compilação. As fases de análise léxica e principalmente sintática tornaram-se mais didáticas e atraentes aos alunos, ficando fácil de entender suas funcionalidades e implementação de um compilador como um todo. GALS se mostrou ser uma boa opção com uma simples interface, trabalhando análise léxica e sintática para mais de uma linguagem (Java, C++ e Delphi). Estudos de Gramáticas Livres de Contexto no formato LL(1), LR(0) e LR(1) podem ser favorecidos não só com GALS, mas também com as ferramentas Grammophone e The Context Grammar Free Checker. Já o Verto trabalha de forma didática não só as etapas de análise léxica e sintática (essa também com Parser LR(1)), mas também a geração de códigos. Parsing Simulator se mostrou uma ferramenta intuitiva e também apresenta um acervo extenso de opções de análise sintática exibindo o passo a passo das tabelas de análise LL(1) e LR(K) promovendo o ensino-aprendizagem em Compiladores.
Downloads
Referências
Aho, A. V., & Ullman, J. D. (1986). Compilers Principles, Techniques and Tools (1a ed). Massachussets: Addison-Wesley Reading. [GS Search]
Aho, A. V., & Ullman, J. D. (1972). The Theory of Parsing, Translations, and Compiling. Volume I: Parsing. Englewood Clifes: Prentice-Halls. [GS Search]
Aho, A. V., Sethi, R., & Ullman, J. D. (1995). Compiladores: princípios, técnicas e ferramentas, Rio de Janeiro: LTC. [GS Search]
Aho, A. V., Lam, M., Sethi, R., & Ullman, J. D. (2007). Compilers: principles, techniques, and tools (2a ed.). Massachusets: Addison-Wesley Reading. [GS Search]
Alkmim, G. P., & Mello, B. A. (2010) Ferramenta de apoio às fases iniciais do ensino de linguagens formais e compiladores. Anais do Simpósio Brasileiro de Informática na Educação, 21 (pp. 1-4), João Pessoa. [GS Search]
Backus, J. W., Beeber, R. J., Best, S., Goldberg, R., Haibt, L. M., Herrick, H. L., Nelson, R. A., Sayre, D., Sheridan, P. B., Stern, H., Ziller, I., Hughes, R. A., & Nutt, R. (1957). The FORTRAN automatic coding system. February. In Proceedings Western Joint Computer Conference, 57 (pp. 188-198), New York. doi: 10.1145/1455567.1455599 [GS Search]
Barbosa, C. R. S. C., Bonidia, R. P., & Coelho Neto, J. (2019). Flex, JFlex e GALS: Ferramentas de Apoio ao Ensino de Compiladores. Anais do Workshop sobre Educação em Computação, 27 (pp. 176-187), Belém. doi: 10.5753/wei.2019.6628 [GS Search]
Barbosa, M. R. G., Silva, F. A., Oliveira, V. M. A., Feltrim, V. D., Mirisola, L. G. B., Gonçalves, P. C., Ramos, J. J. G., & Alves, L. T. (2009). Implementação de compilador e ambiente de programação icônica para a linguagem logo em um ambiente de robótica pedagogicidade baixo custo. Anais do Simpósio Brasileiro de Informática na Educação, 20 (pp. 1–10), Florianópolis. [GS Search]
Bonaffini, H. (2004). Parsing Simulator Versão 1.0. Recuperado de http://www.supereasyfree.com/software/simulators/compilers/principles-techniques-and-tools/parsing-simulator/parsing-simulator.php/
Brito Junior, O., & Aguiar, Y. P. C. (2018). Taxonomia de Critérios para Avaliação de Software Educativo-TaCASE. Anais do Simpósio Brasileiro de Informática na Educação, 29 (pp. 298-307), Fortaleza. doi: [GS Search]
Castro Junior, M. E., & Ferreira, E. T. (2016). Uma ferramenta para auxílio didático em compiladores. Anais da Jornada de Ensino, Pesquisa e Extensão, 16, Cuiabá. [GS Search]
Cooper, K., & Torczon, L. (2011). Engineering a compiler. Elsevier. [GS Search]
Costa, K. A. P., Silva, L. A., & Brito, T. P. (2008). Auxílio no ensino em compiladores: software simulador como ferramenta de apoio na área de compiladores. Anais do Simpósio Internacional de Educação Linguagens Educativas, 2, Bauru. [GS Search]
Crespo, R. G. (1998). Processadores de Linguagens: da concepção à implementação. Lisboa: Instituto Superior Técnica. [GS Search]
GALS (2019). Gals home page. Recuperado de http://gals.sourceforge.net/
Gesser, C. E. (2003). GALS-Gerador de analisadores Léxicos e Sintáticos. Florianópolis: Departamento de Informática e Estatística da UFSC. Trabalho de Conclusão de Curso. 150p. [GS Search]
Grammophone (2019). Grammophone page. Recuperado de http://mdaines.github.io/grammophone/
Hiebert, D. (2003). Protótipo de um compilador para a linguagem PL-SQL. Blumenau: Centro de Ciências Exatas e Naturais da FURB. Trabalho de Conclusão de Curso. 52p. [GS Search]
Huwe, G. F., & Konzen, A. A. (2018). Proposta de Ferramenta de Apoio ao Ensino na Disciplina de Compiladores. Anais do Salão de Ensino e de Extensão: Inovação na Aprendizagem, 8. p.260. Recuperado de https://online.unisc.br/acadnet/anais/index.php/salao_ensino_extensao/article/view/18711
Jargas, A. M. (2012). Expressões Regulares: uma abordagem divertida. São Paulo: Novatec. [GS Search]
José Neto, J. (2016). Introdução à Compilação. Rio de Janeiro, Elsevier. [GS Search]
Kowaltowski, T. (1983). Implementação de Linguagens de Programação. Rio de Janeiro: Guanabara Dois. [GS Search]
Leite, V. M., Barbosa, C. R. S. C., Senefonte, H. C. M., & Coelho Neto, J. (2013). Uma seleção de compiladores educativos: características e aplicações. Anais do Encontro Regional de Computação e Sistemas de Informação, 10 (pp. 1-4), Manaus. [GS Search]
Louden, K. C. (2004). Compiladores: princípios e práticas. São Paulo: Cengage Learning. [GS Search]
Marangon, J. D. (2017). Compiladores para humanos. Recuperado de https://johnidm.gitbooks.io/compiladores-para-humanos/content
Martins, J. P. (1994). Introdução à Programação usando o Pascal. Lisboa: McGraw-Hill Portugal. [GS Search]
Medeiros, R. F. (2018). Um estudo sobre a eficiência dos compiladores da linguagem Go com o auxílio de algoritmos genéticos. João Pessoa: Programa de Pós Graduação em Informática da UFPA. 72p. [GS Search]
Oliveira, R. F., Zamberlan, A. O., Schneider, C. S., & Glaser, T. (2007). Compilador Educativo Verto: Ferramenta de Auxílio ao Aprendizado da Programação da Linguagem de Máquina CESAR. Anais do Workshop de Ambientes de apoio à Aprendizagem de Algoritmos e Programação, 1, São Paulo. [GS Search]
Rangel Neto, J. L. M. (2010). Compiladores. Recuperado de http://www.facom.ufms.br/~ricardo/Courses/CompilerI-2009/Materials/
Ricarte, I. (2008). Introdução à compilação. Rio de Janeiro: Elsevier. [GS Search]
Sant’Anna, I. M. (1995). Por que avaliar? Como avaliar? Critérios e instrumentos. Petrópolis: Vozes. [GS Search]
Santos, P. R., & Langlois, T. (2018). Compiladores: da teoria à prática. Rio de Janeiro: LTC. [GS Search]
Schneider, C. S., Passerino, L. M., & Oliveira, R. F. (2005). Compiladores Educativo Verto: ambiente para aprendizagem de compiladores. Revista Novas Tecnologias na Educação, 3, 1-10. doi: 10.22456/1679-1916.13949 [GS Search]
Setzer, V. W., & Melo, I. S. H. (1988). A Construção de um Compilador. Rio de Janeiro: Campus. [GS Search]
Siqueira, R. N., & Rocha, S. V. (2019). ARSimples: uma ferramenta de auxílio ao ensino da Álgebra Relacional usando GALS, Emscripten e WebAssembly. Anais da Escola Regional de Computação do Ceará, Maranhão e Piauí. 7 (pp.71-78), São Luís. [GS Search]
Arquivos adicionais
Published
Como Citar
Issue
Section
Licença
Copyright (c) 2021 Cinthyan Renata Sachs C. de Barbosa, Carolinne Roque e Faria, Maurílio M. Campano Junior
Este trabalho está licenciado sob uma licença Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.