Informações da Disciplina

 Preparar para impressão 

Júpiter - Sistema de Gestão Acadêmica da Pró-Reitoria de Graduação


Escola Politécnica
 
Engenharia de Comp e Sist Digitais
 
Disciplina: PCS2508 - Linguagens e Compiladores
Languages and Compilers

Créditos Aula: 4
Créditos Trabalho: 0
Carga Horária Total: 60 h
Tipo: Semestral
Ativação: 01/01/2003 Desativação: 30/01/2023

Objetivos
Familiarização com os conceitos de linguagens de programação de alto nível e seus processadores. Técnicas de especificação, projeto, simulação, análise e implementação de componentes de compiladores para linguagens de alto nível imperativas.
 
Programa Resumido
Tópicos teóricos: Conceitos de linguagens de programação e seus processadores. Paradigmas. Componentes, itens léxicos e sintáticos. Semântica. Análise léxica. Meta-linguagens. Especificação formal da sintaxe de linguagens de programação. Análise sintática. Gramáticas e autômatos de pilha estruturados. Obtenção de reconhecedores. Métodos descendentes e ascendentes. Estruturas de controle. Ambientes de execução. Linguagens intermediárias. Código-objeto. Bibliotecas. Análise semântica e geração de código. Estruturas de dados. Tipos de dados. Declarações, manipulação de dados. Seleções, operações, expressões, atribuições, declaração e chamadas de funções e procedimentos. Parâmetros e argumentos. Conceitos de recuperação de erros e de otimização de código. Geração automática de analisadores léxico e sintático.
 
Programa
Tópicos teóricos: Conceitos de linguagens de programação e seus processadores. Paradigmas. Componentes, itens léxicos e sintáticos. Semântica. Análise léxica. Meta-linguagens. Especificação formal da sintaxe de linguagens de programação. Análise sintática. Gramáticas e autômatos de pilha estruturados. Obtenção de reconhecedores. Métodos descendentes e ascendentes. Estruturas de controle. Ambientes de execução. Linguagens intermediárias. Código-objeto. Bibliotecas. Análise semântica e geração de código. Estruturas de dados. Tipos de dados. Declarações, manipulação de dados. Seleções, operações, expressões, atribuições, declaração e chamadas de funções e procedimentos. Parâmetros e argumentos. Conceitos de recuperação de erros e de otimização de código. Geração automática de analisadores léxico e sintático.Tópicos de projeto: Especificação formal de uma linguagem de alto nível. Construção de um analisador léxico para a linguagem especificada. Construção de um reconhecedor sintático para a linguagem especificada. Implementação de rotinas de geração de código e ambiente de execução.                                                                                                                                                                                                Syllabus - PCS2508   Languages and Compilers                                                                                                                                   Theory:Concepts of programming languages and their processors. Paradigms. Components. Lexical and syntactical items. Semantics. Lexical analysis. Meta-languages. Formal specification of programming language syntax. Parsing. Grammars and structured pushdown automata. Construction of language acceptors. Top-down and bottom-up analysis. Control structures. Run-time environments. Intermediate languages. Object code.Libraries. Semantic Analysis and code generation. Data structures. Data types. Declarations and data  manipulation. Selections, operations, expressions, assignments. Declaration and calls of functions and procedures. Parameters and arguments. Error recovery. Code optimization. Automatic generation of scanners and parxers.Project topics:Formal specification of a high level language. Implementation of a scanner for the language. Implementation of a parser for the language. Implementation of code generation routines. Implementation of the run-time environment.
 
Avaliação
     
Método
Participação nas aulas, realização das atividades desenvolvidas em classe, desenvolvimento de exercícios e projetos fora de classe. Provas.
Critério
A = (P1 + 2*P2 + E) / 4 onde: P1, P2: são provas, e E: é o conceito relativo ao desempenho em atividades práticas, incluindo o projeto e os trabalhos desenvolvidos em classe. OBS: Para haver aprovação é necessário que o projeto esteja completamente desenvolvido, documentado e operante.
Norma de Recuperação
Normas aprovadas pelo departamento.
 
Bibliografia
     
- João J. Neto. Introdução à Compilação. LTC, 1987.- Sebesta. Concepts of Programming Languages. Addison Wesley, 1996.- Slonneger & Kurtz. Formal Syntax and Semantics of Programming Languages - A Laboratory Based Approach. Addison Wesley, 1995.- Aho, Sehti & Ullman. Compilers Principles, Techniques and Tools. Addison Wesley, 1986.- Tremblay & Sorenson. The Theory and Practice of Compiler Writing. McGraw-Hill, 1985.- Holub. Compiler Design in C. Prentice Hall, 1990.- Wirth. Compiler Construction. Addison Wesley, 1995.
 

Clique para consultar os requisitos para PCS2508

Clique para consultar o oferecimento para PCS2508

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