A disciplina de Linguagens de Programação apresenta os recursos teóricos para descrição da sintaxe das linguagens em seguida utiliza tais formalismos para descrever a evolução das técnicas de Programação de alto nível, tanto em nível geral de aplicação quanto no formato dos seus elementos básicos. Ao final da disciplina o aluno estará preparado para aprofundar seus conhecimentos de compilação e analisar qual a melhor linguagem ou ambiente para a resolução de um dado problema.
Esta disciplina tem como objetivo fornecer o instrumental teórico necessário para que os alunos possam analisar as principais características das linguagens de programação modernas. A primeira parte consiste nos formalismos usados para descrever os elementos básicos de uma linguagem de programação. A segunda parte admite uma visão de mais alto nível, descrevendo os principais elementos estruturais. Ao final, espera-se que o aluno seja capaz de analisar criticamente uma linguagem, dado o contexto de utilização. Dada a necessidade de adaptação da disciplina para a modalidade remota, adotamos os seguintes métodos:
O horário dos encontros será definido com a turma.
Os alunos são avaliados por atividades escritas. As atividades são liberadas semanalmente. A frequência da semana será dada pela entrega da atividade. A cada 3 ou 4 atividades, uma nota é definida. Ao total, temos três notas (ou três conjuntos de atividades), valendo de 0 a 10. Um trabalho de implementação extra valerá como uma quarta nota. Ao final, a média será definida pela média aritmética das três maiores notas.
| Data | Assunto | Comentários | Vídeos | Atividades | Notas | 
|---|---|---|---|---|---|
| 30/07/2020 | Introdução | Apresentação da Disciplina, Avaliações, Material Didático. | 1ª Nota: Introdução, Sintaxe e Semântica | ||
| 06/07/2020 | Conceitos de Linguagens de Programação | Domínios, Critérios de Avaliação e Categorias. | |||
| 07/07/2020 | Evolução das Linguagens de Programação | Origens, Fortran até Algol | |||
| 13/07/2020 | Evolução das Linguagens de Programação | Linguagens Modernas | Atividade 01 | ||
| 14/07/2020 | Descrevendo Sintaxe e Semântica | Problema Geral e Métodos Formais | |||
| 20/07/2020 | Descrevendo Sintaxe e Semântica | Gramáticas de Atributos, Semântica Operacional e Denotacional | Linguagens de Programação 16/03/2020 | Atividade 02 | |
| 21/07/2020 | Descrevendo Sintaxe e Semântica | Exercício de Semântica Operacional e Denotacional | Linguagens de Programação 17/03/2020 | ||
| 27/07/2020 | Descrevendo Sintaxe e Semântica | Mais um Exemplo de Semântica Denotacional | Exemplos de Semântica Denotacional | Atividade 03 | |
| 28/07/2020 | Descrevendo Sintaxe e Semântica | Semântica axiomática e definição de laços | Linguagens de Programação 23/03/2020 | ||
| 03/08/2020 | Descrevendo Sintaxe e Semântica | Finalização de semântica axiomática | Linguagens de Programação 24/03/2020 | Atividade 04 | |
| 04/08/2020 | Análise Léxica e Sintática | Análise Léxica | Linguagens de Programação 30/03/2020 | ||
| 10/08/2020 | Análise Léxica e Sintática | Análise Sintática Descendente Recursiva | Linguagens de Programação 31/03/2020 | Atividade 05 | |
| 11/08/2020 | Análise Léxica e Sintática | Análise Ascendente | Linguagens de Programação 06/04/2020 | ||
| 17/08/2020 | Nomes, Escopos e Vinculação | Nomes, Variáveis e o Conceito de Vinculação | Linguagens de Programação 07/04/2020 | Atividade 06 | 2ª Nota: Tipos de Dados e Expressões | 
| 18/08/2020 | Nomes, Escopos e Vinculação | Escopo, Tempo de Vida e Ambientes de Referência | Linguagens de Programação 13/04/2020 | ||
| 24/08/2020 | Tipos de Dados | Tipos de Dados Primitivos | Linguagens de Programação 14/04/2020 | Atividade 07 | |
| 25/08/2020 | Tipos de Dados | Enumerações, Introdução a Arrays Lineares e Arrays Associativos | Linguagens de Programação 20/04/2020 | ||
| 31/08/2020 | Tipos de Dados | Finalização de Matrizes | Linguagens de Programação 27/04/2020 | Atividade 08 | |
| 01/09/2020 | Tipos de Dados | Matrizes Associativas | Linguagens de Programação 28/04/2020 | ||
| 07/09/2020 | Tipos de Dados | Registros, Tuplas, Listas | Linguagens de Programação 04/05/2020 | Atividade 09 | |
| 08/09/2020 | Tipos de Dados | Uniões | Linguagens de Programação 05/05/2020 | ||
| 14/09/2020 | Tipos de Dados | Ponteiros e Referências | Linguagens de Programação 11/05/2020 | Atividade 10 | |
| 15/09/2020 | Tipos de Dados | Verificação de Tipos | Linguagens de Programação 09/09/2020 | ||
| 21/09/2020 | Expressões e Atribuições | Expressões Aritméticas, Sobrecarga, Conversão | Linguagens de Programação 21/09/2020 | Atividade 11 | |
| 22/09/2020 | Expressões e Atribuições | Expressões Booleanas, Sentenças de Atribuição | Linguagens de Programação 22/09/2020 | ||
| 28/09/2020 | Estruturas de Controle | Sentenças de Seleção e Iteração | Linguagens de Programação 28/09/2020 | Atividade 12 | 3ª Nota: Estruturas de Controle e Subprogramas | 
| 29/09/2020 | Estruturas de Controle | Desvios Incondicionais | Linguagens de Programação 29/09/2020 | ||
| 05/10/2020 | Subprogramas | Fundamentos e Questões de Projeto | Linguagens de Programação 05/10/2020 | Atividade 13 | |
| 06/10/2020 | Subprogramas | Referências e Passagem de Parâmetro | Linguagens de Programação 06/10/2020 | ||
| 12/10/2020 | Subprogramas | Funções, Sobrecarga e Genéricos | Linguagens de Programação 12/10/2020 | Atividade 14 | |
| 13/10/2020 | Implementando Subprogramas | Invocações e Retornos | Linguagens de Programação 13/10/2020 | ||
| 19/10/2020 | Implementando Subprogramas | O Uso de Pilhas para Variáveis Locais | Linguagens de Programação 19/10/2020 | Atividade 15 | |
| 20/10/2020 | Implementando Subprogramas | Exemplos | Linguagens de Programação 20/10/2020 |