Paradigmas de Linguagens de Programa - PowerPoint PPT Presentation

About This Presentation
Title:

Paradigmas de Linguagens de Programa

Description:

Paradigmas de Linguagens de Programa o Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Inform tica Universidade Federal de Pernambuco – PowerPoint PPT presentation

Number of Views:128
Avg rating:3.0/5.0
Slides: 18
Provided by: phmb
Category:

less

Transcript and Presenter's Notes

Title: Paradigmas de Linguagens de Programa


1
Paradigmas de Linguagens de ProgramaçãoLinguagem
Imperativa 1
  • Augusto Sampaio e Paulo Borba
  • Centro de Informática
  • Universidade Federal de Pernambuco

2
Explorando Conceitos
  • Variáveis e memória, variáveis compostas, arrays,
    alocação dinâmica de memória, persistência
  • Comandos de atribuição, composição colateral e
    paralela, comandos condicionais, comandos
    iterativos, expressões com efeitos colaterais

3
Variáveis e Memória
  • Uma memória é uma coleção de células, onde cada
    célula tem
  • status alocada ou não
  • conteúdo um valor armazenável ou undefined
  • Uma variável
  • contém um valor, o qual pode ser inspecionado e
    atualizado
  • é implementada por uma ou mais células

4
Variáveis e Memória
  • Memória abstrata
  • x ? 5 , y ? 9, z ? a (Id ?
    Valor)
  • Memória concreta
  • Associações
  • x ? 13 , y ? 72, z ? 00 (Id ?
    Ref)
  • Memória
  • 00 ? a, ..., 13 ? 5, ..., (Ref ?
    Valor)
  • 72 ? 9, ..., 99 ? undefined

5
Variáveis e Memória
  • A avaliação de variáveis é feita de forma
    diferente de acordo com a sua posição no comando
    de atribuição
  • L-value
  • o endereço da célula de memória que implementa a
    variável (referência)
  • R-value
  • o valor armazenado na célula de memória que
    implementa a variável (conteúdo)

6
Variáveis Compostas
  • Agrupamentos de variáveis componentes
  • record de Pascal, struct de C
  • arrays
  • Atualização
  • seletiva
  • total

7
Arrays
  • Alternativas para a definição dos limites de um
    array
  • estático, determinado em tempo de compilação
  • dinâmico, determinado no momento da criação
    (inicialização) da variável
  • flexível, não é determinado em nenhum momento

8
Alocação Dinâmica de Memória
  • Variáveis criadas por declarações
  • locais, existem durante às execuções do bloco
  • globais e estáticas, existem durante a execução
    do programa
  • Variáveis da heap, criadas por comandos
  • criadas e destruídas em qualquer parte do
    programa, por comandos especiais
  • anônimas, acessadas via ponteiros
  • referências pendentes

9
Persistência
  • Arquivos são valores compostos como outros
    quaisquer
  • Qualquer variável deveria poder ser
  • transitória
  • persistente
  • Linguagens normalmente dividem os tipos em
    transitório e persistente
  • Type completness principle todos os tipos de
    uma linguagem devem ser disponíveis tanto para
    variáveis transitórias quanto persistentes

10
Comandos
  • Construção que, quando executada, atualiza
    variáveis
  • Um ponto de entrada, um ponto de saída
  • Múltiplos pontos de entrada, múltiplos pontos de
    saída
  • goto (de C), throw (de Java), continue e break
    (de C e Java)

11
Atribuição
  • Forma geral
  • AcessoVariável Expressão
  • Atribuições múltiplas
  • AV AV AV Expressão
  • Atribuições simultâneas
  • AV, AV Expressão, Expressão

12
Composição Colateral e Paralela
  • Colateral Comando , Comando
  • os dois comandos são executados, em uma ordem
    qualquer
  • não determinismo
  • Paralela Comando Comando
  • os dois comandos são executados, de maneira
    concorrente
  • concorrência e não determinismo
  • Composição seqüencial e colateral são casos
    especiais

13
Comandos Condicionais
  • Não-determinísticos
  • if Expressão1 then Comando1
  • Expressão2 then Comando2 ...
  • ExpressãoN then ComandoN
  • end if
  • Baseados em valores não booleanos
  • case (de Pascal), switch (de C)

14
Comandos Iterativos
  • Variam de acordo com o número de iterações
  • definido, com variável e seqüência de controle,
    for (de Pascal e C)
  • indefinido, while (de Pascal e C)
  • A seqüência de controle não tem que ser uma
    progressão aritmética, definida por constantes

15
Expressões com Efeitos Colaterais
  • Expressões comandos retornam valores e alteram
    os valores de variáveis
  • funções (de Pascal e C)
  • o.m() o.m() diferente de 2 o.m()
  • Linguagens orientadas a expressões
  • nenhuma distinção entre expressões e comandos
    (Algol 68, ML, C)
  • AV (AV Expressão)

16
Leitura
  • Programming Language Concepts and Paradigms
  • Capítulo 3 (exceto a Seção 3.5.3)

17
Exercícios e Projetos
  • Estenda a Linguagem Imperativa 1 com os seguintes
    recursos
  • declaração de variável em qualquer ponto de um
    bloco, como em Java
  • comandos continue e goto de C
  • arrays e records de Pascal
  • ponteiros de Pascal
  • tratamento de exceções como em Java, mas passando
    para o throw uma string, não um objeto
Write a Comment
User Comments (0)
About PowerShow.com