A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Paradigmas de Linguagens de Programação Linguagem Imperativa 1

Apresentações semelhantes


Apresentação em tema: "Paradigmas de Linguagens de Programação Linguagem Imperativa 1"— Transcrição da apresentação:

1 Paradigmas de Linguagens de Programação Linguagem 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: Memória concreta:
{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: Atualização
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 Atribuições múltiplas Atribuições simultâneas
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


Carregar ppt "Paradigmas de Linguagens de Programação Linguagem Imperativa 1"

Apresentações semelhantes


Anúncios Google