Scc-206(sandra)

De CoteiaWiki
Revisão de 19h32min de 13 de julho de 2010 por Mrb (discussão | contribs) (SCC0206 Introdução à Compilação - Turma A)

Universidade de São Paulo
Instituto de Ciências Matemáticas e de Computação


SCC0206 Introdução à Compilação - Turma A

Terça-feira, das 16:20h às 19:00h, sala 5101

Profa. Sandra Aluisio (sandra@icmc.usp.br)



QUADRO DE AVISOS: NOTAS FINAIS DAS 2 PROVAS e DOS 4 TRABALHOS no LINK NOTAS. REVISÃO DA P2 HOJE, dia 12/7, dia todo.

REC: 20/7 (terça) das 9:00 - 12:00, Sala: 3-012. Todos os conteúdos ministrados no curso serão cobrados na REC.



Para se prepararem para a 2a prova, leiam os capítulos sobre checagem de tipos e geração de código e façam exercícios de:


1) Aho, Lam, Sethi & Ullman. Compilers: Principles, Techniques, and Tools; 2nd Edition, Addison-Wesley Publishing Company, 2006 . (Dragãozinho Roxo em INGLÊS)

2) Kowaltowsky, T. - Implementação de Linguagens de Programação, Guanabara Dois, 1983.

A Seção 10 do Kowaltowsky deve ser lida, pois resume bem a abordagem de checagem de tipos e geração sendo seguida no curso.

Os slides de "Ambientes de Execução" até a página 34, foram dados no início do assunto Geração de Código. Assim, devem estudar os conceitos e o modo de operação de "Ambientes Totalmente Estáticos (Fortran)" de lá.

Já a parte de "Ambientes baseados em pilhas" eu dei com base na MEPA e no avanço pouco a pouco mostrando as implicações de cada característica: programas sem procs, procs sem parâmetros, procs com parâmetros passados por valor, procs com parâmetros passados por referência QUE exige reformulação das intruções introduzindo o display de níveis. E, por fim, vimos chamadas de funções.

Assim, para este tipo de ambientes (linguagens Pascal, C, por exemplo), vejam pelos slides MEPA e MEPA Implementação Completo.

Já para "Ambientes totalmente dinâmicos" eu só fiz comentários, que estão nos slides "Ambientes de Execução" a partir da página 84.

RESUMINDO, espera-se que saibam que há 3 formas de organizar a memória para rodar programas, e que isto depende das características das linguagens. Serão diferentes para linguagens como Fortran, Pascal e C, e LISP.




Notas da P1 em NOTAS --- REVISÃO: 22/6 (terça) no fim da aula (18:30 h) na sala de aula


Entrega do Trabalho 3 foi adiada para dia 11/6 (sexta) até as 18:00 h.


Notas do Projeto 2 na página de Notas. Notas do Projeto 1 saem na semana de 14/6

Para se prepararem para a prova
1) Price, A.M.A. e Toscani, S.S. (2001). Implementação de Linguagens de Programação: Compilador. Editora Sagra Luzzatto (capítulos 1, 2 e partes do capítulo 3 - 3.1, 3.2, 3.4)

2) Aho, Lam, Sethi & Ullman. Compilers: Principles, Techniques, and Tools; 2nd Edition, Addison-Wesley Publishing Company, 2006 . (Dragãozinho Roxo em INGLÊS)(capítulos 1, 2, 3, partes do capítulo 4: 4.1 a 4.4)

3) Kowaltowsky, T. - Implementação de Linguagens de Programação, Guanabara Dois, 1983. (capítulos 1, 2, 4, 5, 6, partes do capítulo 10: 10.1, 10.2 10.3)



Gramática em EBNF do PS com extensões está disponível no link Trabalhos Práticos. Observem que esta gramática NÃO é LL(1): há 2 pontos que precisam ser fatorados, um em <comando> e outro em <fator> para aqueles que estenderam a gramática com funções. Se tiverem dúvidas me procurem na minha sala ou mandem e-mail!

Material de Apoio para a Análise Semântica disponível no link Material Didático


Programa do Curso | Material Didático | Quem é Quem | Trabalhos Práticos e Listas | Notas


Voltar para SCC-206