1 / 16

Animador e Editor para a Linguagem Funcional 2

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?

Download Presentation

Animador e Editor para a Linguagem Funcional 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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

  3. 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

  4. 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!)

  5. O Editor Editor Permite a edição dos programas Palavras-Chave Destaca as palavras-chave à medida que o programa é digitado Sintaxe Verifica a sintaxe à medida que o programa é digitado Animar Chama o Animador PLP

  6. O Animador Código Fonte Exibe código fonte do programa com destaque para a expressão que está sendo avaliada Passos Permite percorrer a execução do programapasso-a-passo Ambiente de Execução Mostra a pilha de bindings do ambiente Avaliação de Expressões Exibe o resultado da avaliação da expressão atual

  7. 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/

  8. 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

  9. 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

  10. 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!)

  11. 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

  12. Animador Passo Ambiente Contexto Estrutura do Animador • Animador • void terminarAvaliacao(Expressao, Valor) • void inserirBinding(Id, Valor) • void incrementarContexto() • void restaurarContexto() • List<Passo> getPassos() * * * Binding

  13. Animador Passo Ambiente Contexto Estrutura do Animador • Passo • Ambiente ambiente; • String avaliacao; • String codigo; • String valor; * * * Binding

  14. 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

  15. 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

  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

More Related