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

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

Paradigmas de Linguagens de Programação Conceitos da Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de.

Apresentações semelhantes


Apresentação em tema: "Paradigmas de Linguagens de Programação Conceitos da Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de."— Transcrição da apresentação:

1 Paradigmas de Linguagens de Programação Conceitos da 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 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 –denota um valor, o qual pode ser inspecionado e atualizado –é implementada por uma ou mais células

4 Modelando 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 de fato: {00  ‘a’,...,13  5, (Ref  Valor) 72  9,...,99  undefined}

5 Avaliação de Variáveis 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 A atualização das variáveis compostas pode ser seletiva ou total São agrupamentos de variáveis componentes: Variáveis Compostas record de Pascal, struct de C arrays

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 Estática 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

9 Alocação Dinâmica de Memória 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

10 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órios e persistentes

11 Comandos 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)

12 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’

13 Composição Colateral –os dois comandos são executados, em uma ordem qualquer –não determinismo Comando, Comando’

14 Composição Paralela –os dois comandos são executados, de maneira entrelaçada, em uma ordem qualquer –concorrência e não determinismo Comando || Comando’

15 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)

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

17 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 (C) –AV := (AV := Expressão)

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

19 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 Conceitos da Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de."

Apresentações semelhantes


Anúncios Google