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

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.