Bipide - Apresentacao TCC II
description
Transcript of Bipide - Apresentacao TCC II
Bipide
Ambiente de Desenvolvimento Integrado para
a Arquitetura dos Processadores BIP
por
Paulo Viníccius Vieira
Orientador: Prof. Dr. André Luis Alice RaabeCo-orientador: Prof. Dr. Cesar Albenes Zeferino
Itajaí, julho de 2009
2
Sumário da apresentação
Introdução
Fundamentação Teórica
Desenvolvimento Projeto
Implementação
Tecnologias utilizadas
Verificação e Avaliação
Considerações finais
3
Introdução
Contextualização e motivação
Alunos costumam apresentar dificuldades na aprendizagem de Algoritmos e Programação
Alto nível de abstração apresentado nos conceitos de programação
4
Introdução
Contextualização e motivação
As disciplinas de Arquitetura e Organização de Computadores fornecem subsídios para compreensão da lógica de programação
Permitem estabelecer relações dos conceitos de programação com aspectos concretos do hardware
variáveis atribuições operações aritméticas laços de repetição
5
Introdução
BIP - Basic Instruction-set Processor
Desenvolvido por pesquisadores do Laboratório de Sistemas Embarcados e Distribuídos (LSED) – UNIVALI
Processador simplificado projetado para auxiliar o aprendizado
Utilizado para apresentação de conceitos básicos que permitem relacionar programação alto nível com sua representação em hardware
Usado em disciplinas como Computação Básica, Arquitetura de Computadores, Programação, Circuitos Digitais
6
Introdução
Definição do problema
Alto nível de abstração apresentado nos conceitos de programação
Simuladores focados na Arquitetura e Organização de Computadores
Simuladores disponíveis para ensino costumam apresentam uma interface de usuário pouco elaborada ou com muitos recursos
Codificação do programa em linguagem baixo nível
7
Introdução
Solução proposta
Ambiente de Desenvolvimento Integrado (IDE) que auxilie na utilização dos processadores BIP na aprendizagem de programação:
criação e execução de programas em linguagem Portugol
tradução em linguagem assembly
ilustração do estado dos componentes dos processadores BIP
Redução da abstração envolvida nos conceitos de Programação
8
Introdução
Objetivo geral
Construção de um ambiente de desenvolvimento integrado que possibilite a criação de programas e ilustre sua execução, relacionando-os aos aspectos da arquitetura dos processadores BIP I e BIP II
Ambiente de Desenvolvimento Integrado
Processadores
IDE
BIP
9
Introdução
Objetivos específicos Consolidar conceitos sobre Arquitetura e Organização
de computadores e Compiladores
Estudar a arquitetura dos processadores BIP
Implementar e disponibilizar um ambiente de desenvolvimento integrado
programação em linguagem Portugol
visualização do assembly e do estado dos componentes dos processadores BIP I e BIP II
Testar e verificar o sistema
Documentar e divulgar o projeto
10
Fundamentação teórica
Arquitetura e Organização de Computadores
Processadores BIP
Compiladores
Simuladores de Arquitetura
11
Fundamentação teórica
Processadores BIP Desenvolvido por pesquisadores do Laboratório de
Sistemas Embarcados e Distribuídos (LSED) – UNIVALI relacionar programação alto nível com sua representação em
hardware auxiliar no aprendizado de Arquitetura e Organização de
Computadores
Três Versões: BIP I, BIP II, μBIP
12
Fundamentação teórica
Processadores BIP BIP I
níveis de linguagem constantes e variáveis representação de dados conjuntos de instruções geração de código em linguagem de máquina
BIP II desvios condicionais e incondicionais laços de repetição
13
Fundamentação teórica
Processadores BIP Classes de Instruções
Transferência: STO, LD, LDI
Aritmética: ADD, ADDI, SUB e SUBI
Controle: HLT
BIP I
BIP II
Desvio: BEQ, BNE, BGT, BGE,
BLT, BLE e JMP
14
Fundamentação teórica
BIP I ULA Registradores
PC ACC
Baseado em acumulador
CPU
DatapathControl
Decoder
+
+/–
PCena
1
ACCenaWrAccSelB
SelA
Op
Extensão de Sinal
Data MemoryProgram Memory
WrAccOp
SelASelB
WrPC
Addr Data Addr In_Data Out_Data
WrRam
Wr
Opcode
Operand
Instruction
012
01
15
Fundamentação teórica
CPU
DatapathControl
Decoder
+
1
Extensão de Sinal
Data MemoryProgram Memory
WrAccOp
SelASelB
WrPC
Addr Data Addr In_Data Out_Data
WrRam
Wr
Opcode N Z
Operand
Instruction
012
ACCenaWrAcc
SelA
SelB01
+/–Op
Branch
01
PCena
Z N
BIP II Registradores
PC ACC STATUS
Desvios e laços de repetição
16
Fundamentação teórica
Compiladores programas de computador que traduzem de uma
linguagem para outra
ProgramaFonte
Análise Léxica
Análise Sintática
Análise Semântica
Programa Objeto
Análise Síntese
Compilador
Geração de Código
17
Fundamentação teórica
Trabalhos Similares Simuladores de Arquitetura
18
Fundamentação teórica
Características 4AC MipsItNeander
WinR10k Simularq
VLIW-DLX
Bipide
Programação em alto nível Programação em assembly Visualização da Memória Visualização dos valores dos registradores Execução Passo a Passo Simulação da Organização Identificação de erros de compilação - - - Alteração de valores em tempo de execução - -
Arquivos de Ajuda
Simuladores de Arquitetura
possui não possui -não identificado
19
Desenvolvimento
Projeto
Implementação
Tecnologias Utilizadas
20
Projeto
Requisitos funcionais
O sistema deverá:
permitir ao usuário escrever programas em linguagem Portugol
compilar os programas escritos
indicar os erros encontrados durante a compilação
permitir a execução do programa passo a passo
21
Projeto
Requisitos funcionais
O sistema deverá:
gerar código assembly para os processadores BIP I e BIP II
simular o funcionamento do programa sobre a arquitetura dos processadores BIP I e BIP II
possuir janelas de ajuda
apresentar funcionalidades típicas de ambientes de desenvolvimento
22
Projeto
Definição da linguagem subconjunto da linguagem
Portugol que represente as operações suportadas
programa <nome_do_programa>declaracoes
<declaracao_de_variaveis>inicio
<instrucoes_do_programa>fim
programa somadeclaracoes
inteiro a, b, soma
inicioa <- 3b <- 2soma <- a + b
Fim
23
Implementação
Implementação
Compilador Simulador Interface (IDE)
ANTLRWorks
24
Implementação
ANTLRWorks ANTLRWorks
Ferramenta para construção de compiladores
Construção de gramáticas próprias
Geração de componentes reconhecedores de linguagem
25
Implementação
WPF Interface gráfica rica e interativa Melhor experiência do usuário
leiautes avançadossuporte a gráficos vetoriais, 3D, áudio e vídeodefinição de animações
XAML linguagem declarativa para a criação de interfaces
26
XAML Define os elementos de
interface com o usuário, não sendo capaz de conter nenhum tipo de lógica de aplicação
Implementação
27
Implementação
Expression Blend 2
Ferramenta de design interativo aplicações em WPF e Silverlight
Interface orientada por design controles padrões do Windows (botões, menus, etc.) elementos gráficos e 3D recursos de áudio e vídeo animar propriedades individuais dos componentes ao longo do
tempo
28
Implementação
Expression Blend 2
29
Bipide
30
Verificação
Testes Compilador
utilizado um conjunto de aplicações Portugol após compilados, os códigos assembly gerados foram
analisados e comparados com os resultados esperados
Programa Inicio x<-2 Fim
LD 1ADD 2
31
Verificação
Testes Simulador
conjunto de instruções assembly para verificar o estado esperado para os registradores e memórias
os valores resultantes foram analisados e comparados com o obtido previamente na validação do processador µBIP
LD 1ADD 2
ACC <- 3PC <- 8
32
Avaliação
Avaliação
Aplicação de questionário disciplina de Algoritmos e Programação – UNIVALI 1º período (2009-I)
nº de alunos: 21
33
Avaliação
1. Você acha que o seu nível de conhecimento foi compatível com as telas e vocabulário empregado no sistema?
66,67% (entre 8 e10)
34
Avaliação
2. As mensagens de erro lhe auxiliaram de forma adequada?
71,43% (entre 8 e10)
35
Avaliação
3. O sistema lhe proporcionou feedback, ou seja, você conseguiu visualizar todas suas ações?
80,95% (entre 8 e10)
36
Avaliação
4. A estrutura dos painéis do menu lhe parece disposta de forma lógica por agrupamento de tipos de opções?
90,48% (entre 8 e10)
37
Avaliação
5. Qual é o grau de satisfação que você atribui à utilização do sistema?
80,95% (entre 8 e10)
38
Avaliação
Resultado geral
78,10% (entre 8 e10)
39
Considerações Finais
Pôde-se consolidar e aplicar uma série de conhecimentos adquiridos durante o bacharelado em Ciência da Computação
Teve-se a possibilidade de conhecer e aplicar novas tecnologias e ferramentas
A análise de ferramentas similares serviram para definir características do ambiente Bipide
WPF e Expression Blend 2
facilidades para o desenvolvimento de aplicações que exigem muitos recursos de interface
integradas às demais ferramentas e componentes utilizados resultou em uma interface gráfica capaz de proporcionar uma melhor experiência para o usuário
40
Considerações Finais
Os objetivos definidos para este trabalho foram alcançados
Consolidar conceitos sobre Arquitetura e Organização de computadores e Compiladores
Estudar a arquitetura dos processadores BIP
Implementar e disponibilizar um ambiente de desenvolvimento integrado que possibilite a programação em linguagem Portugol e visualização do assembly e do estado dos componentes dos processadores BIP I e BIP II
Testar e verificar o sistema
Documentar e divulgar o projeto
41
Considerações Finais
Este trabalho é parte integrante de um projeto que visa promover a integração interdisciplinar permitir que os processadores da família BIP possam ser utilizados
em diferentes fases e disciplinas de cursos de graduação e pós-graduação.
Busca-se ainda elucidar qual o impacto do uso de um modelo simplificado de computador na compreensão de conceitos básicos ligados ao ensino inicial de algoritmos o ambiente Bipide irá permitir coletar evidências empíricas sobre a
vantagem em reduzir o nível de abstração envolvido nesta aprendizagem
42
Considerações Finais
Trabalhos futuros suporte a arquitetura do processador µBIP
utilização de diferentes linguagens de alto nível como C, Java, entre outras
suporte a diferentes formatos numéricos
otimização do código assembly gerado
implementação e integração de novos módulos que agreguem funcionalidades ao ambiente
desenvolvimento de uma versão on-line
avaliação da utilização da ferramenta em sala de aula
43
Referências
MORANDI, Diana ; PEREIRA, Maicon Carlos ; RAABE, André Luis Alice ; ZEFERINO, Cesar Albenes . Um processador básico para o ensino de conceitos de arquitetura e organização de computadores, 2006.
STALLINGS, William. Arquitetura e organização de computadores: projeto para o desempenho. 5 ed. São Paulo: Prentice Hall, 2005.
VAHID, Frank, GIVARGIS, Tony, Embedded system design: a unified hardware/software introduction, 2002.
PARR, Terence. ANTLR v3 Documentation. 2007. Disponível em: <http://www.antlr.org/wiki/display/ANTLR3/ANTLR+v3+documentation>. Acesso em: 15 out 2007a.
WILLIAMS, Brennon. Microsoft Expression Blend Unleashed. Pearson Education: Indianapolis, 2008.
MacVITTIE, Lory A. XAML in a Nutshell. Sebastopol: O'Reilly, 2006.
Bipide
Ambiente de Desenvolvimento Integrado para
a Arquitetura dos Processadores BIP
por
Paulo Viníccius [email protected]
Orientador: Prof. Dr. André Luis Alice RaabeCo-orientador: Prof. Dr. Cesar Albenes Zeferino
Itajaí, julho de 2009