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.

Conteúdo Programático

Sumário

  1. Aspectos preliminares
  2. Evolução das LPs
  3. Nomes, vinculações e escopos
  4. Tipos de dados
  5. Expressões e sentença de atribuição
  6. Estruturas de controle no nı́vel de sentença
  7. Subprogramas
  8. Implementando subprogramas
  9. Tipos abstratos de dados e construções encapsuladas
  10. Suporte a programação orientada a objeto

Tópicos de Aula

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

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

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

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.