Material das Aulas:
- Aula 00 - Apresentação da Disciplina
- Aula 01 - Introdução
- Aula 02 - Classificação e Paradigmas de Linguagens de Programação
- Aula 03 - Processo de Compilação
- Aula 04 - Sintaxe e Semântica
- Aula 05 - Análise Léxica (Implementação)
- Aula 06 - Análise Sintática (Implementação)
- Aula 07 - Nomes, Vinculações, Escopos e Tipos de Dados
- Aula 08 - Programação Lógica (Prolog)
- Aula 09 - Programação Funcional (Haskell)
Listas de Exercícios:
- Lista de Exercícios 01
- Lista de Exercícios 02 (Data de Entrega: 23/09)
- Lista de Exercícios 03 (Data de Entrega: 15/10)
- Lista de Exercícios 04 (Data de Entrega: 22/10)
- Lista de Exercícios 05 (Revisão P1)
- Lista de Exercícios 06 (Data de Entrega: 26/11)
- Lista de Exercícios 07 (Data de Entrega: 11/01)
Datas Importantes:
- 10/09: Entrega e Apresentação do Trabalho 1
- 26/10: Prova Terórica (P1)
- 14/01: Prova Terórica (P2)
- 21/01: Prova Final
Notas:
- Notas (Atualizado em: 22/01)
Programa do Curso:
- Parte 1 – Introdução a Linguagens de Programação
- Conceitos de Linguagens de Programação;
- Domínios de Programação;
- Critérios de Avaliação de Linguagens de Programação;
- Histórico da Evolução das Linguagens de Programação;
- Categorias e Classificação de Linguagens de Programação;
- Parte 2 – Paradigmas de Linguagens de Programação
- Paradigma Imperativo (Linguagens Procedurais e Orientadas a Objeto);
- Paradigma Funcional;
- Paradigma Lógico;
- Vantagens e Desvantagens;
- Parte 3 – Sintaxe e Semântica
- Processo de Compilação;
- Descrição Léxica;
- Descrição Sintática;
- Métodos Formais;
- Descrição Semântica;
- Parte 4 – Tipos de Dados
- Definição de dados;
- Representação Interna;
- Escopo de Definições;
- Bindings;
- Parte 5 – Linguagens de Programação Lógicas
- Apresentação de uma linguagem lógica;
- Definição de predicados;
- Resolução de problemas e aplicações usando programação lógica;
- Análise de independência e reusabilidade de programas lógicos;
- Parte 6 – Linguagens de Programação Funcionais
- Apresentação de uma linguagem funcional;
- Funções como valores de primeira ordem;
- Recursão simples e recursão de cauda usando programação funcional;
- Resolução de problemas e aplicações usando programação funcional;
- Análise da independência e reusabilidade de programas funcionais.
Bibliografia:
Sebesta, Robert W. Conceitos de Linguagens de Programação. Editora Bookman, 2011.
Watt, D. Programming Language Design Concepts. John Wiley and Sons, 2004.
Mitchell, J. Foundations for Programming Languages. MIT Press, 1996.