ATIVIDADES PRÁTICAS
SUPERVISIONADAS
8ª. Série
Compiladores
Ciência da Computação
A Atividade Prática Supervisionada (ATPS) é um procedimento metodológico de
ensino-aprendizagem desenvolvido por meio de etapas, acompanhadas pelo
professor, e que tem por objetivos:
 Favorecer a autoaprendizagem do aluno.
 Estimular a corresponsabilidade do aluno pelo seu aprendizado.
 Promover o estudo, a convivência e o trabalho em grupo.
 Auxiliar no desenvolvimento das competências requeridas para o exercício
profissional.
 Promover a aplicação da teoria na solução de situações que simulam a
realidade.
 Oferecer diferenciados ambientes de aprendizagem
Para atingir estes objetivos, a ATPS propõe um desafio e indica os passos a
serem percorridos ao longo do semestre para a sua solução.
Aproveite esta oportunidade de estudar e aprender com desafios da vida
profissional.
AUTORIA:
Michel Abrão
Faculdade Anhanguera de Bauru
Ciência da Computação - 8ª. Série - Compiladores
Pág. 2 de 7
COMPETÊNCIAS E HABILIDADES
Ao concluir as etapas propostas neste desafio, você terá desenvolvido as competências
e habilidades que constam, nas Diretrizes Curriculares Nacionais, descritas a seguir.
 Ter visão sistêmica e holística da área.
 Conhecer os aspectos teóricos, científicos e tecnológicos relacionados à computação.
 Identificar, analisar, documentar e solucionar problemas e necessidades passíveis de
solução via computação.
 Saber conciliar teoria e prática.
Participação
Esta atividade será, em parte, desenvolvida individualmente pelo aluno e, em parte,
pelo grupo. Para tanto, os alunos deverão:
 organizar-se, previamente, em equipes de 4 a 5 participantes;
 entregar seus nomes, RAs e e-mails ao professor da disciplina e
 observar, no decorrer das etapas, as indicações: Individual e equipe.
DESAFIO
É de longa data que os programas e sistemas de computação vêm sido desenvolvidos
e utilizados pelo homem como ferramenta de auxílio em diversos processos operacionais de
grande importância e relevância para a sociedade. Lembramos disso quando nos deparamos
com os carros que possuem computador de bordo, com as torres de comando dos aeroportos
que possuem programas desenvolvidos para dar garantias e segurança aos vôos, com os
aparelhos celulares mais modernos que possuem inúmeras facilidades, dentre outras
situações rotineiras.
Um desses tipos de programa que prestam serviços á sociedade e que fazem parte do
nosso dia-a-dia é o programa utilizado pelos fabricantes de eletrodomésticos, mais
especificamente o programa que controla as funções dos equipamentos microondas.
Trata-se de uma simples aplicação desenvolvida para controlar as funções e tempo de
aquecimento dos alimentos, evitando dessa forma que o homem faça qualquer tipo de
controle paralelo.
Essa situação é bem visualizada quando utilizamos o aparelho de microondas para
aquecer um prato de alimento, pois o pequeno programa se encarrega de receber as
instruções do usuário, controlar o tempo de aquecimento e finalizar o serviço indicando
mensagem em tela ou aviso sonoro.
Para tal desafio, vamos considerar um aparelho de microondas que contenha os
seguintes botões/funções:
- 10 botões, onde cada um deles contenha um dos números: 0,1,2,3,4,5,6,7,8 e 9. Esses
botões serão utilizados para digitação do tempo que o usuário deseja que o alimento seja
aquecido por microondas.
- 1 botão “Iniciar”. Esse botão será utilizado para que o usuário indique o momento de
início do processo de aquecimento.
Michel Abrão
Ciência da Computação - 8ª. Série - Compiladores
Pág. 3 de 7
- 1 botão “Finalizar”. Esse botão será utilizado pelo usuário para interromper a
qualquer momento um aquecimento iniciado anteriormente, independente do tempo
restante.
- 1 botão “Potência”. Esse botão será utilizado pelo usuário para selecionar qual das 3
potências disponíveis ele deseja optar, sendo elas: baixa, média e alta.
- 1 botão “Pipoca”. Esse botão indicará automaticamente um tempo de aquecimento
de 3 minutos em potência do tipo alta, para estourar um pacote de pipocas.
- 1 botão “Brigadeiro”. Esse botão indicará automaticamente um tempo de
aquecimento de 5 minutos em potência média, para se fazer um brigadeiro.
- 1 botão “Macarrão Instantâneo”. Esse botão indicará automaticamente um tempo de
aquecimento de 3 minutos em potência alta, para preparo de macarrão instantâneo.
Por mais simples que uma aplicação com essas características possa parecer, a projeção
de uma linguagem de desenvolvimento de programas com seu respectivo programa
compilador torna-se uma atividade extremamente complexa.
O desafio em questão será propor ao aluno que especifique uma nova linguagem de
programação para atender a essa aplicação do caso do aparelho de microondas, cujo
compilador realize as tarefas básicas do processo de compilação, sendo elas a análise léxica, a
análise sintática e a análise semântica.
Objetivo do Desafio
Projetar e desenvolver uma nova linguagem de programação que atenda ás funções do
aparelho de microondas, e que contenha um mini compilador que utilize regras necessárias
ao processo de compilação (análise léxica, análise sintática e análise semântica),
demonstrando ao programador as mensagens que envolvam os resultados desse processo
(mensagens de sucesso e/ou mensagens de erro).
Livro Texto da Disciplina
A produção desta ATPS é fundamentada no livro-texto da disciplina, que deverá ser
utilizado para solução do desafio:
AHO, Alfred V.; SETHI, Ravi; LAM, Monica S.. Compiladores: princípios, técnicas e
ferramentas. 2ª. Edição. São Paulo: Pearson – Longman, 2007.
ETAPA 1 (tempo para realização: 5 horas)
 Aula-tema: Introdução à Compiladores e ao processo de Compilação. Fases da
Compilação.
Esta atividade é importante para que você consiga dimensionar a nova linguagem de
programação que será desenvolvida, com todos os seus recursos e funcionalidades.
Para realizá-la, devem ser seguidos os passos descritos.
Michel Abrão
Ciência da Computação - 8ª. Série - Compiladores
Pág. 4 de 7
PASSOS
Passo 1 (Individual)
Realizar a leitura e entendimento de todas as funções que deverão ser previstas pelo
equipamento de microondas, indicadas no desafio dessa atividade. Anotar todas essas
funções com seus respectivos nomes e tarefas que deverão realizar. Exemplo: botão iniciar:
será utilizado pelo usuário para indicar o início da operação de aquecimento.
Passo 2 (Equipe)
Discutir com os demais componentes de seu grupo se todos entenderam a proposta do
trabalho e o que cada função (botão do aparelho de microondas) deverá executar quando
acionada.
No caso de algum componente do grupo ficar em dúvida sobre o desafio proposto,
sugere-se procurar orientação docente para explicitar o caso até chegarem a um consenso.
Site sugerido para pesquisa
 LEMONE, Karen A.. Fundamentals of Compilers: An Introduction to Computer
Language
Translation.
1992.
p.184.
Disponível
em:
<http://compiladores.osdevbrasil.net>. Acesso em: 26 nov. 2013.
Passo 3 (Equipe)
Projetar a nova linguagem de programação, definindo o nome da linguagem de alto nível e
criando a tabela de símbolos (tabela de tokens). Vale lembrar que essa tabela de símbolos
deverá prever todas as possibilidades de comandos e palavras reservadas previstas na
linguagem.
Passo 4 (Equipe)
Desenvolver um programa na nova linguagem de programação, utilizando a tabela de
símbolos do Passo 3 dessa Etapa, de maneira que contenha as seguintes funções do
microondas:
- Receba um número digitado do teclado do equipamento de microondas que indique o
tempo de aquecimento;
- Receba um tipo de potência (baixa, média ou alta);
- Faça o aquecimento do alimento pelo tempo e potência selecionados;
- Emita uma informação no visor do aparelho de microondas indicando o término do
processo de aquecimento.
- Permita que o usuário cancele o processo de aquecimento a qualquer tempo, bastando para
isso que ele aperte o botão “Finalizar”.
Nota para o Professor
Entregar ao professor uma mídia que contenha o nome dos participantes da sua
equipe, o nome da sua linguagem de programação, a tabela de símbolos especificada
no Passo 3 e o programa especificado no Passo 4.
Michel Abrão
Ciência da Computação - 8ª. Série - Compiladores
Pág. 5 de 7
ETAPA 2 (tempo para realização: 5 horas)
 Aula-tema: Analisador Léxico. Estados da análise. Exemplos e exercício. Tokens.
Esta atividade é importante para que você entenda de forma prática como deve ser o
comportamento do compilador nos processos de análise léxica.
Para realizá-la, devem ser seguidos os passos descritos.
PASSOS
Passo 1 (Equipe)
Utilizar uma linguagem de alto nível para iniciar a criação do seu mini compilador. Seu mini
compilador deverá fazer a análise léxica e utilizar a sua tabela de símbolos. Nesse passo,
comece a codificar o seu mini compilador, criando uma forma de armazenar a tabela de
símbolos de forma digital.
Passo 2 (Equipe)
Codificar as primeiras linhas do seu mini compilador, de maneira que ele faça a análise léxica
do programa que você desenvolveu no Passo 4 da Etapa 1 dessa ATPS. A ideia é que o mini
compilador faça o processo comparativo dos tokens encontrados no programa fonte e a sua
tabela de símbolos, gerando mensagens de resultado em vídeo.
Passo 3 (Equipe)
Apresentar a função léxica do seu mini compilador para a equipe e discutir possíveis
implementações de melhoria que a aplicação poderia ter (tabela de símbolos externa, seleção
do programa-fonte através do mini compilador, dentre outras implementações possíveis).
Nota para o Professor
Entregar ao professor uma mídia que contenha o seu mini compilador com a função
léxica em funcionamento.
ETAPA 3 (tempo para realização: 5 horas)
 Aula-tema: Análise Sintática Top-Down Recursiva com Retrocesso: introdução.
Análise Sintática Top-Down Recursiva com Retrocesso: implementação. Análise
Sintática Top-Down Recursiva com Retrocesso: exercícios. Análise Sintática BottomUp.
Esta atividade é importante para que você entenda de forma prática como deve ser o
comportamento do compilador nos processos de análise sintática.
Para realizá-la, devem ser seguidos os passos descritos.
Michel Abrão
Ciência da Computação - 8ª. Série - Compiladores
Pág. 6 de 7
PASSOS
Passo 1 (Equipe)
Projetar junto com a sua equipe o esboço de qual será a tabela de regras sintáticas que o seu
mini compilador deverá obedecer. Anotar todas essas regras e iniciar a codificação dessa
tabela de regras sintáticas de forma digital, pois ela será utilizada em seguida pelo mini
compilador para executar as tarefas sintáticas.
Passo 2 (Equipe)
Codificar as linhas do seu mini compilador, de maneira que ele faça a análise sintática TopDown recursiva sem retrocesso do programa que você desenvolveu no Passo 4 da Etapa 1
dessa ATPS. A ideia é que o mini compilador faça o processo comparativo dos parses
encontrados no programa fonte e a sua tabela de regras sintáticas, gerando mensagens de
resultado em vídeo.
Passo 3 (Equipe)
Apresentar a função sintática do seu mini compilador para a equipe e discutir possíveis
implementações de melhoria que a sua aplicação poderia ter (tabela de regras sintáticas
externas, seleção do programa-fonte através do mini compilador, dentre outras
implementações possíveis).
Nota para o Professor
Entregar ao professor uma mídia que contenha o seu mini compilador com a função
sintática em funcionamento.
ETAPA 4 (tempo para realização: 5 horas)
 Aula-tema: Estudo de Análise Semântica. Implementação de Mecanismos
Semânticos (Mini Compilador).
Esta atividade é importante para que você entenda de forma prática como deve ser o
comportamento do compilador nos processos de análise semântica.
Para realizá-la, devem ser seguidos os passos descritos.
PASSOS
Passo 1 (Equipe)
Projetar junto com a sua equipe o esboço de quais serão as regras semânticas que o seu mini
compilador deverá obedecer. Anotar todas essas regras para futura discussão no próximo
passo.
Michel Abrão
Ciência da Computação - 8ª. Série - Compiladores
Pág. 7 de 7
Passo 2 (Equipe)
Analisar em equipe as regras semânticas que foram definidas no passo anterior, verificando
se há possibilidade de implementar novas melhorias semânticas ao processo. Caso existam,
anotar essas melhorias para serem utilizadas no próximo passo.
Passo 3 (Equipe)
Codificar as linhas do seu mini compilador, de maneira que ele faça a análise semântica do
programa que você desenvolveu no Passo 4 da Etapa 1 dessa ATPS. A ideia é que o mini
compilador utilize as regras definidas no Passo 1 e no Passo 2 dessa Etapa, gerando
mensagens de resultado em vídeo.
Passo 4 (Equipe)
Apresentar a função semântica do seu mini compilador para a equipe e discutir possíveis
melhorias que a sua aplicação poderia ter.
Nota para o Professor
Entregar ao professor uma mídia que contenha o seu mini compilador com a função
semântica em funcionamento.
Padronização
O material escrito solicitado nesta atividade deve ser produzido de acordo com as
normas da ABNT, com o seguinte padrão (exceto para produções finais não textuais):

em papel branco, formato A4;

com margens esquerda e superior de 3cm, direita e inferior de 2cm;

fonte Times New Roman tamanho 12, cor preta;

espaçamento de 1,5 entre linhas;

se houver citações com mais de três linhas, devem ser em fonte tamanho 10, com
um recuo de 4cm da margem esquerda e espaçamento simples entre linhas;

com capa, contendo:

nome de sua Unidade de Ensino, Curso e Disciplina;

nome e RA de cada participante;

título da atividade;

nome do professor da disciplina;

cidade e data da entrega, apresentação ou publicação.
Para consulta completa das normas ABNT, acesse a Normalização de Trabalhos Acadêmicos
Anhanguera.
Disponível
em:
<http://issuu.com/normalizacao/docs/normaliza____o_de_trabalhos_acad__m>.
Acesso
em: 13 maio 2014.
Michel Abrão
Download

CADERNO DE ATIVIDADES PRÁTICAS