More about Alma

In contrast to the most common animators, we are looking forward to building a more generic system, in the sense that it can animate any algorithm and that it can be easily adapted to work with different programming languages.

To go on that direction, it is essencial to find out a set of program patterns that we know how to deal with (display and rewrite). This is, we need to discover the information, common to a set of programming languages, that describes the structure and semantics of the program, and that we know how to store and to display (we intend to create a set of rules to systematically visualize those patterns).

An analysis of the programming languages, belonging to the universe we want to deal with, allow us to state that all of them have in common entities, like: literal values and variables (atomic or structured), assignments, loops and conditional statements, write/read statements, functions/~ procedures.

Identified the common entities, we must find a way to describe them at an abstract level, in order to establish a generic set of rules to handle them in a language independent way. The solution is a set of elementary programming patterns.

These patterns capture the abstract syntax of each entity (value or operation) to preserve and keep, via attributes, the necessary information to express its static semantics.

You can consult the list of this patterns here.