Maria João Varanda

Professora-adjunta
Escola Superior de Tecnologia e Gestão
Instituto Politécnico de Bragança

email: mjoao@ipb.pt
Fone: 273 303074
CV (
.ps)


Research Activity

 Language Specification and Processing Group (GEPL)

 Research Subjects

·        Visual Programming Languages

·        Compiler Generators

·        Program Animation

 

Projects

·        Visualization /Animation System: ALMA

·        Program Comprehension by Visual Inspection and Animation (PCVIA)

·        Grammar-based Systems (VODA)

 

Publications

·        Concepção, especificação e implementação de Processadores de Linguagens Visuais, Varanda M. J., Henriques P. e Rocha J., II Simpósio Brasileiro de Linguagens de Programação, 1997.

·        Animação de algoritmos tornada sistemática, Varanda M. J.e Henriques P., Workshop Computação Gráfica, Multimédia e Ensino, Leiria, 1999.

·        Visualização Sistemática de Programas, Varanda M. J. e Henriques P., IV Simpósio Brasileiro de Linguagens de Programação, 2000.

·        Visualization/Animation of Programs based on Abstract Representation and Formal Mappings, Varanda M. J. e Henriques P., IEEE Symposia on Human-Centric Computing Languages and Environments (HCC’01), Stresa, Itália, 2001.

·        Automatic Generation of Language-based Tools, Henriques P., Varanda M. J., Mernik M., Lenic M., LDTA – Workshop on Language Description, Tools and Applications in ETAPS’02, Grenoble, França.( http://www.elsevier.com/locate/entcs/volume65.html)

·        Grammatical Approach to Problem Solving, Henriques P., Kosar T., Mernik M., Varanda M.J., Zumer V., ITI’2003, Croacia.

·        Visualization/Animation of Programs in Alma: obtaining different results, Varanda M. J. e Henriques P., IEEE Symposia on Human-Centric Computing Languages and Environments (HCC’03), Auckland, Nova Zelândia.

·        Software Development with Grammatical Approach, Tomaz Kosar, Marjan Mernik, Pedro Henriques, Maria João Varanda, Viljem Zumer, Informatica Journal, vol 28, pag. 393-404, 2004.

·        Automatic Generation of Language-based Tools using LISA System, Pedro Henriques, Maria João Varanda, Marjan Mernik, Mitja Lenic, Jeff Gray and Hui Wu, IEE Software Journal , pp. 54-70, vol 152, Issue 2 April 2005.

·        Executable Graphics for PBNM, Rui Lopes, Nuno Raimundo, Maria João Varanda, José Oliveira e Victor Roque, The 5th IEEE International Workshop on IP Operations&Management, October 26-28, 2005, Barcelona, Espanha.

·        Compreensão de Aplicações Web: o processo e as ferramentas, 6ªConferência da APSI (CAPSI), 26 a 28 de Outubro, Estig Bragança.

·        AspectLISA: na aspect-oriented compiler construction system based on attribute grammars, LDTA’06, Workshop on Language Descriptions, Tools and Applications (ETAPS’06), Viena, Áustria.

·        AspectLISA: an aspect-oriented compiler construction system based on attribute grammars, Damijan Rebernak, Marjan Mernik, Pedro Rangel Henriques, Maria João Varanda Pereira, Electronic Notes inTheoretical Computer Science, 2006.

·        Herramientas para la compresión de programas, Pedro Henriques, Mário Béron, Maria João Varanda, Roberto Uzal, VIII Workshop de Investigadores en Ciencias de la Computacón, 2006, Universidade de Morón, Argentina.

·        Specifying Languages using Aspect-oriented Approach: AspectLISA, Damijan Rebernak, Marjan Mernik, Pedro Rangel Henriques, Maria João Varanda Pereira, Daniela Cruz, 28th International Conference Information Technology Interfaces, 2006, Dubrovnik, Croácia

·        Henriques P., Béron M., Varanda M.J., Uzal R., Comprensión de Algoritmos de Ruteo, XXXII Conferencia Latinoamericana de Informática (CLEI 2006), Santiago de Chile.

·        Béron M., Henriques P., Varanda M.J., Uzal R., Montejano G., A Language Processing Tool for Program Comprehension , CACIC'06 - XII Argentine Congress on Computer Science, Universidad Nacional de San Luis, Argentina.

·        Béron M., Henriques P., Varanda M.J., A System for Evaluate and Understand Routing Algorithms, Interacção'06, Universidade do Minho.

·        Rebernak D., Mernik M., Henriques P., Varanda M.J., AspectLISA: an aspect-oriented compiler construction system based on attribute grammars, Electronic Notes in Theoretical Computer Science, Pages 37-53, Volume 164, Issue 2, (24 October 2006).

·        Damijan Rebernak, Marjan Mernik, Pedro Rangel Henriques, Daniela da Cruz and Maria Joao Varanda Pereira, Specifying Languages Using Aspect-oriented Approach: AspectLISA, Journal of Computing and Information Technology, Pages (343-350), Volume 14, Number 4 (December, 2006).

·        Eva Oliveira, Pedro Henriques, Maria João Varanda, Proposta de um Sistema para Compreensão de Aplicações Web, Conferência da Associação Portuguesa de Sistemas de Informação 2006, Janeiro 2007, Aveiro, Portugal.

 

 

 

 

Teaching activity  (in Portuguese)




Visual Programming Languages

Conferences

Papers

 

The VL/HCC bibliography has become a widely-used resource for people seeking research in visual languages, visual programming, visual software engineering, human use of programming languages and tools, and so on.  In maintaining this resource, the conference Steering Committee would like to keep the VL/HCC bibliography a complete resource for all full papers published in the VL/HCC conference series.

        http://www.cs.orst.edu/~burnett/vpl.html


In that site, papers on Software Visualization are classified according to Margaret Burnett´s criteria based on the following parameters:  Technique (interaction with the user, output generation); Applications; Performance; and Visualization Domains (kind of drawings, kind of visualizations and kind of source language).

 

Visual Languages

Visual Programming Tools

More information here.



Compiler Generators

Compiler Generators

Compiler/Interpreter Generators



Program Animation

Introduction

Algorithm Animation is a dynamic visualization of the main abstractions of an algorithm underlying a program. The animation is used to represent behaviour. An Animation System  is a tool to construct animations using some interaction with the user. That system will receive (textual) programs as input, and perhaps some parameter values and produces some kind of visual simulation (animation) of the program execution.

 

Definitions

·        An Algorithm Animation is a dynamic visualization of the main abstractions of that algorithm.

 

·        The Animation is a natural way to represent behaviour and its purpose is to show the concepts involved in a program and how they evolve during execution.

 

·        The Software Visualization (construction of visual representations) intends to turn programs easier to understand.

·        Program Visualization belongs to a lower level of abstraction and Algorithm Visualization is at a higher level of abstraction.

·        The Visual Programming is a new way to write programs which turns this task easier to perform.

 

Methodological Classification (Tools from an user point of view)

Five classes of algorithm animation tools have been defined.

TYPE 0 – Systems for Animation Programming (Examples)
These systems allow the construction of animations based on predefined objects. In some cases the animation can be programmed on a visual manner.

TYPE I and TYPE II – Specific Animations (Examples)
Animations that have already been constructed for specific algorithms. While animations of TYPE II allow some interaction with the user, those of TYPE I do not.

TYPE III – Specific Language Algorithm Animation Tools(Examples)
These systems generate animations for programs written in a specific language.

TYPE IV – Generic Algorithm Animation Tools (Examples)

These systems allow the construction of animations for programs written in different languages.

 Programming Environment Generator Tools based on Attribute Grammars (Examples)
 

Approaches

  1. Annotated algorithms

The very first animation systems used an approach based on a full annotation of the algorithms with animation procedure calls.
Some examples are:
BALSA, ANIMUS, ALADDIN, TANGO.
 

2.  Path-Transition Paradigm

On this paradigm the animation is programmed describing all the steps of an image metamorphosis.
Some visual languages that use this paradigm:
FORMS3, HANDMOVE.
The system TANGO is also based on this paradigm.
 

3. Self-animated Data Types

The animation programming is based on self-animated data types. The source code is precompiled and those types are replaced by animation procedure calls.

An example:
JELIOT
 

     4. Animation Specific Language

The user must write his algorithms on a specific programming language because the animation system only works with that language.
Some examples are:
VIP, JCAT, ZSTEP.
 

     5. Declarative Visualization

The designer constructs visual representations of programs defining abstract mathematical mappings from program states to graphical objects. This approach is used on: PAVANE, PROVIDE, ALADDIN e ANIMUS.

     6. Visualization Construction on a bottom-up process

The animation construction is based on the syntax tree where each node has an associated figure. On a bottom-up process those figures are collected in order to construct an image of the animation.
For more details
 

     7. Program Semantics Annotation

The idea is to formalize the program semantics in order to annotate it with animation procedure calls.
An example:
CENTAUR.
 


Animation Programming Systems (Type 0)



Animation Examples (Types I e II)

·        Miscellaneous Algorithm Animation    

http://www.cs.hope.edu/~alganim/ccaa/site.html
http://www.cs.rug.nl/~rudy/modula-3/animation.html

·        Sort Algorithm Animation  

http://gaigs.cmsc.lawrence.edu/cmsc34/AVClient.html
http://ls4-www.informatik.uni-dortmund.de/QM/MA/misch/applets/AlgorithmAnimation.2/sorts.html

·        C Algorithm Animation  in Java

http://www.cm.cf.ac.uk/Dave/C/ANIM/anim.html

·        Graph Algorithm Animation  

http://www.dis.uniroma1.it/~demetres/Leonardo/AnimationGallery/AnimationGallery.html

·        Java Program Animation

http://www.cs.duke.edu/~wcp/JAWAA.html

·        Data Structures Algorithm Animation

http://www.cgc.cs.jhu.edu/~goodrich/dsa/applets/index.html

·        Mathematic Algorithm Animation

http://ls4-www.informatik.uni-dortmund.de/QM/MA/misch/applets/AlgorithmAnimation.2/GrahamScan.html           http://www.csc.fi/math_topics/Movies/



Specific Animation Systems (Type III)
  I included here some programming environments that produce some visualizations.


Generic Program Animation Systems (Type IV)

·        ALMA



Programming Environments/Compilers/Interpreters Generators