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 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de Pernambuco.

Apresentações semelhantes


Apresentação em tema: "Paradigmas de Linguagens de Programação Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de Pernambuco."— 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: –{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


Carregar ppt "Paradigmas de Linguagens de Programação Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de Pernambuco."

Apresentações semelhantes


Anúncios Google