Plano de Ensino

Ciência da Computação

Página do Curso

Plano de Ensino | URI Câmpus de Erechim

PLANO DE ENSINO

 

DEPARTAMENTO DE ENGENHARIAS E CIÊNCIA DA COMPUTAÇÃO

Disciplina: Compiladores

Código: 30-480

Carga Horária: 80h (60h Teórica + 20h Prática)

Nº de Créditos: 04

 

EMENTA

Definição e estrutura de Compiladores e Interpretadores. Analisadores (léxico /sintático /semântico). Geração e otimização de código.

 

OBJETIVOS

Compreender a estrutura de compiladores, o processo de compilação no reconhecimento de linguagens e a geração/otimização de código. Capacitar o aluno para construir analisadores sintáticos baseados em autômatos de pilha.

 

CONTEÚDOS CURRICULARES

Definição e Estrutura de Compiladores

Processos de Compilação

Interpretação

Estrutura Geral de um Compilador

Analisador Léxico

Analisador Sintático

Analisador Semântico

Gerador de Código Intermediário

Tabela de Símbolos

Otimização de Código

Gerador de Código Intermediário

Montador

Análise Sintática

Top-Down

Análise Sintática de Descendência Recursiva

Análise Sintática Não-Recursiva Preditiva

Análise Preditiva Tabular

Bottom-Up

Análise Sintática de Precedência de Operadores

Análise Shift-Reduce através de Pilhas

Conjunto First

Conjunto Follow

Tabela de Parsing

Máquina de Turing

Tratamento de Erros de Sintaxe

Estratégias para Recuperação de Erros

Análise Semântica

Conceitos e Definições

 

METODOLOGIA

Os alunos desenvolverão Trabalhos Discente Efetivos (TDE) no total de 20h, de acordo com o planejamento do professor: estudos de caso, pesquisas bibliográficas, resolução de problemas e lista de exercícios.

O desenvolvimento dos conteúdos será feito através de aulas expositivas no quadro, acompanhada da apostila da disciplina para a discussão dos itens de cunho teórico. A seguir, dar-se-á a realização de exercícios práticos para fixação do conteúdo estudado.

A resolução de exercícios será seguida da correção dos mesmos pelo professor, com a participação dos alunos, a fim de demonstrar e fixar os conceitos estudados.

No decorrer do semestre, serão utilizadas metodologias ativas com o objetivo de potencializar o processo de ensino-aprendizagem.

 

AVALIAÇÃO

Para esta disciplina a avaliação semestral deve considerar a média ponderada entre as notas, que serão definidas através das seguintes avaliações:

Parte da avaliação da disciplina, com peso 20%, será referente às atividades desenvolvidas nas TDEs, conforme previsto pelas regras da graduação Ativa da URI;

O restante das notas consistirá em provas e trabalhos (teóricos e/ou práticos), com assuntos específicos da disciplina.

A atribuição de notas para a avaliação do desempenho do acadêmico, segue o prescreve o Regimento Geral da Universidade, Art. 88 a 92. 

 

BIBLIOGRAFIA

BIBLIOGRAFIA BÁSICA

AHO, Alfred V.; LAM, Monica S.; SETHI, Ravi; ULLMAN, Jeffrey D. Compiladores: princípios, técnicas e ferramentas. 2. ed. São Paulo: Pearson Addison-Wesley, 2008.

HOPCROFT, J.; ULLMAN, J. MOTWANI, R. Introdução à Teoria de Autômatos, Linguagens e Computação. Edição Traduzida. São Paulo: Campus. 2002

PRICE, A. M. de A.; TOSCANI S. S. Implementação de Linguagens de Programação: Compiladores. Rio de Janeiro: Sagra Luzzato, 2005.

 

BIBLIOGRAFIA COMPLEMENTAR

DELAMARO, Márcio Eduardo. Como construir um compilador utilizando ferramentas Java. São Paulo: Novatec, 2004.

GRUNE, Dick et al. Projeto moderno de compiladores: implementação e aplicações. Rio de Janeiro: Campus, 2001.

LOUDEN, Kenneth C. Compiladores: princípios e prática. São Paulo: Pioneira Thomson Learning, 2004.

Menezes, P. B. Blauth. Linguagens Formais e Autômatos, 6. ed. Bookman, 2011. (Biblioteca Virtual).

Midena, RAMOS, Marcus Vinícius, JOSÉ NETO, João, and VEJA, Ítalo Santiago. Linguagens Formais: Teoria, Modelagem e Implementação. Porto Alegre: Bookman, 2011. (Biblioteca Virtual).