Processamento de Linguagens I

Ano Lectivo: 05/06 (2º semestre)

Departamento de Informática / Escola de Engenharia

Universidade do Minho


AVISOS (*ver novidades*)


Apresentação

Cursos a que é leccionada:

Engenharia de Sistemas e Informática -- 3º ano ()
Matemática e Ciências da Computação -- 3º ano ()
Escolaridade:

2 + 2 + 0
Responsável:

Pedro Rangel Henriques
Equipe Docente:
Pedro Rangel Henriques [prh@di.uminho.pt] (1 + 1 + 0)
José João Dias de Almeida [jj@di.uminho.pt] (0 + 2 + 0)
Tiago Alves [tiago.alves@di.uminho.pt] (0 + 1 + 0)
Daniela da Cruz [danieladacruz@di.uminho.pt] (0 + 1 + 0)

Obs: é indicado o número de turmas de cada tipo de aula que cada docente lecciona.
Estrutura de Funcionamento:

Exposição da matéria fundamental ---motivação, conceitos, definições, métodos e justificações--- a nível das aulas teóricas.
Resolução dos exercícios de consolidação, no quadro e no computador, a nível das aulas teórico-práticas.
Realização, no computador, de trabalhos concretos de aplicação, em ambiente Linux, recorrendo às ferramentas flex/yacc e à linguagem C, e LISA e à linguagem Java; os trabalhos serão desenvolvidos extra aulas.
Objectivos:

Os objectivos fundamentais deste curso são:


Avaliação

Critério:

A Avaliação tem uma componente teórica e uma componente prática ambas obrigatórias.
De acordo com o regulamento actualmente em vigor na UM, 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 (um aluno só poderá fazer melhoria na época de recurso):
A nota prática será obtida através da realização de 2 trabalhos práticos que envolverão o desenvolvimento completo de um processador para uma linguagem específica, compreendendo a análise do enunciado concreto, o planeamento da resolução e a sua implementação em computador. O 1º trabalho usará a técnica TDS e o 2º seguirá a abordagem TDSem.
O trabalho será realizado ao longo do semestre, extra-aulas e em grupo de 2 ou 3 alunos, sendo apresentado ao docente, para ser discutido em frente ao computador, acompanhado dum relatório sucinto, em datas a combinar com os alunos. Recorda-se que é obrigatória a presença de todos os elementos do grupo aquando da apresentação ao docente.

Cada Trabalho Prático será classificado de acordo com os seguintes escalões:

Escalão
Nota
Não Entregue
0
Não Satisfaz
7
Satisfaz no Mínimo
10
Satisfaz
13
Bom
16
Muito Bom
19

A nota final será determinada de acordo com a seguinte fórmula:

NotaFinal = NotaTeorica * 0.60 + NotaPratica * 0.40
Exige-se 8 valores como nota mínima em cada uma das partes.

Trabalhos Práticos

Para fazer o download do enunciado dos Trabalhos Práticos propostos, clique abaixo: Para aceder (e eventualmente fazer o download) ao enunciado dos Trabalhos Práticos propostos no ano anterior, clique abaixo:

Exames

Para fazer o download (do ficheiro PDF) do enunciado dos Exames de anos anteriores, clique abaixo:

Pautas com as Notas das várias provas de avaliação da disciplina


Conteúdo Programático

Programa detalhado:

I. Introdução ao Processamento de Linguagens:
II. Análise Léxica especificada via Gramáticas Regulares (GR); Autómatos Reactivos:
III. Análise Sintáctica especificada via Gramáticas Independentes de Contexto (GIC):
IV. Análise Semântica e Transformação (reacção) especificada via Gramáticas Tradutoras (GT) ---Tradução Dirigida pela Sintaxe:
V. Análise Semântica e Transformação (reacção) especificada via Gramáticas de Atributos (GAs) ---Tradução Dirigida pela Semântica:


Bibliografia

Material bibliográfico proposto para apoio ao curso:

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, "Linguagens", Notas Pedagógicas, Univ. do Minho, 1990
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", HarperCollin College Publishers, 1993
8.Andrew W. Appel, "Modern Compiler Implementation in Java", Cambridge University Press, 1997
9. Andrew W. Appel, "Modern Compiler Implementation in C", Cambridge University Press, 1997
10. Andrew W. Appel, "Modern Compiler Implementation in ML", Cambridge University Press, 1997
11.M353 Programming and Programming Languages, "Unit 13: Compiling -- volume I", The Open University, 1994
12. M353 Programming and Programming Languages, "Unit 14: Compiling -- volume II", The Open University, 1994
13. M353 Programming and Programming Languages, "Unit 15: Compiling -- volume III", The Open University, 1994
14. B. Teufel & S. Schmidt & T. Teufel, "C2 Compiler Concepts"}, Springer-Verlag, 1993
15. R. Hunter, "Compiladores: sua concepção e programação em Pascal", Editorial Presença, Colecção Sistemas, 1986
16. J.R. Levine & T. Mason & D. Brown, "Lex & Yacc", Ed. Dale Dougherty, O'Reilly & Associates Inc., 1992
17. Manuais das ferramentas flex e yacc
18. Manuais da ferramenta LISA


Notas Pedagógicas e Material de Apoio Diverso

De momento e para além do material bibliográfico recomendado, encontram-se disponíveis os seguintes elementos e a seguinte documentação diversa de apoio:


Fichas de Exercícios para as Aulas Teórico-Práticas

Para fazer o download do enunciado das Fichas propostas para cada aula, clique abaixo:


Avisos Importantes

(2006.08.08)
As notas práticas e os resultados dos exames da 1ª e 2ª Época estão disponíveis em: notas exames 2
(2006.07.20)
As notas práticas e os resultados dos exames da 1ª e 2ª chamada estão disponíveis em: notas exames 1
(2006.06.13)
Já estão disponiveis nesta página (rubrica Pautas com as Notas (TPs e Exames)) as Notas do TP2.
(2006.06.04)
A discussão com cada grupo para avaliação do 2º Trabalho Prático está marcada para os dias 06 (3ºfeira) e 08 (5ªfeira) de Junho das 09h00-20h00 no Laboratório DI-0.03; O Tiago Alves colocou a folha para marcação dos grupos, na Recepção do DI, onde estará disponível até ao fim da tarde de 2ªfeira.
(2006.05.14)
foi criado um novo link nesta página, na rubrica "Notas Pedagógicas e Material de Apoio Diverso".
(2006.05.08)
Já estão disponiveis nesta página (rubrica Pautas com as Notas (TPs e Exames)) as Notas do TP1.
(2006.05.08)
AULA LABORATORIAL EXTRA para LESI+LMCC: dia 10.maio.2006, das 14h as 18h, no Lab. DI 1.09
(2006.05.02)
Informa-se que após vários pedidos e alguma reflexão foi decidido congelar as notas dos Trabalhos Práticos do ano passado.
Os alunos interessados nesta facilidade (não recomendada) devem avisar os docentes nas aulas e na data do exame!
(2006.04.12)
Relativamente à possibilidade de mudar os Turnos TP da LESI (2ªf) para outro dia em que haja Lab disponível, foi decidido:
não alterar nada e manter as aulas nas salas e horas habituais; sempre que a matéria seja mais prática e convenha recorrer a um Lab, o Tiago Alves dará uma aula prática extra à 4ªf à tarde.
(2006.04.12)
A discussão com cada grupo e avaliação do 1º Trabalho Prático está marcada para os dias 27 e 28 de Abril; O Tiago Alves colocará uma folha para marcação dos grupos, na Recepção do DI, indicando local e horas.
(2006.03.24)
Já está disponível o enunciado do 1º Trabalho Prático, que terá de estar pronto e ser submetido até ao dia 26 de Abril.
(2006.03.24)
Os sumários das Teóricas e Teórico-Práticas já estão acessiveis e serão actualizados semanalmente.
(2006.03.21)
AULA LABORATORIAL EXTRA para LESI+LMCC: dia 29.março.2006, das 14h as 18h, no Lab. DI 1.09


author: prh@di.uminho.pt;
Last modified: 08 de Agosto de 2006