Analysis of Compiler Tools in Virtualized Environments

Authors

DOI:

https://doi.org/10.5753/rbie.2021.2302

Keywords:

Compilers, Parsers, Tools, Education

Abstract

The use of teaching tools has become an alternative to complement the learning of school content. This paper provides some overview aspects of Compilation and performance analysis of the computational tools GALS, Grammophone, The Context Grammar Free Checker, Verto, and Parsing Simulator that were developed to support the compilation process and aim at assisting the learning in Compilers course. There are several known tools, but only a few were built for academic purposes and will be presented in this paper, as they were tested by students in the Compilers course in the Undergraduate course and also int the Master’s course in Computer Science at a Brazilian Public University in Paraná to analyze hypotheses, to help verifying parsing examples and to exchange experiences about these Compiler tools. It was observed that the lexical and mainly syntactic analysis phases become more didactic and attractive to the students, making it easier to understand their functionalities and implementation of a compiler as a whole. GALS has shown to be a good option with a simple interface, working with lexical and syntactic analysis for more than one language (Java, C++ and Delphi). Studies of Context Free Grammars in LL(1), LR(0) and LR(1) format may be favored not only with GALS, but also with the tools Grammophone and The Context Grammar Free Checker. Verto, on the other hand, works didactically, not only on the lexical and syntactic analysis steps (the latter also with LR(1) Parser), but also on code generation. Parsing Simulator proved to be an intuitive tool and also presents an extensive collection of syntactic analysis options showing the step by step LL(1) and LR(K) analysis tables, promoting teaching-learning in Compilers.

Downloads

Download data is not yet available.

References

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]

Published

2021-11-01

How to Cite

BARBOSA, C. R. S. C. de; FARIA, C. R. e; CAMPANO JUNIOR, M. M. Analysis of Compiler Tools in Virtualized Environments. Brazilian Journal of Computers in Education, [S. l.], v. 29, p. 1262–1290, 2021. DOI: 10.5753/rbie.2021.2302. Disponível em: https://journals-sol.sbc.org.br/index.php/rbie/article/view/2302. Acesso em: 16 sep. 2024.

Issue

Section

Articles