Linguagens de Programação
Cronograma da disciplina para o semestre 2026.2. Os materiais serão adicionados ao longo do semestre.
As aulas e os materiais da disciplina serão adicionados ao longo do semestre.
- Sem aula
docente indisponível
Apresentação do plano didático; por que estudar linguagens; domínios, critérios e categorias; evolução das principais linguagens e paradigmas de programação (Sebesta, caps. 1-2)
Descrição formal de sintaxe: BNF, EBNF, gramáticas e árvores de derivação (Sebesta, cap. 3.1-3.3)
Gramáticas de atributos; semântica estática e dinâmica (Sebesta, cap. 3.4-3.5)
Análise léxica e sintática; etapas de compilação e ambientes de programação (Sebesta, cap. 4 e seções 1.7-1.8)
Nomes, variáveis, vinculações, escopo e tempo de vida (Sebesta, cap. 5)
Tipos de dados, verificação de tipos, tipagem forte e equivalência (Sebesta, cap. 6)
Expressões, conversões de tipo e instruções de atribuição (Sebesta, cap. 7)
Estruturas de controle: seleção, iteração e comandos protegidos (Sebesta, cap. 8)
- Sem aula
feriado nacional da Independência do Brasil
Subprogramas: ambientes locais, passagem de parâmetros, funções, closures e implementação (Sebesta, caps. 9-10)
Tipos abstratos de dados, encapsulamento e fundamentos de orientação a objetos (Sebesta, caps. 11-12)
Herança, composição, polimorfismo e tratamento de exceções (Sebesta, caps. 12 e 14.1-14.4)
Funções matemáticas, cálculo lambda e fundamentos do paradigma funcional (Sebesta, cap. 15.1-15.3)
Lisp e introdução a Scheme (Sebesta, cap. 15.4-15.5)
Prática em Scheme: recursão e processamento de listas (Sebesta, cap. 15.5)
Funções de ordem superior: map, filter e reduce (Sebesta, cap. 15.5-15.6)
ML e casamento de padrões (Sebesta, cap. 15.7)
Haskell: sistema de tipos e list comprehensions (Sebesta, cap. 15.8)
- Sem aula
feriado nacional de Nossa Senhora Aparecida
Haskell: funções de ordem superior e avaliação preguiçosa; visão geral de F# (Sebesta, cap. 15.8-15.9)
Semana de Ciência e Tecnologia - atividade orientada, sem avaliação: suporte funcional em linguagens imperativas (Sebesta, cap. 15.10)
Semana de Ciência e Tecnologia - seminário comparativo, sem avaliação: paradigmas funcional e imperativo (Sebesta, cap. 15.11)
Laboratório funcional integrador: funções de ordem superior, padrões e avaliação preguiçosa (Sebesta, cap. 15)
Sentenças lógicas, cálculo de predicados, prova de teoremas e unificação (Sebesta, cap. 16.1-16.4)
- Sem aula
feriado nacional de Finados
Prolog: origens, elementos básicos, limitações e aplicações (Sebesta, cap. 16.5-16.8)
Programação orientada a eventos: callbacks e tratamento de eventos (Sebesta, cap. 14.5-14.7)
Promises e programação assíncrona (Unidade 6 do plano de ensino; leitura complementar)
Fundamentos de concorrência, paralelismo e concorrência em nível de subprogramas (Sebesta, cap. 13.1-13.2)
- Sem aula
feriado nacional do Dia de Zumbi e da Consciência Negra
Threads, semáforos e monitores (Sebesta, cap. 13.3-13.4 e 13.7-13.8)
Corrotinas e passagem de mensagens (Sebesta, cap. 9.13 e 13.5)
Concorrência em linguagens funcionais, paralelismo em nível de instrução e computação distribuída (Sebesta, cap. 13.9-13.10; leitura complementar)
Seminário integrador: comparação crítica de paradigmas e linguagens com os critérios do cap. 1
Síntese da disciplina, revisão final, devolutiva de atividades e encerramento do semestre
- Exames especiais
sem aulas regulares; eventual exame da disciplina em data e horário a confirmar
- Atividade avaliativa
Exame 1 - unidades 1 a 3 (20 pontos)
- Atividade avaliativa
Exame 2 - unidade 4, programação funcional (20 pontos)
- Atividade avaliativa
Exame 3 - unidades 5 e 6, lógica, eventos e concorrência (20 pontos)
- Atividade avaliativa
Exercícios curtos - 15 atividades de 2 pontos (30 pontos no total)
- Atividade avaliativa
TP 1 - miniatividade prática guiada de programação funcional/lógica (5 pontos)
- Atividade avaliativa
TP 2 - miniatividade prática guiada de eventos/concorrência (5 pontos)