16
Animador e Editor para a Linguagem Funcional 2 Carlos Eduardo Lima Lucas Roberto Bechert Schmitz Leonardo Reis Lucena Centro de Informática – UFPE, 2005

Animador e Editor para a Linguagem Funcional 2

Embed Size (px)

DESCRIPTION

Animador e Editor para a Linguagem Funcional 2. Carlos Eduardo Lima Lucas Roberto Bechert Schmitz Leonardo Reis Lucena Centro de Informática – UFPE, 2005. Roteiro. Motivação Proposta O que visualizar? Estratégia Metas(Requisitos) de Implementação Como Implementar? - PowerPoint PPT Presentation

Citation preview

Page 1: Animador e Editor para a Linguagem Funcional 2

Animador e Editor para a Linguagem

Funcional 2Carlos Eduardo Lima

Lucas Roberto Bechert Schmitz Leonardo Reis Lucena

Centro de Informática – UFPE, 2005

Page 2: Animador e Editor para a Linguagem Funcional 2

Roteiro Motivação Proposta O que visualizar? Estratégia Metas(Requisitos) de Implementação Como Implementar? Estrutura do Animador Adaptando a LF2 para o Animador Executando um programa Trabalhos Futuros

Page 3: Animador e Editor para a Linguagem Funcional 2

Motivação Melhorar a apresentação da execução dos

programas da disciplina de PLP (Poupar o professor de ter que desenhar os

ambientes de execução)

Ter um editor que reconheça a sintaxe das linguagens e faça o parsing automático

Auxiliar a implementação dos projetos da disciplina

Page 4: Animador e Editor para a Linguagem Funcional 2

Proposta Desenvolver um Animador Web que

execute “passo-a-passo” programas da Linguagem Funcional 2, mostrando o que ocorre com o ambiente durante a execução. (melhorado!)

Desenvolver um Editor Web para as Linguagens de PLP (novo!)

Page 5: Animador e Editor para a Linguagem Funcional 2

O Editor

EditorPermite a edição dos programas

Palavras-ChaveDestaca as palavras-chave à medida que o programa é digitado

SintaxeVerifica a sintaxe à medida que o programa é digitado

AnimarChama o

Animador PLP

Page 6: Animador e Editor para a Linguagem Funcional 2

O Animador

Ambiente de ExecuçãoMostra a pilha de bindings do ambiente

Avaliação de Expressões

Exibe o resultado da avaliação da expressão atual

PassosPermite percorrer

a execução do programa

passo-a-passo

Código FonteExibe código fonte do programa com

destaque para a expressão que está

sendo avaliada

Page 7: Animador e Editor para a Linguagem Funcional 2

Animação / Visualização de Programas Exemplos de Softwares que animam /

visualizam programas:

Eliot - Anima algoritmos http://www.cs.helsinki.fi/research/aaps/Eliot/

Jeliot – Anima Programas Java http://cs.joensuu.fi/jeliot/

Page 8: Animador e Editor para a Linguagem Funcional 2

O que visualizar A avaliação do programa A avaliação das expressões que compõem

o programa O ambiente de Execução Os bindings

Page 9: Animador e Editor para a Linguagem Funcional 2

Metas(Requisitos) de Implementação Quanto menos alterar a implementação da

linguagem melhor

Facilidade de adaptar o animador a novas extensões da Linguagem Funcional 2

Terminar o projeto em 2 semanas

Page 10: Animador e Editor para a Linguagem Funcional 2

Como Implementar? Opções

Usando o padrão de projeto Visitor Usando Reflection Usando Java Debug Interface (JDI) Usando Aspectos (novo!) Inserindo o código do animador dentro da

linguagem A linguagem informa ao animador o que está

fazendo. (antes era assim!)

Page 11: Animador e Editor para a Linguagem Funcional 2

Estratégia Dividir a execução em passos Um passo é gerado sempre que ocorrer

A avaliação de uma expressão O incremento do ambiente A restauração do ambiente A introdução de um binding

Usar Aspectos para perceber estes eventos

Page 12: Animador e Editor para a Linguagem Funcional 2

Estrutura do Animador Animador

void terminarAvaliacao(Expressao, Valor)

void inserirBinding(Id, Valor)

void incrementarContexto()

void restaurarContexto()

List<Passo> getPassos()

Binding

Animador

Passo

Ambiente

Contexto

*

*

*

Page 13: Animador e Editor para a Linguagem Funcional 2

Estrutura do Animador Passo

Ambiente ambiente;

String avaliacao;

String codigo;

String valor;

Binding

Animador

Passo

Ambiente

Contexto

*

*

*

Page 14: Animador e Editor para a Linguagem Funcional 2

Como era ... O Animador estava incorporado à classe

AmbienteExecucao Os métodos avaliar(...) de cada expressão

chamavam o método terminarAvaliacao(...) do animador para informar que uma expressão foi avaliada

O ambiente de execução informava ao animador quando o novo contexto era criado ou removido e quando um binding inserido inserido

Page 15: Animador e Editor para a Linguagem Funcional 2

Trabalhos Futuros Melhorar a visualização Incluir as extensões das outras equipes Transformar o animador em um plugin do

eclipse (Sugestão de Eduardo Tavares) Estender o animador para as linguagens

Imperativa e Orientada a Objetos

Page 16: Animador e Editor para a Linguagem Funcional 2

Animador e Editor para a Linguagem

Funcional 2Carlos Eduardo Lima

Lucas Roberto Bechert Schmitz Leonardo Reis Lucena

Centro de Informática – UFPE, 2005