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

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

Linguagens de Programação Conceitos e Técnicas Expressões Prof. Isabel Cafezeiro

Apresentações semelhantes


Apresentação em tema: "Linguagens de Programação Conceitos e Técnicas Expressões Prof. Isabel Cafezeiro"— Transcrição da apresentação:

1 Linguagens de Programação Conceitos e Técnicas Expressões Prof. Isabel Cafezeiro isabel@dcc.ic.uff.br

2 Linguagens de Programação Expressões Expressão: Uma expressão é uma frase do programa que, ao ser avaliada, produz como resultado um valor. Elementos da expressão: Operadores Operandos Resultado 1“aa”1+4f(1,g(x))

3 Linguagens de Programação Expressões Classificação Simples – sem operador Compostas Notação Prefixada: Infixada: Posfixada: Outros: b++ a + b ! b x > y? x:y

4 Linguagens de Programação Expressões Aridade dos operadores unários, binários, ternários, etc eneários: aridade variável Em C e C++, o programador pode construir funções com número de parâmetros variável Em Lisp: (+ 1) (+ 1 2) (+ 1 2 4) (+ 3 4 1 2)...

5 Linguagens de Programação Valores & tipos de dados Origem dos operadores Pré-existentes Definidos pelo Programador Composição de operadores Em Java: boolean positivo (int n) { return n > 0; } Em ML: val par = fn (n: int) => (n mod 2 = 0) val negação = fn (t:bool) => if t then false else true val impar = negação o par

6 Linguagens de Programação Tipos de expressões: Literais, constantes e variáveis de Agregação (estática, dinâmica) Constroem valores compostos Aritméticas, Relacionais, Booleanas Binárias Operam nos bits Condicionais O valor computado depende de uma condição Chamadas de Função Referenciamento/Derreferenciamento Categóricas Operam sobre tipos Interativas Expressões

7 Linguagens de Programação Tipos de expressões: Literais Resultam no valor explícito do texto do programa de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões 2,72 99 0143 ‘c’...

8 Linguagens de Programação Tipos de expressões: constantes gera o valor da constante de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões

9 Linguagens de Programação Tipos de expressões: variáveis gera o valor corrente da variável de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões

10 Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Constroem valores compostos Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Em C: int c[ ] = {1, 2, 3}; operador operandos

11 Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Constroem valores compostos Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Em C: void f(int i) { int a[] = {3 + 5, 2, 16/4}; int b[] = {3*i, 4*i, 5*i}; int c[] = {i + 2, 3 + 4, 2*i}; }

12 Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Constroem valores compostos Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Em C: void f(int i) { int a[] = {3 + 5, 2, 16/4}; int b[] = {3*i, 4*i, 5*i}; int c[] = {i + 2, 3 + 4, 2*i}; }

13 13 Construtores ● Exemplo: Data d = new Data(); Data d = new; declaração de referência para a classe Data associação da referência à instância invocação do construtor Data() criação da instância C:\>javac demodata1.java demodata1.java:5: expected Data hoje = new; ^ 1 error Erro de compilação!!! Criação da instância sem a chamada do construtor

14 Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Operam nos bits Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Em C: void main() { int j = 10; char c = 2; printf(“%d\n”, ~c);/* imprime –3 */ printf(“%d\n”, j & c); /* imprime 2 */ printf(“%d\n”, j | c);/* imprime 10 */ printf(“%d\n”, j ^ c);/* imprime 8 */ printf(“%d\n”, j << c);/* imprime 40 */ printf(“%d\n”, j >> c);/* imprime 2 */ }

15 Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais O valor computado depende de uma condição Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Em JAVA: max = x > y ? x : y; par = z % 2 == 0 ? true : false

16 Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Função é uma abstração de expressão: o usuário informa os argumentos e recebe o resultado sem se importar na forma de implementação Busca( 3,vet ); operador operandos

17 Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões F( x,...,w ); Um identificador ou uma expressão que gere uma função Em HASKELL: (if... then sin else cos) (x)

18 Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões F( x,...,w ); Uma n-upla, ou n valores Em C: typedef struct s { int a,b,c; } params; int f(x) params x;{ return x.a+x.b+x.c; } int main() { int y; params k; k.a = 1; k.b = 2; k.c = 3; y = f(k); y = f(1,2,3); }

19 Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Funções  operações Em C++, Ada, HASKELL: E 1 op E 2  op E 1 E 2 Operadores podem ser definidos... assim como funções!

20 Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Resulta no endereço de variáveis ou constantes x := x+1 Endereço da variável: referenciamento implícito !!! Valor da variável

21 Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Resulta no endereço de variáveis ou constantes int x = 10; int *p; p = &x; Operador de referenciamento

22 Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Interativas Expressões Resulta no conteúdo de um endereço int *p; *p = 12; Derreferenciamento explícito para compensar o referenciamento implícito

23 Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Operam sobre tipos Interativas Expressões float * p = (float *) malloc (10 * sizeof (float)) float f; int num = 9, den = 5; f = (float)num/den; Profissao p = new Engenheiro ( ); if (p instanceof Medico)

24 Linguagens de Programação Tipos de expressões: Literais, constantes, variáveis de Agregação (estática, dinâmica) Aritméticas, Relacionais, Booleanas Binárias Condicionais Chamadas de Função Referenciamento/Derreferenciamento Categóricas Operam sobre tipos Interativas Expressões Em HASKELL: [y | y <- ys, y 'mod' 100 = 0] Semelhança com a notação matemática: { y | y mod 100 = 0} Lista de valores


Carregar ppt "Linguagens de Programação Conceitos e Técnicas Expressões Prof. Isabel Cafezeiro"

Apresentações semelhantes


Anúncios Google