Você está na página 1de 9

Bipide: Ambiente de Desenvolvimento Integrado para

Utilizao dos Processadores BIP no Ensino de Programao


Paulo Vinccius Vieira
1
, Andr Luis Alice Raabe
1
, Cesar Albenes Zeferino
1

1
Centro de Cincias Tecnolgicas da Terra e do Mar (CTTMar)
Universidade do Vale do Itaja (Univali)
Rua Uruguai, 458 Caixa Postal 360 88302-202 Itaja SC Brasil
{pauloviniccius, raabe, zeferino}@univali.br
Abstract. Teaching introductory programming generally involves an
abstraction level, which is difficult for students with learning disabilities
especially in the programming logic. Considering this, a family of processors,
called BIP Basic Instruction-set Processor, was developed in order to allow
an interdisciplinary approach to teaching initial concepts on the first year of
Computer Science undergraduate courses. Therefore, this paper presents an
integrated development environment (IDE) called Bipide, which enables the
development, implementation and simulation of programs written in structured
Portuguese (called Portugol) linking them to the processor architecture of the
BIP family. The IDE provides a tool to support the teaching of subjects of
introductory programming reducing the abstraction involved in fundamental
concepts of programming logic. It will also serve as an instrument to collect
empirical evidence on the advantage to reduce the level of abstraction
involved in this type of learning.
Resumo. O ensino de conceitos introdutrios de programao costuma
apresentar um nvel de abstrao que prejudica o aprendizado de alunos que
apresentam dificuldades em lidar com o raciocnio lgico necessrio ao
entendimento da lgica de programao. Pensando nesta dificuldade, uma
famlia de processadores denominada BIP Basic Instruction-set Processor,
foi desenvolvida visando integrao interdisciplinar e o apoio ao ensino em
disciplinas de fases iniciais dos cursos de rea tecnolgica. Este texto
apresenta um ambiente de desenvolvimento integrado projetado para o
desenvolvimento e execuo de programas em linguagem Portugol, os quais
sero simulados sobre a arquitetura dos processadores BIP. Com isto,
disponibiliza-se uma ferramenta de apoio ao ensino das disciplinas de
Algoritmos e Programao que auxiliar na reduo da abstrao envolvida
em conceitos fundamentais da lgica de programao e facilitar a
compreenso dos conceitos envolvidos nesta aprendizagem.
1. Introduo
As disciplinas da rea de Arquitetura e Organizao de Computadores so fundamentais
na formao de alunos dos cursos de Cincia da Computao e de Engenharia da
Computao, pois permitem estabelecer relaes dos conceitos de lgica de
XX Simpsio Brasileiro de Informtica na Educao, Florianpolis - SC - 2009, ISSN: 2176-4301

programao com aspectos concretos do hardware, reduzindo assim o nvel de abstrao
envolvido nesta aprendizagem [Borges e Silva 2006].
A escolha de processadores para o ensino concorrente da lgica de programao
e de conceitos de arquitetura de computadores deve facilitar o estabelecimento de
relaes entre as abstraes lgicas necessrias programao e a implementao dessas
abstraes em hardware. Porm, os modelos de processadores tipicamente utilizados so
muito abstratos e no permitem estabelecer essas relaes ou, quando mais avanados,
so demasiadamente complexos para serem aplicados em disciplinas do primeiro ano do
curso [Morandi et al. 2006].
Para tentar reduzir esta dificuldade, uma famlia de processadores denominada
BIP Basic Instruction-set Processor, foi concebida e desenvolvida visando apoiar o
ensino e a integrao interdisciplinar entre disciplinas das fases iniciais dos cursos de
rea tecnolgica.
Neste sentido este trabalho apresenta uma etapa do projeto, cujo objetivo a
construo de um ambiente de desenvolvimento integrado (IDE - Integrated
Development Environment) que possibilita a utilizao dos processadores BIP na
apresentao de conceitos das disciplinas de Algoritmos e Programao. Este ambiente
foi denominado Bipide (BIP + IDE).
2. BIP Basic Instruction-set Processor
A famlia de processadores BIP foi desenvolvida por pesquisadores do Laboratrio de
Sistemas Embarcados e Distribudos da Universidade do Vale do Itaja com o objetivo
de disponibilizar uma srie de processadores de arquitetura simplificada que auxiliasse
no aprendizado de Arquitetura e Organizao de Computadores permitindo relacionar os
contedos de programao em alto nvel com sua representao em hardware [Morandi
et al. 2006].
Dos trs modelos de processadores definidos at o momento, so utilizados neste
projeto os modelos BIP I e BIP II. Estes processadores so focados no entendimento de
conceitos como constantes, variveis, conjuntos de instrues, gerao de cdigo em
linguagem de mquina e laos de repetio [Morandi; Raabe e Zeferino 2006].
2.1. Arquitetura e Organizao dos Processadores BIP
A arquitetura do BIP possui um conjunto restrito de instrues com poucos modos de
endereamento. Todas as instrues so baseadas no formato de instruo ilustrado na
Figura 1, o qual inclui um cdigo de operao de 5 bits e um operando de 11 bits. Esse
operando pode ser o endereo de uma varivel na memria (modo de endereamento
direto) ou um dado constante (modo de endereamento imediato) [Morandi; Raabe e
Zeferino 2006], [Morandi et al. 2006].

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Cd. Operao Operando
Figura 1. Formato de instruo dos processadores BIP
A arquitetura do BIP I inclui trs registradores: (i) PC (Program Counter): aponta
para o endereo da prxima instruo; (ii) IR (Instruction Register): armazena o
XX Simpsio Brasileiro de Informtica na Educao, Florianpolis - SC - 2009, ISSN: 2176-4301

endereo da instruo em execuo; e (iii) ACC (Accumulator): utilizado para
armazenamento de dados durante uma operao. O BIP II possui ainda o registrador
STATUS, utilizado para a execuo das instrues de desvio [Morandi; Raabe e
Zeferino 2006].
Em sua organizao, os processadores BIP utilizam a estrutura Harvard, com
memrias separadas para dados e instrues, como pode ser observado na Figura 2.

Figura 2. Organizao do processador BIP II
O processador dividido em dois blocos: (i) Controle, responsvel por gerar
sinais de controle para o caminho de dados e atualizao do PC; e (ii) Caminho de
Dados, que inclui os circuitos necessrios para execuo das instrues [Morandi;
Raabe e Zeferino 2006].
3. Uso de Simuladores no Ensino
O uso de simuladores que podem facilitar a compreenso do funcionamento do
processador fundamental para o ensino adequado da arquitetura de computadores.
Estes simuladores, no entanto, costumam apresentar uma interface pouco elaborada e
com poucos recursos operacionais [Borges e Silva 2006], [Borunda; Brewer e Erten
2008].
Uma anlise de simuladores de arquitetura de carter educacional foi realizada
com o objetivo de identificar caractersticas destas ferramentas, as quais serviram para
definir funcionalidades do ambiente Bipide, de forma que este apresente caractersticas
de interface que facilitem sua utilizao em disciplinas introdutrias da rea de
programao. A Tabela 1 apresenta um resumo das funcionalidades apresentadas pelos
simuladores analisados em comparao s funcionalidades esperadas para o ambiente
Bipide.
XX Simpsio Brasileiro de Informtica na Educao, Florianpolis - SC - 2009, ISSN: 2176-4301

Tabela 1. Funcionalidades de Simuladores de Arquitetura
Caractersticas 4AC MipsIt
Neander
Win
R10k Simularq
VLIW-
DLX
Bipide
Programao em alto nvel
Programao em assembly
Visualizao da Memria
Visualizao dos valores dos registradores
Execuo Passo a Passo
Simulao grfica da Organizao
Identificao de erros de compilao
- -

-

Alterao de valores em tempo de execuo
-

-

Arquivos de Ajuda
Observa-se na Tabela 1 que os simuladores analisados, em sua maioria, no
permitem o desenvolvimento de programas em linguagem de alto nvel, o que dificulta
sua aplicao nas disciplinas de programao e os restringe s disciplinas da rea de
Arquitetura e Organizao de Computadores. Verifica-se tambm que alguns destes
simuladores no contemplam a simulao grfica da organizao do processador e so
deficitrios na apresentao de arquivos de ajuda que possam facilitar o seu
entendimento.
4. Bipide
O ambiente Bipide insere-se no contexto acima apresentado e disponibiliza um
ambiente de desenvolvimento integrado que possibilita o desenvolvimento, execuo e
simulao de programas em linguagem Portugol, relacionando-os arquitetura dos
processadores BIP.
O Bipide composto por: (i) um editor de textos destinado ao desenvolvimento
de programas em linguagem Portugol; (ii) um compilador capaz de traduzir a linguagem
Portugol para assembly dos processadores BIP; (iii) um simulador dos processadores
BIP I e BIP II capaz de simular as instrues destes processadores exibindo
graficamente sua execuo por meio de animaes; e (iv) um mdulo de ajuda
composto por informaes tericas relacionadas Arquitetura e Organizao dos
processadores BIP e funcionalidades do ambiente.
O projeto do ambiente foi definido a partir da experincia descrita anteriormente
e da anlise de ferramentas de simulao de arquitetura. Foram definidos os requisitos
do sistema, diagramas de caso de uso, prottipos de interfaces e a descrio da
gramtica a ser utilizada para a construo do compilador. Os requisitos funcionais
especificados incluem:
O sistema dever permitir ao usurio escrever e compilar programas em
linguagem Portugol;
O Sistema dever indicar os erros encontrados no programa durante a
compilao;
XX Simpsio Brasileiro de Informtica na Educao, Florianpolis - SC - 2009, ISSN: 2176-4301

O sistema dever permitir a execuo de programa passo a passo;
O sistema dever gerar cdigo assembly para os processadores BIP I e BIP II;
e
O sistema dever simular o funcionamento do programa sobre a arquitetura
dos processadores BIP I e BIP II.
Os analisadores lxico e sinttico do compilador utilizado foram desenvolvidos
atravs da ferramenta para gerao de compiladores ANTLRWorks [Parr 2009].
Tambm foram definidas atravs do ANTLRWorks as aes semnticas necessrias
para a gerao de cdigo assembly.
Para a implementao do Bipide utilizou-se duas ferramentas de
desenvolvimento de software: Visual Studio 2008 [Microsoft Corporation 2009b] e
Expression Blend 2 [Microsoft Corporation 2009a]. O Visual Studio 2008 foi utilizado
para a implementao da interface e das classes que compem o sistema em linguagem
C#. Os elementos grficos e animaes que compem o simulador do processador BIP
foram desenvolvidos em WPF
1
(Windows Presentation Foundation) atravs da
ferramenta Expression Blend 2
2
.
A escolha pela tecnologia WPF justifica-se pelas facilidades disponibilizadas
para o desenvolvimento de aplicaes que exigem muitos recursos de interface, como a
necessidade da utilizao de animaes. Esta tecnologia integrada aos demais
componentes utilizados resultou em uma interface grfica capaz de proporcionar uma
melhor experincia para o usurio, agregando valor ao ambiente desenvolvido.
4.1. Viso Geral das Funcionalidades e dos Aspectos de Interface Grfica
O Bipide apresenta trs mdulos principais: (i) Programao, onde o usurio poder
escrever e compilar programas; (ii) Simulao, onde so simulados os programas
desenvolvidos; e (iii) Ajuda, onde so apresentadas informaes a respeito das
funcionalidades do sistema e sobre a arquitetura e organizao dos processadores BIP.
O mdulo de programao apresentado na Figura 3 oferece ao usurio recursos e
funcionalidades tpicas de editores de cdigo fonte como, por exemplo, identificao de
palavras reservadas e smbolos da linguagem (syntax highlighting). Oferece ainda
opes de gerenciamento e edio de arquivos (Abrir, Salvar, Copiar, etc.). Na parte
inferior do mdulo so exibidos alertas e mensagens de erros ocorridos durante a
compilao do programa.

1
O Windows Presentation Foundation (WPF) uma tecnologia da Microsoft para desenvolvimento de
aplicativos e interfaces. Sua utilizao permite a construo de aplicaes que possibilitam uma melhor
experincia do usurio, por possurem uma interface grfica rica e interativa.
2
O Expression Blend uma ferramenta de desenvolvimento orientada por design destinada criao de
aplicaes em WPF para a plataforma Windows ou para a Web.
XX Simpsio Brasileiro de Informtica na Educao, Florianpolis - SC - 2009, ISSN: 2176-4301


Figura 3. Interface do mdulo de programao
A Figura 4 apresenta a interface do mdulo de simulao. Neste mdulo o
usurio poder executar o programa passo a passo e simular sua execuo nos
processadores BIP I e BIP II. Na parte superior so exibidos o cdigo do programa em
linguagem de alto nvel e o cdigo assembly correspondente. Durante a simulao, a
linha do programa Portugol que est sendo executada destacada, tambm destacado
o conjunto de instrues assembly que correspondem a esta instruo Portugol. Desta
forma permite-se ao usurio verificar quais as instrues assembly necessrias para
executar uma instruo Portugol.

Figura 4. Interface do mdulo de simulao
A simulao do programa feita atravs de animaes que representam o fluxo
de execuo do programa nos processadores BIP. So representados os registradores
especiais do processador, as memrias de dados e instruo e seus respectivos valores.
XX Simpsio Brasileiro de Informtica na Educao, Florianpolis - SC - 2009, ISSN: 2176-4301

Para auxiliar o usurio a compreender o que est ocorrendo no processador so
apresentadas mensagens descrevendo as aes executadas.
A interface do mdulo de simulao foi concebida pensando-se na possibilidade
do usurio visualizar simultaneamente os trs elementos utilizados: linguagem de alto
nvel, linguagem assembly e organizao do processador. Isto permite a realizao de
comparaes e associaes entre os elementos, colaborando para a reduo da abstrao
apresentada nos conceitos de programao. A Figura 5 ilustra uma das relaes
estabelecidas, onde o mesmo valor pode ser ver visto nos trs elementos da interface.

Figura 5. Relao de elementos na interface do mdulo de simulao
5. Verificao e Avaliao
Foram realizados testes no ambiente visando a eliminao de erros existentes no projeto
e desenvolvimento. Durante a implementao das aes semnticas do compilador, foi
utilizado um conjunto de aplicaes em linguagem Portugol para sua validao. Estes
programas foram compilados e os cdigos assembly gerados foram analisados e
comparados com os resultados esperados.
Para a validao do simulador foram utilizados testes unitrios para verificar a
simulao de cada instruo do processador. Foi utilizado um conjunto de instrues
assembly para verificar o estado esperado para os registradores e memrias. Este mesmo
conjunto de instrues j havia sido utilizado para validao da arquitetura do
microcontrolador BIP
3
[Pereira 2008] e aps serem simulados no ambiente Bipide,
tiveram os valores resultantes analisados e comparados com o obtido previamente.
Foi realizada uma experincia de utilizao do ambiente por alunos da disciplina
de Algoritmos e Programao do primeiro perodo do curso de Cincia da Computao
da Universidade do Vale do Itaja. Este experimento teve como principal objetivo
avaliar a satisfao dos usurios com o ambiente e verificar possveis melhorias a serem
realizadas. Os alunos tiveram acesso ao Bipide e aps sua utilizao responderam um

3
O BIP estende a arquitetura do processador BIP II acrescentando funcionalidades tpicas de
microcontroladores [Pereira 2008].
XX Simpsio Brasileiro de Informtica na Educao, Florianpolis - SC - 2009, ISSN: 2176-4301

questionrio composto por seis perguntas a respeito da qualidade da interface do
ambiente. As questes aplicadas so apresentadas a seguir:
1. Voc acha que o seu nvel de conhecimento foi compatvel com as telas e
vocabulrio empregado no sistema?
2. As mensagens de erro lhe auxiliaram de forma adequada?
3. O sistema lhe proporcionou feedback, ou seja, voc conseguiu visualizar todas
suas aes?
4. A estrutura dos painis do menu lhe parece disposta de forma lgica por
agrupamento de tipos de opes?
5. Qual o grau de satisfao que voc atribui utilizao do sistema?
6. Aponte sugestes e crticas gerais para a melhoria do ambiente.
Em uma amostra de 21 alunos que responderam o questionrio, 78,10%
atriburam notas de 8 a 10 s questes realizadas, como ilustrado no grfico da Figura 6.

Figura 6. Resultado geral da avaliao
O resultado da avaliao realizada demonstra indcios da aceitao dos alunos
com a utilizao da ferramenta.
5. Concluses
Neste artigo foi apresentado o ambiente de desenvolvimento integrado Bipide. Este
ambiente foi planejado para uso em disciplinas introdutrias de Algoritmos e
Programao e permite relacionar conceitos de Arquitetura de Computadores com a
lgica de programao. Espera-se com isto contribuir para a reduo da abstrao
envolvida no ensino da programao e, em consequncia, facilitar o aprendizado por
alunos destas disciplinas.
Durante a etapa de projeto foram definidos os requisitos do sistema e a
especificao de um compilador de Portugus Estruturado para o assembly dos
processadores BIP. A escolha das ferramentas e tecnologias utilizadas para
implementao do ambiente levaram em conta os benefcios oferecidos pelas mesmas,
resultando em uma interface intuitiva capaz de proporcionar uma melhor experincia
para o usurio.
XX Simpsio Brasileiro de Informtica na Educao, Florianpolis - SC - 2009, ISSN: 2176-4301

Uma anlise de simuladores de arquitetura de carter educacional serviu para
definir alguns aspectos do ambiente, de forma que este apresente alguma contribuio
enquanto ferramenta educacional. Desta forma possvel perceber que o
desenvolvimento do Bipide privilegiou contemplar todas as caractersticas interessantes
identificadas nos trabalhos similares, como pode ser observado na tabela apresentada no
Captulo 3. Considera-se que assim torna-se possvel ao professor e aos alunos
explorarem o uso da ferramenta em uma diversidade maior de possibilidades de
aprendizagem.
Os resultados dos testes realizados para verificar as funcionalidades e a corretude
do sistema se mostraram consistentes e corresponderam aos resultados esperados. A
avaliao realizada em sala de aula, ainda que preliminar, apontou indcios de aceitao
e satisfao dos alunos com a utilizao da ferramenta.
Este trabalho parte integrante de um projeto que visa promover a integrao
interdisciplinar, permitindo que os processadores da famlia BIP possam ser utilizados
em diferentes fases e disciplinas de cursos de graduao e ps-graduao. Busca-se
ainda elucidar qual o impacto do uso de um modelo simplificado de computador na
compreenso de conceitos bsicos ligados ao ensino inicial de algoritmos. Neste
aspecto, o ambiente Bipide permitir coletar evidncias sobre a vantagem em reduzir o
nvel de abstrao envolvido nesta aprendizagem. Estes experimentos configuram-se no
principal trabalho futuro relacionado a este projeto.
Referncias
Borges, J. A. S., Silva, G. P. (2006) NeanderWin Um simulador didtico para uma
arquitetura do tipo Acumulador, In: Workshop Sobre Educao em Arquitetura de
Computadores, Ouro Preto: SBC.
Borunda, P.; Brewer, C.; Erten, C. (2008) GSPIM: graphical visualization tool for
MIPS assembly programming and simulation, In: Technical Symposium on
Computer Science Education, New York, NY: Acm, p. 244-248.
Microsoft Corporation. (2009a) Microsoft Expression.
http://www.microsoft.com/Expression, June.
Microsoft Corporation. (2009b) Microsoft Visual Studio,
http://www.microsoft.com/visualstudio/en-us/default.mspx, June.
Morandi, D. et al. (2006) Um processador bsico para o ensino de conceitos de
arquitetura e organizao de computadores, In: Hfen, Uruguaiana, v. 30, p. 73-80.
Morandi, D.; Raabe, A. L. A.; Zeferino, C. A. (2006) Processadores para Ensino de
Conceitos Bsicos de Arquitetura de Computadores, In: Proceedings of the 18th
International Symposium on Computer Architecture and High Performance
Computing Workshops, Porto Alegre, SBC, p. 17-24.
Parr, T. (2009) ANTLRWorks: The ANTLR GUI Development Environment,
http://www.antlr.org/works/index.html, June.
Pereira, M. C. (2008) BIP: Microcontrolador Bsico para o Ensino de Sistemas
Embarcados, Trabalho de Concluso de Curso (Graduao em Cincia da
Computao) - Universidade do Vale do Itaja, Itaja, 2008.
XX Simpsio Brasileiro de Informtica na Educao, Florianpolis - SC - 2009, ISSN: 2176-4301

Você também pode gostar