Pró-Reitoria Acadêmica Diretoria Acadêmica Assessoria Pedagógica da Diretoria Acadêmica

Documentos relacionados
PLANO DE ENSINO. EMENTA DA DISCIPLINA Objetivo Geral Conhecer o funcionamento e o histórico das principais tecnologias de desenvolvimento web.

Pró-Reitoria Acadêmica Diretoria Acadêmica Assessoria Pedagógica da Diretoria Acadêmica

Pró-Reitoria Acadêmica Diretoria Acadêmica Assessoria Pedagógica da Diretoria Acadêmica PLANO DE ENSINO. Revisão 7-17/02/16

Universidade Federal do ABC Rua Santa Adélia, Bairro Bangu - Santo André - SP - Brasil CEP Telefone/Fax:

PLANO DE APRENDIZAGEM

Apresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais.

COMPILADORES PROGRAMA E BIBLIOGRAFIA

Linguagens e Compiladores

Programação de Sistemas (Sistemas de Programação) Semana 10, Aula 17

INE5317 Linguagens Formais e Compiladores. Ricardo Azambuja Silveira INE-CTC-UFSC URL:

Compiladores. Prof. Bruno Moreno

CP Compiladores I Prof. Msc.. Carlos de Salles

Projeto de Compiladores

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA

Ficha da Unidade Curricular

Análise Sintática II. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 34

Construção de Compiladores

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular COMPILADORES Ano Lectivo 2011/2012

INE5318 Construção de Compiladores. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:

Análise Sintática I. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 42

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular COMPILADORES Ano Lectivo 2017/2018

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Pró-Reitoria Acadêmica Diretoria Acadêmica Assessoria Pedagógica da Diretoria Acadêmica

Análise Sintática. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 18

INE5421 LINGUAGENS FORMAIS E COMPILADORES

Autômatos e Linguagens

Compiladores Aula 1. Celso Olivete Júnior.

FACULDADE LEÃO SAMPAIO

Plano da Unidade Curricular

Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores

Compiladores. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 38

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores

Conceitos de Linguagens de Programação

DESENVOLVIMENTO DO COMPILADOR PARA A LINGUAGEM SIMPLE

Lógica de Programação. Tecnologia em Redes de Computadores IFSULDEMINAS Campus Inconfidentes Prof. Kleber Rezende

PLANO DE CURSO. 3. OBJETIVO GERAL DA DISCIPLINA: Desenvolver no aluno uma metodologia de análise de problemas e formulação de algoritmos.

Linguagens de Programação Aula 3

Plano de Trabalho Docente Ensino Técnico

Universidade Federal de Uberlândia Faculdade de Computação. GMA038 Introdução à Ciência da Computação

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Compiladores I Prof. Ricardo Santos (cap 1)

FOLHA DE PROVA. Descreva e ilustre, com um exemplo, o algoritmo de minimização de um autômato.

Computação Básica. Prof. Tiago Alves. Universidade de Brasília Campus Gama

PLANO DE ENSINO. CURSO: Bacharelado em Sistemas de Informação MODALIDADE: PRESENCIAL ( X ) OBRIGATÓRIA ( ) OPTATIVA DEPARTAMENTO: DEINFO

PLANO DE APRENDIZAGEM. Inovar, modelar e implementar soluções tecnológicas em variados domínios de aplicação.

Algoritmos e Programação

Bacharelado em Ciência e Tecnologia Processamento da Informação. Apresentação da Disciplina de Processamento da Informação Modalidade: Presencial

Compilador Educativo VERTO: ambiente para aprendizagem de compiladores

Algoritmos e Programação

PLANO DE UNIDADE DIDÁTICA- PUD

Especificações Gerais do Compilador e Definição de FRANKIE

Compiladores. Introdução

INE5622 INTRODUÇÃO A COMPILADORES

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Programação Aplicada à. Engenharia de Alimentos

Universidade Federal de Uberlândia Faculdade de Computação. FACOM49010(V) Algoritmos e Programação de Computadores Engenharia Mecatrônica

1. DADOS DE IDENTIFICAÇÃO

Conclusões. Baseado no Capítulo 9 de Programming Language Processors in Java, de Watt & Brown

Plano de Ensino. Identificação. Curso EngE.INT - Engenharia de Energia. Ênfase. Disciplina B161S - Introdução à Ciência da Computação I

Aula 0 15/10/2008. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Redes de Computadores

Linguagem Computacional

1. DADOS DE IDENTIFICAÇÃO:

PORTUGOL/PLUS: UMA FERRAMENTA DE APOIO AO ENSINO DE LÓGICA DE PROGRAMAÇÃO BASEADO NO PORTUGOL

I LINGUAGENS E PROCESSADORES: INTRODUÇÃO 1

Algoritmos e Programação

UMA PROPOSTA DE FERRAMENTA PARA SIMPLIFICAR A DEPURAÇÃO DE CÓDIGOS EM C, POR ALUNOS INICIANTES

Computação Eletrônica

ANÁLISE E IMPLANTAÇÃO DE FERRAMENTAS PARA CORREÇÃO AUTOMATIZADA DE ALGORITMOS RESUMO

MINISTÉRIO DA EDUCAÇÃO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS DIRETORIA DE GRADUAÇÃO

Plano de Trabalho Docente

Implementação de Linguagens

Pontifícia Universidade Católica de São Paulo

V.2 Especificação Sintática de Linguagens de Programação

Organização e Arquitetura de Computadores I

FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS

Organização e Arquitetura de Computadores I

DISCIPLINA: Programação de Computadores I

GERAL Preparar o futuro profissional do direito no sentido de expressar-se com correção, clareza e coerência.

PLANO DE ATIVIDADES DO ESTÁGIO DE DOCÊNCIA

DISCIPLINA: Programação de Computadores II

1. DADOS DE IDENTIFICAÇÃO:

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS PRÓ-REITORIA DE GRADUAÇÃO ESCOLA DE CIÊNCIAS EXATAS E DA COMPUTAÇÃO PLANO DE ENSINO

FACULDADE ZACARIAS DE GÓES SISTEMAS DE INFORMAÇÃO ADRIEL ALMEIDA CAFÉ PROCESSO DE COMPILAÇÃO

UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE ENGENHARIA CIVIL COLEGIADO DO CURSO DE ENGENHARIA CIVIL PLANO DE CURSO

Fundação Escola de Sociologia e Política de São Paulo Faculdade de Biblioteconomia e Ciência da Informação PLANO DE ENSINO (2019)

Universidade Federal de Uberlândia Faculdade de Computação. FACOM49010(V) Algoritmos e Programação de Computadores Engenharia Mecatrônica

BCC221 Programação Orientada a Objetos. Prof. Marco Antonio M. Carvalho 2013/1

Noções de compilação

Noções de compilação

Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação

Introdução à Computação

Introdução à Computação

1. DADOS DE IDENTIFICAÇÃO:

Análise Semântica. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 40

Introdução à Programação

Transcrição:

FACULDADE: CENTRO UNIVERSITÁRIO DE BRASÍLIA UniCEUB CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: CONSTRUÇÃO DE COMPILADORES CARGA HORÁRIA: 75 H. A. ANO/SEMESTRE: 2016/02 PROFESSOR: EDUARDO FERREIRA DOS SANTOS HORÁRIOS: Quartas e Sextas às 07h40 PLANO DE ENSINO EMENTA DA DISCIPLINA Objetivo Geral Capacitar o aluno a compreender todos os aspectos práticos e teóricos da construção de um pequeno compilador Objetivos Específicos 1. Aplicar os conceitos de teoria computacional à construção de compiladores; 2. Entender o funcionamento das linguagens de programação; 3. Conhecer os aspectos de implementação da linguagem de programação que afetam o desempenho do programa; 4. Aprender a otimizar programas de computador; 5. Entender a transformação de um programa de computador em linguagem de máquina. CONTEÚDOS PROGRAMÁTICOS 1. Introdução a. Computadores e máquinas de computar, b. Algoritmos; c. Evolução das linguagens de programação i. Código-fonte ii. Código-objeto 2. Conceitos básicos a. Compiladores i. Definições ii. A ciência da criação de um compilador; iii. Modelagem no projeto e implementação no código; iv. Otimização de código; v. Modelo de compilação de análise e síntese. b. Aplicações i. Implementação de linguagens; ii. Otimização de arquiteturas; iii. Projeto de novas arquiteturas; iv. Traduções de programa; v. Ferramentas de produtividade (IDE).

CONTEÚDOS PROGRAMÁTICOS c. Fundamentos de linguagens de programação i. Estático versus dinâmico; ii. Ambiente versus estados; iii. Escopo estático e estrutura de blocos; iv. Controle de acesso explícito; v. Escopo dinâmico; vi. Passagem de parâmetros; vii. Sinônimos. d. Modelo genérico introdutório: tradutor simples dirigido por sintaxe i. Introdução e definição de sintaxe; ii. Definição de gramáticas; iii. Sintaxe; iv. Análise sintática; v. Tradutor para expressão simples; vi. Análise léxica; vii. Tabelas de símbolos; viii. Geração de código intermediário 3. Análise léxica a. Análise léxica versus análise sintática; b. Buffers de entrada; c. Especificação de tokens; d. Reconhecimento de tokens; e. Gerador de analisador léxico; f. Autômatos finitos; g. Traduzindo expressões regulares em autômatos finitos; h. Projeto de gerador de analisador léxico; i. Otimização de casadores de padrão. 4. Análise sintática a. Gramáticas livres de contexto; b. Escrevendo gramáticas; c. Análise sintática ascendente; d. Análise sintática descendente; e. Análise LR simples: SLR; f. Analisadores sintáticos LR mais poderosos; g. Gramáticas ambíguas; h. Geradores de analisadores sintáticos. 5. Geração e otimização de código a. Ambiente de execução b. Geração de código intermediário c. Geração de código d. Otimização 6. Interpretadores

PROCEDIMENTOS METODOLÓGICOS Aulas teóricas expositivas Aulas práticas em laboratório Atenção: para acesso às aulas no laboratório, o aluno deverá apresentar um termo de compromisso para os monitores responsáveis pelo laboratório. Leitura de material para elaboração de resenhas temáticas. Elaboração e exposição de trabalhos individual e em grupo. Leitura e discussão de artigos científicos sobre o tema. Equipamentos Utilizados Quadro branco; Recursos audiovisuais; Datashow; Computadores do laboratório. RECURSOS DIDÁTICOS Comunicação entre aluno e professor E-mail: eduardo@eduardosan.com Whatsapp Portal do professor: http://www.eduardosan.com/compiladores/ O espaço aluno será utilizado para comunicar informações sobre: datas das avaliações, plano de ensino, menção do aluno, faltas do aluno e possíveis ausências ou atrasos do professor. O portal do professor será utilizado para comunicar informações sobre: plano de ensino, datas das avaliações, lista de exercícios, módulos de ensino (ME), trabalhos, aplicativos e materiais de ensino em geral. Atividades para Avaliação O aluno será avaliado conforme mostrado na Tabela 1. Avaliação Técnicas Avaliativas Data de aplicação P1 TR LAB PN PA Prova escrita Trabalho final Laboratório Prova Final Participação Tabela 1: Avaliação Comunicada com 2 semanas de antecedência

As datas de aplicações das avaliações serão comunicadas aos alunos em sala de aula, no espaço aluno e no portal do professor. Será realizada uma atividade de laboratório para a avaliação (LAB) com o objetivo de reforçar o conteúdo trabalhado nos laboratórios. A atividade será entregue com antecedência e a entrega vai contar para a menção da disciplina. O professor irá atribuir uma menção parcial, conforme mostrado na Tabela 2, para cada uma das avaliações definidas na Tabela 2. A menção parcial SR (Sem Rendimento) será atribuída ao aluno que não participar das avaliações P1 ou TR. SS MS MM MI II SR Superior Média Superior Médio Média Inferior Inferior Sem Rendimento Tabela 2: Identificação das menções parciais A Prova Final (PN) ou substitutiva será aplicada nas seguintes condições: 1. Aluno não participar da avaliação P1; 2. Aluno não obtiver menção suficiente para ser aprovado na disciplina nas avaliações anteriores. Critérios de Avaliação O professor irá considerar os seguintes aspectos na avaliação do aluno: 1. Quantidade de acertos em questões objetivas. 2. Clareza, objetividade, capacidade de síntese e correção em questões discursivas. 3. Participação do aluno no processo ensino-aprendizagem: aferida pela sua frequência (pontualidade e assiduidade), comprometimento na resolução de exercícios, comportamento em sala de aula, interesse e disciplina em sala de aula. A menção final II (Inferior) será atribuída ao aluno que não participar de duas avaliações, não participar da avaliação TR ou possuir rendimento global inferior. O aluno que não entregar o trabalho final (TR) não será aprovado na disciplina. As listas de exercício são atividades complementares que serão levadas em consideração durante as provas. Menção final

O professor atribuirá uma menção final ao aluno após a aplicação da última avaliação da disciplina, conforme mostrado na Tabela 3. SS MS Superior Média Superior MM Médio MI II Média Inferior Inferior Aprovação Reprovação por menção SR Sem Rendimento Reprovação, se a aluno abandonar a disciplina. RF Reprovado por falta Reprovação por ultrapassar o limite de faltas. Tabela 3: Menções finais Atenção: A menção final será atribuída conforme o aproveitamento global do aluno na disciplina e não representa a média das menções parciais. BÁSICA BIBLIOGRAFIA AHO, Alfred V. E Outros. Compiladores: princípios, técnicas e ferramentas. PEARSON, 2007. PRICE, Ana Maria de Alencar. Implementação de linguagens de programação: compiladores. SAGRA-LUZZATTO, 2005. RICARTE, Ivan. Introdução à compilação. Elsevier, 2008. COMPLEMENTAR SETHI, R. Compilers: Principles, techniques and tools. Addison-Wesley COOPER, K. Engineering a Compiler. Morgan Kaufmann APPEL, A.w. Modern Compiler Implementation in Java. Cambridge University Press