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
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,
·
Compreensão de Aplicações Web: o processo e as
ferramentas, 6ªConferência da APSI (CAPSI),
·
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
· 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/Interpreter
Generators
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.
·
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.
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
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