Informa??es da Disciplina

 Preparar para impressão 
Júpiter - Sistema de Graduação

Instituto de Ciências Matemáticas e de Computação
 
Ciências de Computação
 
Disciplina: SCC0217 - Linguagens de Programação e Compiladores
Programming Language and Compilers

Créditos Aula: 4
Créditos Trabalho: 2
Carga Horária Total: 120 h
Tipo: Semestral
Ativação: 01/01/2017 Desativação:

Objetivos
Dar ao aluno as noções básicas sobre linguagens de programação e técnicas de construção de compiladores para linguagens de programação de alto nível.
 
To present the students theory and techniques of compiler construction.
 
 
Programa Resumido
Conceitos básicos sobre linguagens de programação. Introdução à compilação e às etapas de análise léxica, análise sintática, análise semântica e geração de código. Implementação de um compilador para uma linguagem simples.
 
Basic concepts of programming languages. Introduction to Compiling and to the phases of compilation: Lexical analysis, Top-down and bottom-up parsing techniques. Semantic analysis and table symbols. Code generation. Implementation of a compiler for a simple imperative language.
 
 
Programa
Introdução às linguagens de programação - evolução das linguagens, paradigmas, estruturas de programação, tipos de dados, níveis de descrição das linguagens. Conceitos básicos de compilação - compiladores e programas correlatos (interpretadores, pré-processadores, carregadores, etc.), compilação em um e em vários passos, tipos de compiladores (cruzado, auto-compilável, etc). Análise léxica. Análise sintática ascendente e descendente. Análise semântica e tabela de símbolos. Tratamento de erros léxicos, sintáticos e semânticos. Noções de geração de código intermediário e otimização. Geração de código objeto. Definição de uma linguagem e implementação de um compilador para uma máquina hipotética.
 
Introduction to Programming languages - languages evolution, paradigms, programming methods, data types. Basic Concepts of compilation: compilers and related programs (interpreters, pre-processing tools, loaders, etc.), one-pass and multi-pass compilers, types of compilation (bootstrapping, cross-compiling, etc.) and compiler compilers. Lexical analysis and techniques for implementing scanners based on finite automata, compiler compilers and ad hoc. Syntactic analysis: top-down and bottom-up and implementation of Predictive Parsers using manual techniques and automatic generators. Semantic analysis and table symbols. Lexical, Syntactical and Semantic error recovery and notification. Concepts of intermediary code generation and optimization. Object code generation. Definition of a simple imperative language and implementation of a compiler for a hypothetical machine.
 
 
Avaliação
     
Método
Aulas expositivas, orientação ao projeto, provas.
Critério
Projeto e provas.
Norma de Recuperação
Critério de Aprovação: NP+(Mrec/2,5), se Mrec >=7,5; ou Max {NP,Mrec}, se Mrec < 5,0;
ou 5,0, se 5,0 <= Mrec < 7,5.( NP=1ª avaliação, Mrec=prova)
 
Bibliografia
     
Bibliografia Básica:
- AHO, A.V.; SETHI, R. and ULLMAN, J.D. Compilers, Principles, Techniques, and Tools, Addison-Wesley Pub. Company, 1986.
- LOUDEN, KENNETH C - Compiladores: princípios e práticas, Editora Thomson Learning. 2004.
- AHO, A.V.; ULLMAN, J.D. Principles of Compiler Design, Reading, Addison-Wesley Pub. Company, 1977.
- SEBESTA, R. W. Concepts of Programming Languages. Addison-Wesley. 2010.

Bibliografia Complementar:
- KOWALTOWSKY, T. Implementação de Linguagens de Programação, São Paulo, Guanabara Dois, 1983.
- NETO, JOSÉ J. Introdução à Compilação, Rio de Janeiro, Livros Técnicos Científicos, 1987.
- SETZER, VALDEMAR W.; MELO, INÊS S.H. de A Construção de um Compilador, Editora Campus, 1983.
- WIRTH, N. Algorithms and Data Structures, Englewood Cliffs; Prentice-Hall, 1986.
- PAULO FERNANDO BLAUTH MENEZES, Linguagens Formais e Autômatos, Série Livros Didáticos. Instituto de Informática da UFRGS. (3 Edição). ISBN 85-241-0554-2.
- PRICE, A.M.A e TOSCANI, S.S. Implementação de Linguagens de Programação, Compilador, Editora Sagra Luzzatto. 2001.
 

Clique para consultar os requisitos para SCC0217

Clique para consultar o oferecimento para SCC0217

Créditos | Fale conosco
© 1999 - 2020 - Superintendência de Tecnologia da Informação/USP