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

Slides:



Advertisements
Apresentações semelhantes
Estruturas de Repetição
Advertisements

Capítulo 1 Introdução.
Programa de Pós-Graduação em Sistemas e Computação – DIMAp Disciplina de Tópicos Avançados em Engenharia de Software II – Geração de Casos de Teste.
Sistema para Criação e Testes de Modelos Formais
O Essencial sobre Linguagens de Programação Luís Caires Maio 2005.
Design Patterns Interpreter
Sistema Web para Departamentos
Animador para a Linguagem Funcional 2 Carlos Eduardo Lima Lucas Roberto Bechert Schmitz Leonardo Lucena.
FACENS – Engenharia da Computação Lógica Computacional II
INTRODUÇÃO À PROGRAMAÇÃO
PROGRAMAÇÃO ORIENTADA A ASPECTOS EM JAVA Introdução a conceitos teóricos e práticos Adriano G. do Prado José Eduardo M. Lemos José Fernando da S. Cruz.

Algoritmos e Programação
Uma visão geral Grupo: Alexandre Henrique Vieira Soares
JAVA: Conceitos Iniciais
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
Desenvolvimento de Jogos e Entretenimento Digital
Aula prática - análise contextual
JAVA Linguagem Ambiente de Desenvolvimento
Desenvolvimento de Sistemas Orientados a Aspectos
Desenvolvimento de Sistemas Orientados a Aspectos
Programação de SCRIPTS
Linguagem de Programação JAVA
Estudo dos Conceitos e Paradigmas de Programação
DI UFPE Semântica de Java Java and the Java Virtual Machine - Definition, Verification, Validation Robert Stark, Joachim Schmid, and Egon Borger Wolfram.
Semântica de Linguagens de Programação
CoWS: Uma Abordagem de Escrita Colaborativa Multi-Síncrona usando Espaços de Tuplas para Ambientes Móveis Berthonio Lucena Flávio Rocha.
Augusto Sampaio e Paulo Borba Centro de Informática
Equipe: Fernando Calheiros Flavia Leite Eduardo Wagner
Concorrência e Java RMI
Linguagem de Programação JAVA
Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz
Professor: Márcio Amador
Orientação a Objetos e Java Graduação em Ciência da Computação
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
PROGRAMAÇÃO ORIENTADA A OBJETO - JAVA
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Membro Static.
Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Orientação a Objetos: herança Professor: Sandro Rigo.
JSP e Servlets ISEP – LP2 Filipe Costa – /2004.
Melhorias e Mensagens Amigáveis ao Usuário Centro de Informática Universidade Federal de Pernambuco Bruno Felipe Marco André Paulo Fernando Rodolfo Santos.
Acabias Marques Luiz. I - Introdução ao Ruby Parte 1 – Introdução a linguagem  O que é Ruby  Instalação  O IRB  Operadores Aritméticos  Tipos de.
Diagrama de Componentes
Utilizando UML e Padrões Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Março de 2010.
Mas para que serve um analisador sintático? Verificar se a estrutura gramatical do programa está correta Escrito de outra forma: O texto segue as regras.
VBA - Introdução Pontifícia Universidade Católica de Goiás
Linguagens de Programação Introdução Prof. Renato Melo.
Utilizando UML e Padrões Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Março de 2010.
1 Reestruturação das Linguagens da Disciplina “Paradigmas de Linguagens de Programação” para Java 1.5 Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt)
1 Reestruturação das Linguagens da Disciplina “Paradigmas de Linguagens de Programação” para Java 1.5 Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt)
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Introdução a Programação Orientada a Objetos
Java Disciplina: Programação II Professora: Mai-Ly Vanessa.
1 Baseado em whitepapers/eclipse-overview.pdf Nelson Lago IME/USP 04/2003 A Plataforma Eclipse.
1 III Workshop InteGrade InteGrade IDE – Um Ambiente Integrado de Desenvolvimento para o InteGrade Eduardo Leal Guerra Orientador: Prof.
JavaCC.
SISTEMAS DE INFORMAÇÃO
PLP – JavaCC Java Compiler Compiler
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Padrão Visitor Paulo Mauricio Gonçalves Jr Rodrigo Teixeira Ramos Paradigmas de Linguagens de Programação Prof. Augusto Sampaio Julho de 2003.
Engenharia de Requisitos Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Agosto de 2012.
OCLE Object Constraint Language Environment Fábio Moura CIn-UFPE.
Array e ArrayList LPOO – 01/09/14.
Desenvolvimento WEB II Ajax – Utilização de Frameworks Javascript Professora: Kelly de Paula Cunha.
Nome do aluno Nome do professor orientador
/ de Julho de UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados.
Raniere ferreira do prado
Análise Contextual Mauro Araújo Teoria e Implementação de Linguagens Computacionais - IF688 Centro de Informática – CIn Universidade Federal de Pernambuco.
1. 2 Prof. Maurício Rodrigues de Morais Programação Orientada a Objetos II.
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Atividades Realizadas
Transcrição da apresentação:

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?  Estrutura do Animador  Adaptando a LF2 para o Animador  Executando um programa  Trabalhos Futuros

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

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

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

O Animador 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 Passos Permite percorrer a execução do programa passo-a-passo Código Fonte Exibe código fonte do programa com destaque para a expressão que está sendo avaliada

Animação / Visualização de Programas  Exemplos de Softwares que animam / visualizam programas: Eliot - Anima algoritmos  Jeliot – Anima Programas Java 

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

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

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

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

Estrutura do Animador  Animador void terminarAvaliacao(Expressao, Valor) void inserirBinding(Id, Valor) void incrementarContexto() void restaurarContexto() List getPassos() Binding AnimadorPassoAmbienteContexto * * *

Estrutura do Animador  Passo Ambiente ambiente; String avaliacao; String codigo; String valor; Binding AnimadorPassoAmbienteContexto * * *

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

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

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