Linguagens de Programação
Informações
Pré-requisito: Programação Orientada a Objetos
Ementa
Tipos de Dados, Expressões e Estruturas de Controle. Subprogramas. Tipo Abstratos de Dados. Paradigmas de Linguagens de Programação. Suporte a Programação Orientada a Objeto.
Objetivos
Ao final da disciplina o aluno deve:
- Distinguir os conceitos básicos de linguagens de programação, tais como: sintaxe, semântica, análise léxica e sintática;
- Entender os tipos de dados, expressões e estruturas de controle componentes das linguagens de programação;
- Compreender os paradigmas de linguagens de programação.
Sumário
- Conteúdo Programático
- 01. Aspectos preliminares
- 02. Evolução das LPs
- 03. Nomes, vinculações e escopos
- 04. Tipos de dados
- 05. Expressões e sentença de atribuição
- 06. Estruturas de controle no nı́vel de sentença
- 07. Subprogramas
- 08. Implementando subprogramas
- 09. Tipos abstratos de dados e construções encapsuladas
- 10. Suporte a programação orientada a objeto
- Referência Bibliográfica
Conteúdo Programático
01. Aspectos preliminares
Conteúdo
- Razões para estudar LPs
- Domínios
- Critérios para avaliação de linguagens
- Influências no projeto de linguagens
- Categorias de linguagens
- Métodos de implementação
Materiais
- Razões para estudar Linguagens de Programação (video)
- Critérios para Avaliação de Linguagens de Programação (video)
- Influências no Projeto de Linguagens e os Métodos de Implementação (video)
02. Evolução das LPs
Conteúdo
- História das LPs
03. Nomes, vinculações e escopos
Conteúdo
- Nomes
- Variáveis
- Vinculação
- Escopo estático
- Escopo dinâmico
- Tempo de vida
- Ambientes de referenciamento
Materiais
- Questões sobre a Semântica das Variáveis (video)
- Conceito Fundamental de Linguagens de Programação: Vinculação (video)
- Classificação das Variáveis Escalares (video)
04. Tipos de dados
Conteúdo
- Tipos primitivos
- Cadeia de caracteres
- Tipo ordinal definido pelo usuário
- Arranjos
- Registros
- Tuplas
- Listas
- Uniões
- Ponteiros e referências
- Verificação de tipos, tipificação forte e equivalência de tipos
Materiais
- Tipos Primitivos: sua Importância e os Principais Tipos (video)
- Tipo Ordinal: Enumerados e Subintervalos (video)
- Detalhando a Sintaxe e a Implementação dos Vetores, Matrizes e Hashs (video)
- Avaliando o projeto de Uniões, Registros, Listas e Tuplas (video)
- Ponteiros e Referências: Coletor de Lixo, Tombstones e Mark-Sweep (video)
- Verificação e Equivalência de Tipos (video)
05. Expressões e sentença de atribuição
Conteúdo
- Expressões aritméticas
- Sobrecarga de operadores
- Conversões de tipos
- Expressões relacionais e booleanas
- Avaliação em curto-circuito
- Sentenças de atribuição
- Atribuição em modo misto
06. Estruturas de controle no nı́vel de sentença
Conteúdo
- Estruturas de seleção
- Estruturas iterativas
- Saltos
- Comandos guardados
07. Subprogramas
Conteúdo
- Fundamentos
- Ambientes de referência local
- Métodos de passagens de parâmetros
- Parâmetros que são subprogramas
- Subprogramas sobrecarregados
- Subprogramas genéricos
- Operadores sobrecarregados definidos pelo usuário
- Fechamentos
08. Implementando subprogramas
Conteúdo
- A semântica geral das chamadas e retornos
- Implementando subprogramas simples
- Implementando subprogramas com variáveis locais dinâmicas na pilha
- Implementando subprogramas aninhados
- Blocos
- Implementando escopo dinâmico
09. Tipos abstratos de dados e construções encapsuladas
Conteúdo
- O conceito de abstração
- Introdução à abstração de dados
- Exemplos de linguagens
- Tipos abstratos de dados parametrizados
- Construções de encapsulamento
- Encapsulamento de nomes
10. Suporte a programação orientada a objeto
Conteúdo
- Programação orientada a objeto
- Suporte a programação orientada a objeto
- Implementação de construções orientada a objeto
Referência Bibliográfica
Principal
- SEBESTA, Robert W. Conceitos de Linguagens de Programação. 11. ed. Bookman Editora, 2018.
Complementar
- TUCKER, Allen; NOONAN, Robert. Linguagens de Programação - Princípios e Paradigmas. AMGH Editora, 2009.