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 |