1.
Programa (Formato
word, Formato html)
2. Horário de atendimento 4ª-Feira 14h – 18h
(gab. 96)
3. Apontamentos
2. Sebenta
Prática
1. Sem resolução dos exercícios
2. Com
resolução de exercícios (disponível durante o semestre)
3. Acetatos das aulas teóricas
4. Enunciados
dos trabalhos práticos de 2003 (formato
ps ou formato pdf)
1. Template
LATEX para quem quiser entregar o relatório em Latex.
2. Template
JAVA usado nos trabalhos nº1 e nº2.
3. Informações sobre GraphVis
usado no trabalho nº5
5. Enunciados
dos trabalhos práticos de 2004 (formato
pdf)
1. Template
LATEX para quem quiser entregar o relatório em Latex.
2. Informações sobre GraphVis
usado no trabalho nº4
6. Enunciados
dos trabalhos práticos de 2005 (formato
pdf)
1. Template
LATEX para quem quiser entregar o relatório em Latex.
2. Informações sobre GraphVis
usado no trabalho nº4
3. Template
LATEX usado no trabalho nº3
Cursos a que é leccionada:
Engenharia Informática -- 2º ano
Escolaridade:
2 + 0 + 2
Responsável:
Maria João Varanda
Estrutura de Funcionamento:
Aulas Teóricas - Exposição da matéria fundamental ---motivação, conceitos,
definições, métodos e justificações.
Aulas Práticas - Resolução dos exercícios de
consolidação, no quadro e no computador.
Trabalhos extra aulas - Realização, no
computador, de trabalhos concretos de aplicação,
Objectivos:
Os objectivos fundamentais deste curso são:
·
Introduzir
a noção de linguagem e caracterizar o conceito de processamento de
linguagens formais, estabelecendo os objectivos, as tarefas dum
processador, as exigências que lhe são impostas e as técnicas de
desenvolvimento (face às restrições e à complexidade do problema);
·
Apresentar
os conceitos de gramática e de autómato e a sua aplicação ao
desenvolvimento de Processadores de Linguagens (PL's).
·
Introduzir
formalismos para especificação da sintaxe e da semântica das linguagens e
estudar a implementação dos analisadores que se podem derivar desses
formalismos.
·
Tornar
os alunos aptos a desenvolver Processadores de Linguagens segundo os métodos da
Tradução Dirigida pela Sintaxe (TDS) e da Tradução Dirigida pela
Semântica (TDSem), recorrendo ao uso de
ferramentas para geração automática dos ditos Processadores.
A Avaliação, na época normal, tem uma componente teórica e uma componente prática.
A nota teórica será obtida através da realização de 1 prova individual escrita. Essa prova tem as instâncias a seguir indicadas:
Exame, realizado na 1ª chamada da época normal, no fim do semestre
Exame, realizado na 2ª chamada da época normal, no fim do semestre
A nota prática será obtida através da realização (em grupo e extra aulas) de 1 trabalho prático que envolverá o desenvolvimento completo (por fases) de um processador de uma linguagem específica a enunciar. Assim, os grupos terão de mostrar e discutir o funcionamento do programa que deve ser acompanhado pelo respectivo relatório de desenvolvimento e resultados obtidos, o qual será classificado nos seguintes escalões:
Escalão |
Nota |
Não entregue |
0 |
Não Satisfaz |
1 – 7 |
Satisfaz no Mínimo |
8 – 10 |
Satisfaz |
11 – 13 |
Bom |
14 – 16 |
Muito Bom |
17 – 20 |
A nota final será determinada de acordo com a seguinte fórmula:
NotaFinal = NotaTeorica * 0.70 + NotaPratica * 0.30
Exige-se 7,5 valores como nota mínima na parte teórica.
A nota final será obtida apenas, através da realização de 1 prova individual escrita que será realizada na época respectiva.
I. Introdução ao Processamento de Linguagens:
·
I.1
Introdução dos conceitos de Linguagem e Gramática
·
I.2
Caracterização de Processador de Linguagens: objectivos; tarefas; requisitos
II. Análise Léxica especificada via
Gramáticas Regulares (GR); Autómatos Reactivos:
·
II.1 Uso
do Gerador lex
III. Análise Sintáctica especificada via Gramáticas Independentes de
Contexto (GIC):
·
III.1 Parsing Top-Down: Recursivo-descendente
(RD) e LL(1)
·
III.2 Parsing Bottom-Up: LR(0), SLR(1),
LALR(1)}
IV. Análise Semântica e Transformação (reacção) especificada via Gramáticas Tradutoras (GT) ---Tradução Dirigida pela
Sintaxe:
·
IV.1 Uso
do Gerador yacc
V. Análise Semântica e Transformação (reacção) especificada via Gramáticas de Atributos (GAs)
---Tradução Dirigida pela Semântica:
·
V.1 Uso
do Gerador Lisa
1.
J. A. Saraiva, "Especificação e Processamento de Linguagens",
versão 1.0, Textos Pedagógicos, Univ. do Minho, 1995
2.
R. G. Crespo, "Processadores de Linguagens: da concepção à
implementação", IST-Press, 1998
3.
J.J. Almeida & J.B.Barros & Pedro Henriques, "LEX", Notas
Pedagógicas, Univ. do Minho,
1991
4.
J.J. Almeida & F.J. Ferreira, "YACC", Notas Pedagógicas, Univ. do Minho, 1991
5.
Aho & Sethi & Ullman,
"Compiler Principles, Techniques and Tools", Addison-Wesley, 1986
6.
Pittman & Peters,
"The Art of Compiler Design: theory and pratice",
Prentice-Hall, 1992
7.
Waite & Carter, "An
Introduction to Compiler Construction",
8.
Andrew W. Appel, "Modern Compiler Implementation in Java",
9.
Andrew W. Appel, "Modern Compiler Implementation in C",
10.
B. Teufel
& S. Schmidt & T. Teufel, "C2 Compiler
Concepts", Springer-Verlag, 1993
11.
R. Hunter, "Compiladores: sua concepção
e programação em Pascal", Editorial Presença, Colecção Sistemas, 1986
12.
J.R. Levine & T. Mason
& D. Brown, "Lex & Yacc",
Ed. Dale Dougherty, O'Reilly & Associates Inc., 1992
13.
Manuais das ferramentas flex e yacc
14.
Manuais da ferramenta Lisa
author: mjoao@di.uminho.pt;
Last modified: 10 de Março de 2002