Linguagens de Programação
Dia, Hora e Local
3as e 5as de 11-13h, Sala 22
Objetivo
O objetivo desta disciplina é apresentar conceitos fundamentais de linguagens de programação, os quais são importantíssimos para fundamentar um bom programador. De forma a absorver melhor o conhecimento apresentado, todos os paradigmas apresentados serão também requisitados de forma prática.
Pré-requisito
Programação de Computadores II
Tópicos
- O quê? Por quê? Como? Quando? Onde?
- Apresentação dos tópicos, critérios de avaliação, presença
- Histórico
- Gramáticas e BNF
- Tipos de Análise
- Semântica Formal
- Esquemas de Tradução (Compilação, Interpretação, ...)
- Nomes, Escopos e Tempo de Amarração
- Tipos de Alocação
- Tipos de Dados
- Coleta de Lixo
- Controle de Fluxo
- Continuações
- Subrotinas e Passagem de Parâmetros
- Sobrecarga de Procedimentos, Módulos Genéricos
- Corotinas
- TAD
- Orientação a Objetos (Herança, Encapsulamento, Classe abstrata, Polimorfismo)
- Tratamento de Exceção
- Programação Funcional
- Programação Lógica (Backtracking, Resolução, Unificação e Listas)
- Programação em Linguagens de Script
- Concorrência
Bibliografia (disponível na biblioteca)
- Michael L. Scott, Programming Language Pragmatics, Morgan Kaufmann.
- Robert W. Sebesta, Concepts of Programming Language, Addison Wesley.
Avaliação
Média final = (Prova1 + Prova2 + Média-Trabalhos) / 3
Trabalhos
- Escolha 1 linguagem distinta (diferente dos colegas), entenda o funcionamento geral destas e apresente um exemplo de programa de cada.
- Implemente 1 biblioteca estática e 1 dinâmica e contenha as seguintes funções matemáticas: fatorial, arranjo e combinação.
Material
Provas Antigas