Baixe o app para aproveitar ainda mais
Prévia do material em texto
Paradigma Imperativo Renata Carvalho UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Paradigma Imperativo • Programas centrados no conceito de um estado (variáveis) e ações (comandos) que manipulam o estado • Paradigma também denominado de procedural ou estrutural, por incluir sub-‐ roOnas ou procedimentos como mecanismo de estruturação • Primeiro paradigma a surgir • Fortran em 1954 • Ainda é muito uOlizado Paradigma ImperaOvo Histórico Variáveis UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Paradigma Imperativo Entrada Saída Estado Programa Paradigma ImperaOvo Histórico Variáveis UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Paradigma Imperativo • Exemplos de linguagens: • Ada • Algol • Basic • C • Cobol • Fortran • Pascal Paradigma ImperaOvo Histórico Variáveis UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Histórico • Primeiras linguagens imperaOvas • Linguagens de máquina (assembly) • 1954-‐1955: Fortran (FORmula TRANslator) • John Backus – desenvolvido para a IBM 704 • 1958: Algol (ALGOrithmic Language) • 1959: Cobol (COmmon Business Oriented Language) • Desenvolvido por uma comissão do governo americano • Liderada por Grace Hopper Paradigma ImperaOvo Histórico Variáveis UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Variáveis • Declaração de variáveis Opadas • Restringe: • O espaço de memória a ser gasto • Os valores que a variável pode assumir • As operações possíveis de se executar • Questão de espaço em C (32-‐bits) • char = 1 byte • short = 2 bytes • int = 4 bytes “Once a programmer has understood the use of variables, he has understood the essence of programming.” (Edsger Dijkstra) Paradigma ImperaOvo Histórico Variáveis UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Variáveis • Quando uma variável é declarada, ela é associada a uma localização de memória, e seu nome se torna um idenOficador • l-‐value: localização da memória (endereço) • r-‐value: valor armazenado na localização dada pelo l-‐value Paradigma ImperaOvo Histórico Variáveis UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Variáveis • Atribuição: <Opo> <id> ou <Opo> <id> = <expressão> • Destruc(ve update • Sobrescreve a localização idenOficada com o valor da expressão • No RHS de uma atribuição, usa-‐se o r-‐value; no LHS, usa-‐se o l-‐value • Exemplo: x = x + 1 • Significado: “Pegue o r-‐value de x, adicione 1 e armazene o valor no l-‐value de x” Paradigma ImperaOvo Histórico Variáveis UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Variáveis • Se uma expressão não tem l-‐value, ela não pode aparecer no LHS de uma atribuição • Exercício • Dar exemplos de expressões que não tenham l-‐ value Paradigma ImperaOvo Histórico Variáveis UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Variáveis • Toda expressão/atribuição no paradigma imperaOvo pode ser visto em termos do l-‐ value e r-‐value das variáveis • Constantes e nomes de array em C • Têm r-‐value, mas não tem l-‐value (na especificação C-‐89, são ditos terem “l-‐value imutáveis”) • Variáveis • Têm l-‐value e r-‐value Paradigma ImperaOvo Histórico Variáveis UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Variáveis • Ponteiros • Seus r-‐values são l-‐values de outras variáveis • Em C: • &x retorna o l-‐value de x • *p retorna o r-‐value de x (se p é um ponteiro, seus r-‐value é o l-‐value de outra variável, nesse caso de x) • Sub-‐roOnas (funções ou procedimentos) • Têm l-‐value, mas seus r-‐values são blocos de código Paradigma ImperaOvo Histórico Variáveis UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Variáveis • Exercício • IdenOfique os l-‐value e r-‐value do trecho de código abaixo (em C). int& funcOon(); int n; char buffer[5]; n = 5; buffer[0] = ‘r’; string s1 = “nome”, s2 = “renata”, s3 = “carvalho”; s1 = s2 + s3; int *p = new int; funcOon() = 0; s1.size(); Paradigma ImperaOvo Histórico Variáveis
Compartilhar