A graph grammar-based syntax for a visual functional language aimed at programming learning

Abstract


Imperative-based programming languages tend to emphasize syntactic aspects to the detriment of the problem-solving process. This work presents the syntax of the functional visual language Pandora, built from a graph grammar equipped with an algebra, whose rules emphasize the construction of a program with an emphasis on specification composition and reuse.

Keywords: Programming languages, Visual programming languages, Algorithms teaching, Computing education

References

Almeida, U. (2018). Learn Functional Programming with Elixir – New Foundations for a New World. The Pragmatic Bookshelf.

Ehrig, H., Heckel, R., Korff, M., Löwe, M., Ribeiro, L., Wagner, A., e Corradini, A. (1996a). Algebraic approaches to graph transformation. Part II: single-pushout approach and comparison with double pushout approach. In Ehrig, H., Kreowski, H.-J., Montanari, U., e Rozemberg, G., editors, Handbook of Graph Grammars and Computing by Graph Transformation, volume 1, chapter 4, pages 247–312. World Scientific, Singapore.

Ehrig, H., Kreowski, H.-J., Montanari, U., e Rozemberg, G. (1996b). Handbook of Graph Grammars and Computing by Graph Transformation, volume 1. World Scientific, Singapore.

Feijó, P. G. e De la Rosa, F. (2016). Roblock: Programming learning with mobile robotics. In Proceedings of the ITiCSE ’16, page 361, New York, NY, USA. Association for Computing Machinery.

Ferreira, A. P. L. e Ribeiro, L. (2003). Towards object-oriented graphs and grammars. In Najm, E., Nestmann, U., e Stevens, P., editors, International Conference on Formal Methods for Open Object-Based Distributed Systems, FMOODS, volume 2884 of Lecture Notes in Computer Science, pages 16–31, Paris. Berlin: Springer-Verlag.

Gomes, A. e Mendes, A. J. (2007). Learning to program - difficulties and solutions. In International Conference on Engineering Education (ICEE 2007).

Keene, S. E. (1989). Object-Oriented Programming in Common Lisp. Addison-Wesley.

Lewis, H. R. e Papadimitriou, C. H. (1998). Elements of the Theory of Computation. Prentice Hall, Upper Saddle River, 2nd edition.

Odersky, M., Spoon, L., e Venners, B. (2008). Programming in Scala. Artima, 4th edition.

Pimenta, J. M. M. (2019). Temple - uma linguagem de programação para o ensino de programação. Mestrado, Universidade de Évora, Évora, Portugal.

Pressman, R. S. (2016). Engenharia de Software: Uma abordagem profissional. Bookman, Porto Alegre, 8ª edição.

Resnick, M., Maloney, J. H., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, K. A., Millner, A., Rosenbaum, E., Silver, J. S., Silverman, B. S., e Kafai, Y. B. (2009). Scratch: programming for all. In Communications of the ACM.

Sebesta, R. W. (2018). Conceitos de linguagens de programação. Bookman, Porto Alegre, 11ª edição.

Silva, M. (2021). Proposta de uma linguagem composicional visual para ensino de programação. Trabalho de Conclusão de Curso (Graduação), Universidade Federal do Pampa.

Souza, S. S. e Castro, T. H. C. (2016). Investigação em programação com scratch para crianças: uma revisão sistemática da literatura. In Anais dos Workshops do V Congresso Brasileiro de Informática na Educação (CBIE 2016).

Thompson, S. (1999). Haskell: The Craft of Functional Programming. Addison-Wesley, 2nd edition.

Touretzky, D. S. (1990). COMMON LISP: A Gentle Introduction to Symbolic Computation. The Benjamin/Cummings Publishing Company, Inc., Redwood City.

Watanabe, T., Nakayama, Y., Harada, Y., e Kuno, Y. (2020). Analyzing Viscuit programs crafted by kindergarten children. In Proceedings of the ICER ’20, page 238–247, New York, NY, USA. Association for Computing Machinery.
Published
2021-11-17
SILVA, Marina; FERREIRA, Ana Paula Lüdtke. A graph grammar-based syntax for a visual functional language aimed at programming learning. In: WORKSHOP-SCHOOL ON THEORETICAL COMPUTER SCIENCE (WEIT), 6. , 2021, Online. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2021 . p. 120-127. DOI: https://doi.org/10.5753/weit.2021.18931.