Linguagens de Programação
|
|
- Giulia Coelho
- 5 Há anos
- Visualizações:
Transcrição
1 Linguagens de Programação Expressões e Variáveis Bruno Lopes Bruno Lopes Linguagens de Programação 1 / 34
2 Propriedades desejáveis Legibilidade: A leitura do programa é facilmente compreendida? Redigibilidade: A implementação reflete o algoritmo? A redação é sucinta? onfiabilidade: É fácil detectar enganos do programador? Eficiência: Roda rápido? Facilidade de Aprendizado: É enxuta? Ortogonalidade: onceitos podem ser combinados livremente? Reusabilidade: É possível aproveitar partes em outros programas? Modificabilidade: É fácil alterar programas? Portabilidade: Roda da forma esperada em diferentes plataformas? Bruno Lopes Linguagens de Programação 2 / 34
3 Expressões Definição Uma frase do programa que, ao ser avaliada, produz como resultado um valor. Elementos: Operadores Operandos Resultado Bruno Lopes Linguagens de Programação 3 / 34
4 Expressões Definição Uma frase do programa que, ao ser avaliada, produz como resultado um valor. Elementos: Operadores Operandos Resultado Bruno Lopes Linguagens de Programação 3 / 34
5 Expressões Definição Uma frase do programa que, ao ser avaliada, produz como resultado um valor. Elementos: Operadores Operandos Resultado Bruno Lopes Linguagens de Programação 3 / 34
6 Expressões lassificação Simples omposta Notação: Prefixada Infixada Posfixada x>y?x:y Bruno Lopes Linguagens de Programação 4 / 34
7 Expressões lassificação Simples omposta Notação: Prefixada Infixada Posfixada x>y?x:y Bruno Lopes Linguagens de Programação 4 / 34
8 Expressões lassificação Simples omposta Notação: Prefixada Infixada Posfixada x>y?x:y Bruno Lopes Linguagens de Programação 4 / 34
9 Aridade dos operadores (+ 1) (+ 1 2) ( ) ( )... Bruno Lopes Linguagens de Programação 5 / 34
10 Aridade dos operadores #define JUST3(a, b, c,...) (a), (b), (c) #define FUN(...) func(just3( VA_ARGS, 0, 0)) FUN(x) --> func((x), (0), (0)) FUN(x,y) --> func((x), (y), (0)) Bruno Lopes Linguagens de Programação 6 / 34
11 Aridade dos operadores #define JUST3(a, b, c,...) (a), (b), (c) #define FUN(...) func(just3( VA_ARGS, 0, 0)) FUN(x) --> func((x), (0), (0)) FUN(x,y) --> func((x), (y), (0)) Bruno Lopes Linguagens de Programação 6 / 34
12 Origem dos operadores Pré-existentes Definidos pelo programados omposição de operadores val par = fn (n: int) => (n mod 2 = 0) val negaç~ao = fn (t:bool) => if t then false else true val impar = negaç~ao o par Bruno Lopes Linguagens de Programação 7 / 34
13 Origem dos operadores Pré-existentes Definidos pelo programados omposição de operadores val par = fn (n: int) => (n mod 2 = 0) val negaç~ao = fn (t:bool) => if t then false else true val impar = negaç~ao o par Bruno Lopes Linguagens de Programação 7 / 34
14 Tipos de operações Literais onstantes Variáveis Estáticas Dinâmicas Aritméticas Reais Booleanas Binárias ondicionais Referenciamento Derreferenciamento ategóricas Interativas Bruno Lopes Linguagens de Programação 8 / 34
15 Literais Resultam no valor expĺıcito do texto do programa. Bruno Lopes Linguagens de Programação 9 / 34
16 Agregação 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}; } Bruno Lopes Linguagens de Programação 10 / 34
17 onstrutores Data d = new Data() Bruno Lopes Linguagens de Programação 11 / 34
18 Binárias 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 */ } Bruno Lopes Linguagens de Programação 12 / 34
19 Efeitos colaterais x = 3.2 * ++c; x = 2; y = 4; z = (y = 2 * x + 1) + y; Bruno Lopes Linguagens de Programação 13 / 34
20 Funções e efeitos colaterais atualização de variável global passagem por referência impressão de valores ou gravação em arquivo Bruno Lopes Linguagens de Programação 14 / 34
21 Avaliando expressões compostas Precedência de operadores if a > 5 and b < 10 then Ausência de precedência Falta de redigibilidade! Bruno Lopes Linguagens de Programação 15 / 34
22 Avaliando expressões compostas Precedência de operadores if a > 5 and b < 10 then Ausência de precedência Falta de redigibilidade! Bruno Lopes Linguagens de Programação 15 / 34
23 x = a + b - c; y = a < b < c; x = **p; if (!!x) y = 3; y =!x++; // omo avaliar? Bruno Lopes Linguagens de Programação 16 / 34
24 i = 2; a[i] = i++; // Atualiza a[2] ou a[3]? Bruno Lopes Linguagens de Programação 17 / 34
25 urto-circuito i = 0; enquanto ((i < n) e (a[i] <> valor procurado)) incrementa i; fim i = 1; if (b < 2*c a[ i ++ ] > c) { a[i]++ }; Bruno Lopes Linguagens de Programação 18 / 34
26 Pascal: expressões não são avaliadas em curto circuito, a menos que o compilador implemente por diretiva de compilação., ++: && e, operadores booleanos, são avaliadas em curto circuito; & e, operadores binários, não são avaliadas em curto circuito. Java: & e não são avaliadas em curto circuito; && e são avaliadas em curto circuito. Bruno Lopes Linguagens de Programação 19 / 34
27 Once a programmer has understood the use of variables, he has understood the essence of programming. Edsger Dijkstra No paradigma imperativo! Bruno Lopes Linguagens de Programação 20 / 34
28 Once a programmer has understood the use of variables, he has understood the essence of programming. Edsger Dijkstra No paradigma imperativo! Bruno Lopes Linguagens de Programação 20 / 34
29 Variáveis Definição Uma variável é uma entidade da computação que contém um valor, o qual pode ser inspecionado e atualizado sempre que necessário. abstração de célula de memória armazena o estado de uma entidade da computação. Bruno Lopes Linguagens de Programação 21 / 34
30 Variáveis Definição Uma variável é uma entidade da computação que contém um valor, o qual pode ser inspecionado e atualizado sempre que necessário. abstração de célula de memória armazena o estado de uma entidade da computação. Bruno Lopes Linguagens de Programação 21 / 34
31 Variáveis Definição Uma variável é uma entidade da computação que contém um valor, o qual pode ser inspecionado e atualizado sempre que necessário. abstração de célula de memória armazena o estado de uma entidade da computação. Bruno Lopes Linguagens de Programação 21 / 34
32 Variáveis de programação Vs Variáveis aritméticas Bruno Lopes Linguagens de Programação 22 / 34
33 Variáveis simples Uma única célula de memória. Variáveis composts Um grupo contíguo de células de memória. type S = (a,b); T = (c,d,e); P = record prim: S; seg: T; end; var prod, prod2: P; begin prod.prim := a; prod.seg := c; prod2 := prod; end. Bruno Lopes Linguagens de Programação 23 / 34
34 Variáveis simples Uma única célula de memória. Variáveis composts Um grupo contíguo de células de memória. type S = (a,b); T = (c,d,e); P = record prim: S; seg: T; end; var prod, prod2: P; begin prod.prim := a; prod.seg := c; prod2 := prod; end. Bruno Lopes Linguagens de Programação 23 / 34
35 aracterísticas Nome: definidos pelo programador existem variáveis que não possuem nomes linguagens costumam permitir sinônimos Endereço: posição de memória da primeira célula ocupada pela variável Tipo: Valor: em conformidade com o tipo Bruno Lopes Linguagens de Programação 24 / 34
36 aracterísticas Nome: definidos pelo programador existem variáveis que não possuem nomes linguagens costumam permitir sinônimos Endereço: posição de memória da primeira célula ocupada pela variável Tipo: Valor: em conformidade com o tipo Bruno Lopes Linguagens de Programação 24 / 34
37 aracterísticas Nome: definidos pelo programador existem variáveis que não possuem nomes linguagens costumam permitir sinônimos Endereço: posição de memória da primeira célula ocupada pela variável Tipo: Valor: em conformidade com o tipo Bruno Lopes Linguagens de Programação 24 / 34
38 aracterísticas Nome: definidos pelo programador existem variáveis que não possuem nomes linguagens costumam permitir sinônimos Endereço: posição de memória da primeira célula ocupada pela variável Tipo: Valor: em conformidade com o tipo Bruno Lopes Linguagens de Programação 24 / 34
39 aracterísticas Nome: definidos pelo programador existem variáveis que não possuem nomes linguagens costumam permitir sinônimos Endereço: posição de memória da primeira célula ocupada pela variável Tipo: Valor: em conformidade com o tipo Bruno Lopes Linguagens de Programação 24 / 34
40 aracterísticas Nome: definidos pelo programador existem variáveis que não possuem nomes linguagens costumam permitir sinônimos Endereço: posição de memória da primeira célula ocupada pela variável Tipo: Valor: em conformidade com o tipo Bruno Lopes Linguagens de Programação 24 / 34
41 aracterísticas Nome: definidos pelo programador existem variáveis que não possuem nomes linguagens costumam permitir sinônimos Endereço: posição de memória da primeira célula ocupada pela variável Tipo: Valor: em conformidade com o tipo Bruno Lopes Linguagens de Programação 24 / 34
42 aracterísticas Tempo de Vida: Período em que existe memória alocada para a variável globais por toda a execução do programa locais pela execução do bloco onde foram declaradas dinâmicas (heap) arbitrariamente estáticas a partir do ponto onde foram declaradas persitentes sobrevivem além do programa Bruno Lopes Linguagens de Programação 25 / 34
43 aracterísticas Tempo de Vida: Período em que existe memória alocada para a variável globais por toda a execução do programa locais pela execução do bloco onde foram declaradas dinâmicas (heap) arbitrariamente estáticas a partir do ponto onde foram declaradas persitentes sobrevivem além do programa Bruno Lopes Linguagens de Programação 25 / 34
44 aracterísticas Tempo de Vida: Período em que existe memória alocada para a variável globais por toda a execução do programa locais pela execução do bloco onde foram declaradas dinâmicas (heap) arbitrariamente estáticas a partir do ponto onde foram declaradas persitentes sobrevivem além do programa Bruno Lopes Linguagens de Programação 25 / 34
45 aracterísticas Tempo de Vida: Período em que existe memória alocada para a variável globais por toda a execução do programa locais pela execução do bloco onde foram declaradas dinâmicas (heap) arbitrariamente estáticas a partir do ponto onde foram declaradas persitentes sobrevivem além do programa Bruno Lopes Linguagens de Programação 25 / 34
46 aracterísticas Tempo de Vida: Período em que existe memória alocada para a variável globais por toda a execução do programa locais pela execução do bloco onde foram declaradas dinâmicas (heap) arbitrariamente estáticas a partir do ponto onde foram declaradas persitentes sobrevivem além do programa Bruno Lopes Linguagens de Programação 25 / 34
47 aracterísticas Tempo de Vida: Período em que existe memória alocada para a variável globais por toda a execução do programa locais pela execução do bloco onde foram declaradas dinâmicas (heap) arbitrariamente estáticas a partir do ponto onde foram declaradas persitentes sobrevivem além do programa Bruno Lopes Linguagens de Programação 25 / 34
48 Variáveis locais procedure rec(b:integer); begin if(b = 0) then rec(b+1); end; begin rec(0); end. Bruno Lopes Linguagens de Programação 26 / 34
49 Heap Variáveis que residem no Heap podem ser criadas e apagadas a qualquer momento. omo são criadas? omo são acessadas? Bruno Lopes Linguagens de Programação 27 / 34
50 Heap Variáveis que residem no Heap podem ser criadas e apagadas a qualquer momento. omo são criadas? omo são acessadas? Bruno Lopes Linguagens de Programação 27 / 34
51 Alocação de memória (heap) Escolha do elemento Primeiro encontrado Tamanho mais próximo Maior tamanho Desafios Fragmentação Alocar mais memória que o necessário Algoritmo de desfragmentação Bruno Lopes Linguagens de Programação 28 / 34
52 Alocação de memória (heap) Escolha do elemento Primeiro encontrado Tamanho mais próximo Maior tamanho Desafios Fragmentação Alocar mais memória que o necessário Algoritmo de desfragmentação Bruno Lopes Linguagens de Programação 28 / 34
53 Desalocação de memória (heap) Escolha do elemento Pascal,,++: expĺıcita a cargo do programador. Java: impĺıcita coleta de lixo. Expĺıcita: eficiente, porém mais trabalhoso e menos confiável. Impĺıcita: confortável e segura, mas pode gerar overhead. Bruno Lopes Linguagens de Programação 29 / 34
54 Desalocação de memória (heap) Escolha do elemento Pascal,,++: expĺıcita a cargo do programador. Java: impĺıcita coleta de lixo. Expĺıcita: eficiente, porém mais trabalhoso e menos confiável. Impĺıcita: confortável e segura, mas pode gerar overhead. Bruno Lopes Linguagens de Programação 29 / 34
55 Métodos de alocação de variáveis Estática: em tempo de carga Mau dimensionamento das variáveis Espaço desperdiçado com subrotinas que podem não ser executadas Impedimento de uso de recursividade Dinâmica: contígua no vetor de memória Esgotamento rápido do vetor Desalocação e realocação pouco eficientes Pilha + Heap Bruno Lopes Linguagens de Programação 30 / 34
56 Persistência Transientes: tempo de vida da variável limitado pela ativação do programa que a criou. Persistentes: tempo de vida da variável transcende a ativação do programa que a criou. Bruno Lopes Linguagens de Programação 31 / 34
57 Incorporar mecanismos de persistência de dados em linguagens para facilitar a programação em aplicações onde a persistência é necessária. LP onde não exista diferença entre entidades transientes e persistentes (Persistência Ortogonal) Bruno Lopes Linguagens de Programação 32 / 34
58 Arquivos Arquivos Seriais Arquivos Diretos: implementação com tabela indexada ou vetor de componentes. Operações de Abertura e Fechamento: conversão de dados para formato sequencial binário. Bruno Lopes Linguagens de Programação 33 / 34
59 Persistência Ortogonal Mesmos tipos para variáveis persistentes e transientes. Nenhuma distinção entre o código que lida com variáveis persistentes e o que lida com variáveis transientes. Identificação de persistência através da percepção da continuidade do uso. Eliminação de onversões de Entrada e Saída (30% do código). Não existem ainda na prática. Bruno Lopes Linguagens de Programação 34 / 34
60 Persistência Ortogonal Mesmos tipos para variáveis persistentes e transientes. Nenhuma distinção entre o código que lida com variáveis persistentes e o que lida com variáveis transientes. Identificação de persistência através da percepção da continuidade do uso. Eliminação de onversões de Entrada e Saída (30% do código). Não existem ainda na prática. Bruno Lopes Linguagens de Programação 34 / 34
61 Persistência Ortogonal Mesmos tipos para variáveis persistentes e transientes. Nenhuma distinção entre o código que lida com variáveis persistentes e o que lida com variáveis transientes. Identificação de persistência através da percepção da continuidade do uso. Eliminação de onversões de Entrada e Saída (30% do código). Não existem ainda na prática. Bruno Lopes Linguagens de Programação 34 / 34
62 Persistência Ortogonal Mesmos tipos para variáveis persistentes e transientes. Nenhuma distinção entre o código que lida com variáveis persistentes e o que lida com variáveis transientes. Identificação de persistência através da percepção da continuidade do uso. Eliminação de onversões de Entrada e Saída (30% do código). Não existem ainda na prática. Bruno Lopes Linguagens de Programação 34 / 34
63 Persistência Ortogonal Mesmos tipos para variáveis persistentes e transientes. Nenhuma distinção entre o código que lida com variáveis persistentes e o que lida com variáveis transientes. Identificação de persistência através da percepção da continuidade do uso. Eliminação de onversões de Entrada e Saída (30% do código). Não existem ainda na prática. Bruno Lopes Linguagens de Programação 34 / 34
Linguagens de Programação
Linguagens de Programação de Linguagens de Programação Bruno Lopes Bruno Lopes Linguagens de Programação 1 / 11 Propriedades desejáveis Legibilidade: A leitura do programa é facilmente compreendida? Redigibilidade:
Leia maisLinguagens de Programação
Linguagens de Programação Propriedades Desejáveis Bruno Lopes Bruno Lopes Linguagens de Programação 1 / 1 Legibilidade: A leitura do programa é facilmente compreendida? Redigibilidade: A implementação
Leia maisLinguagens de Programação
Conceitos e Técnicas Prof. Isabel Cafezeiro isabel@dcc.ic.uff.br Expressão: Uma expressão é uma frase do programa que, ao ser avaliada, produz como resultado um valor. 1 aa 1+4 f(1,g(x)) Elementos da expressão:
Leia maisLinguagens de Programação
Linguagens de Programação Valores e Tipos de Dados Bruno Lopes Bruno Lopes Linguagens de Programação 1 / 19 Propriedades desejáveis Legibilidade: A leitura do programa é facilmente compreendida? Redigibilidade:
Leia maisPersistência. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe
Persistência alberto@ufs.br de Programação Departamento de Computação Universidade Federal de Sergipe Retrospectiva Quanto ao Tempo de Vida Variáveis Estáticas Variáveis Stack-Dinâmicas Variáveis Heap-Dinâmicas
Leia maisVariáveis. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe
Variáveis alberto@ufs.br de Programação Departamento de Computação Universidade Federal de Sergipe Variáveis Uma vez que o programador tenha entendido o uso de variáveis, ele entendeu a essência da programação.
Leia maisLinguagens de Programação Conceitos e Técnicas. Variáveis e Constantes
Linguagens de Programação Conceitos e Técnicas Variáveis e Constantes Variáveis Uma vez que o programador tenha entendido o uso de variáveis, ele entendeu a essência da programação. [Dijkstra] Abstração
Leia maisLinguagens de Programação Conceitos e Técnicas. Expressões e Comandos
Linguagens de Programação Conceitos e Técnicas Expressões e Comandos Expressões Uma expressão é uma frase do programa que necessita ser avaliada e produz como resultado um valor Elementos Operadores Operandos
Leia maisLinguagens de Programação Conceitos e Técnicas. Expressões e Comandos Prof. Tiago Alves de Oliveira
Linguagens de Programação Conceitos e Técnicas Expressões e Comandos Prof. Tiago Alves de Oliveira Expressões Uma expressão é uma frase do programa que necessita ser avaliada e produz como resultado um
Leia maisLinguagens de Programação Conceitos e Técnicas. Amarrações Prof. Tiago Alves de Oliveira
Linguagens de Programação Conceitos e Técnicas Amarrações Prof. Tiago Alves de Oliveira Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável
Leia maisExpressões e sentença de atribuição
Expressões e sentença de atribuição Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisLinguagens de Programação Conceitos e Técnicas. Amarrações
Linguagens de Programação Conceitos e Técnicas Amarrações Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um identificador
Leia maisLinguagens de Programação. Marco A L Barbosa
Expressões e sentença de atribuição Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl
Leia maisNomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisNomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisProf. Franklin Ramalho
PLP - Armazenamento (Parte I) Prof. Franklin Ramalho Universidade Federal de Campina Grande - UFCG Agenda - Variáveis Primitivas - Variáveis Compostas - Modelo de Armazenamento - Ciclo de vida de variáveis
Leia maisO que é uma variável?
Escopo, Ligação e Ambiente de Execução mleal@inf.puc-rio.br 1 O que é uma variável? Uma variável pode ser definida como uma tupla r nome é um string usado para
Leia maisPLANO DE UNIDADE DIDÁTICA- PUD
Professor: Marcus Vinícius Midena Ramos Coordenação: Ricardo Argenton Ramos Data: 03/08/2010 Página: 1 de 5 EMENTA: Conceitos básicos de linguagens. Histórico, classificação e principais aplicações de
Leia maisCapítulo 7. Expressões e Sentenças de Atribuição
Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário
Leia maisConceitos de Linguagens de Programação
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 03 (rogerio@fct.unesp.br) Aula 3 Variáveis: Nomes
Leia maisLinguagens de Programação 5 Expressões e Comandos
Linguagens de Programação 5 Expressões e Comandos Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito
Leia maisLinguagens de Programação. Nomes, Escopos e Vinculações (Bindings) Carlos Bazilio
Linguagens de Programação Nomes, Escopos e Vinculações (Bindings) Carlos Bazilio carlosbazilio@id.uff.br http://www.ic.uff.br/~bazilio/cursos/lp Nomes Forma mais simples de abstração Um nome é um caracter
Leia maisParadigmas de Linguagens de Programação. Nomes, Vinculações, Verificação de Tipos e Escopos
Nomes, Vinculações, Verificação de Tipos e Escopos Cristiano Lehrer Nomes (1/6) Um nome é uma string de caracteres usada para identificar alguma entidade de um programa. O termo identificador é utilizado
Leia maisIntrodução à Linguagem C++
Introdução à Linguagem C++ C++: Definição C++ C A Linguagem de Programação C++ pode ser definida como uma extensão da Linguagem C; Todo código de programação em Linguagem C pode a priori ser compilado
Leia maisParadigmas de Linguagens de Programação. Expressões e Instruções de Atribuição
Expressões e Instruções de Atribuição Cristiano Lehrer Introdução Expressões são o meio fundamental de especificar computações em uma linguagem de programação: Familiarização com as ordens de avaliação
Leia maisLinguagens de Programação 2 Amarrações
Linguagens de Programação 2 Amarrações Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo
Leia maisTipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas
Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa
Leia maisEstruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?
Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? 1 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa o
Leia maisEstruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011
Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa
Leia maisConceitos de Linguagens de Programação - Características. Paavo Soeiro
Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o
Leia maisLinguagens de Programação Nomes, Amarrações e Escopo
Linguagens de Programação Nomes, Amarrações e Escopo Andrei Rimsa Álvares Sumário Nomes Amarrações Escopo NOMES Linguagens de Programação Nomes Conceito mais amplo que variáveis Podem representar Variáveis
Leia maisEstruturas de Dados Aulas 3 e 4: Uso da memória e Vetores
Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores Uso da memória Existem 3 maneiras de reservar o espaço da memória: Variáveis globais (estáticas) Espaço existe enquanto programa estiver executando
Leia maisSistemas de Tipos. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe
Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Tipos permitem que dados sejam descritos de forma efetiva Previnem operações sem sentido (ex: 5 * true) Programas mais
Leia maisIntrodução ao Java. Marco A L Barbosa malbarbo.pro.br. Departamento de Informática Universidade Estadual de Maringá
Introdução ao Java Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisProgramação Estruturada Prof. Rodrigo Hausen Organização e Gerenciamento de Memória
Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Organização e Gerenciamento de Memória 1 AULA PASSADA - vetores ou arrays Declaração de um vetor (array) em C: tipo nome[tamanho];
Leia maisParadigmas de Programação
Paradigmas de Programação Aula 6 Nomes, Vinculações, Verificação de Tipos e Escopos Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Introdução As linguagens de
Leia maisSCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)
SCC 202 Algoritmos e Estruturas de Dados I Pilhas (Stacks) (implementação dinâmica) Operações alocação encadeada dinâmica typedef struct elem{ tipo_info info; struct elem *lig; tipo_elem; typedef struct{
Leia maisAlocação Dinâmica e Apontadores. Cláudio E. C. Campelo
Alocação Dinâmica e Apontadores Cláudio E. C. Campelo http://claudiocampelo.com Alocação Estática x Dinâmica Linguagens de programação como Pascal, C e C++ permitem dois tipos de alocação de memória: estática
Leia maisConceitos de Linguagens de Programação
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 07 (rogerio@prudente.unesp.br) Aula 7 Implementação
Leia maisEstruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011
Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores 14/03/2011 e 16/03/2011 Uso da memória Existem 3 maneiras de reservar o espaço da memória: Variáveis globais (estáticas) Espaço existe enquanto
Leia maisLinguagens de Programação Aula 11
Linguagens de Programação Aula 11 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Uma definição de subprograma descreve as ações representadas pelo subprograma Subprogramas podem ser funções
Leia maisImplementando subprogramas
Implementando subprogramas Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl
Leia maisTE091 Programação Orientada a Objetos Engenharia Elétrica
TE091 Programação Orientada a Objetos Engenharia Elétrica Revisão Rápida de Programação em C Prof. Carlos Marcelo Pedroso 2015 Revisão Linguagem C Características principais Modularidade: uso de procedimentos
Leia maisIntrodução a Programação. Ponteiros e Vetores, Alocação Dinâmica
Introdução a Programação Ponteiros e Vetores, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos que existe uma forte relação entre ponteiros e vetores Associação entre ponteiros e vetores Ponteiros constantes
Leia maisImplementação de subprogramas
Implementação de subprogramas Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisSintaxe da linguagem Java
Sintaxe da linguagem Java (PG) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Classe pública com método main Uma classe pública com nome A tem
Leia maisPonteiros de Variáveis
Ponteiros de Variáveis C++ permite o armazenamento e a manipulação de valores de endereços de memória. Para cada tipo existente, há um tipo ponteirocapaz de armazenar endereços de memória em que existem
Leia maisLinguagens de Programação Subprogramas
Linguagens de Programação Subprogramas Andrei Rimsa Álvares Sumário Abstrações Subprogramas Parâmetros Passagem de parâmetros Direção da passagem Mecanismos de passagem Momento da passagem ABSTRAÇÕES Linguagens
Leia maisNomes, Vinculações, Verificação de Tipos e Escopos. George Darmiton da Cunha Cavalcanti
Nomes, Vinculações, Verificação de Tipos e Escopos George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução Nomes Variáveis O conceito de vinculação (binding) Verificação de tipos Tipificação
Leia maisIntrodução à Programação Aula 06. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 06 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação ESCOPO DE VARIÁVEIS 2 Escopo de variáveis O escopo de uma variável é
Leia maisAlgoritmos e Modelação Computacional. Paulo Mateus MEBiom LMAC 2018
Algoritmos e Modelação Computacional Paulo Mateus MEBiom LMAC 2018 Objetivos Edição e compilação de programas Tipos e expressões Declaração de variáveis Atribuição, composição sequencial, iterativa e alternativa
Leia maisCompiladores Ambiente de Execução
Compiladores Ambiente de Execução Fabio Mascarenhas 2015.1 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica
Leia maisValores e Tipos de Dados Prof. Hudson Costa
Valores e Tipos de Dados Prof. Hudson Costa Valor 3 2.5 'a' Paulo 0x1F 026 Tipo {true, 25, 'b', azul não corresponde a um tipo { true, false corresponde a um tipo Linguagens de Programação Valores e Tipos
Leia maisExpressões e Instruções de Atribuição. George Darmiton da Cunha Cavalcanti
Expressões e Instruções de Atribuição George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução Expressões Aritméticas Operadores Sobrecarregados Conversões de Tipo Expressões Relacionais
Leia maisIntrodução à linguagem C++
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 2: Introdução à linguagem C++ Introdução à linguagem C++ Conceitos básicos: variáveis, tipos de dados, constantes, I/O, etc. Estruturas
Leia mais02. [Sebesta, 2000] Qual é o perigo potencial dos nomes que fazem distinção entre maiúsculas e minúsculas?
01. [Sebesta, 2000] Quais são as questões de projeto referentes a nomes? Nomes, Vinculações, Verificação de Tipos e Escopos 02. [Sebesta, 2000] Qual é o perigo potencial dos nomes que fazem distinção entre
Leia maisSintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)
Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida) Não-terminais são nomes mnemônicos colocados entre parênteses angulares. Vocabulário terminal formado por
Leia maisFundamentos de Programação
Fundamentos de Programação ET42G Aula 21 Prof. Daniel Cavalcanti Jeronymo Conversão de tipos. Alocação dinâmica de memória. Recursão. Criação de bibliotecas, arquivos de cabeçalhos e variáveis globais.
Leia mais4.1- Aritméticos + soma - subtração * multiplicação / divisão % módulo (resto da divisão de inteiros ).
2626262626262626262626262626262626262626262626262626 4 - OPERADORES Podem ser: aritméticos, relacionais, lógicos, incremento e decremento, atribuição. Operadores aritméticos têm precedência sobre os relacionais
Leia maisOperadores Lógicos e Relacionais Comandos condicionais (if-else) Casting AULA 04
Introdução a Programação IF669 http://www.cin.ufpe.br/~if669 Operadores Lógicos e Relacionais Comandos condicionais (if-else) Casting AULA 04 Ricardo Massa F. Lima rmfl@cin.ufpe.br Sérgio C. B. Soares
Leia maisLinguagens de Programação. Tipos. Carlos Bazilio
Linguagens de Programação Tipos Carlos Bazilio bazilio@ic.uff.br http://www.ic.uff.br/~bazilio/cursos/lp Definições Tipos de dados primitivos: tipos de dados que não são definidos em termos de outros tipos
Leia maisDetalhes da geração de código Usando a técnica ad hoc, amarrada aos procedimentos sintáticos, igual à análise semântica
Geração de Código para uma Máquina Hipotética a Pilha Detalhes da geração de código Usando a técnica ad hoc, amarrada aos procedimentos sintáticos, igual à análise semântica É composta de 3 Regiões MEPA
Leia maisALGORITMOS E ESTRUTURAS DE DADOS CES-11
ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA Revisão CES-11 Tipos escalares primitivos Tipos constituídos
Leia maisConceitos básicos de programação
Constantes class Exemplo { static void Main() { float fahr, celsius; int lower, upper, step; lower = 0; /* limite inferior da tabela de temperaturas */ upper = 300; /* limite superior */ step = 20; /*
Leia maisLinguagens de Programação Conceitos e Técnicas. Valores e Tipos de Dados Prof. Tiago Alves de Oliveira
Linguagens de Programação Conceitos e Técnicas Valores e Tipos de Dados Prof. Tiago Alves de Oliveira Conceituação Valor 3 2.5 'a' Paulo 0x1F 026 Tipo {true, 25, 'b', azul } não corresponde a um tipo {
Leia maisLinguagens de Programação. Introdução. Carlos Bazilio
Linguagens de Programação Introdução Carlos Bazilio carlosbazilio@id.uff.br http://www.ic.uff.br/~bazilio/cursos/lp ??? Pascal aux := 0 for i:=1 to 10 do aux := aux + i 10: i = 1 20: if i > 10 goto 60
Leia maisMétodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados
Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de
Leia maisLinguagem de Programação
Linguagem de Programação Aula 7 Modularização Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Técnico em Informática Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno Dividir
Leia maisAlocação Seqüencial VAL MAX TOPO
306 Alocação Encadeada Como vimos, uma fila nada mais é do que uma lista com uma disciplina de acesso. Logo, podemos nos utilizar de todos os conceitos vistos em listas para implementarmos filas. Por exemplo,
Leia maisIntrodução à Geração de Código
MAB 471 2011.2 Introdução à Geração de Código http://www.dcc.ufrj.br/~fabiom/comp Forma do Código Definição Todas as propriedades do código que influenciam no desempenho Código em si, abordagens para diferentes
Leia maisProgramação Introdução
PROGRAMAÇÃO Programação Introdução Prof. Dr. Adriano Mauro Cansian 1 Introdução Para armazenar um algoritmo na memória de um computador e para que ele possa, em seguida, comandar as operações a serem executadas,
Leia maisVerificação de Tipo. Unions. Verificação de tipo estática. Verificação de tipo dinâmica
Verificação de Tipo Atividade que certifica que os operandos de um operador são de tipos compatíveis. São considerados operadores e operandos: operadores usuais (aritméticos, relacionais, etc) subprogramas
Leia maisPuca Huachi Vaz Penna
Aula 3 C++: variáveis e expressões aritméticas 2017/1 BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66, 32 e 33 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro
Leia maisponteiros INF Programação I Prof. Roberto Azevedo
ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência
Leia maisAlocação Estática e Dinâmica. Prof. M.Sc. Mariella Berger
Alocação Estática e Dinâmica Prof. M.Sc. Mariella Berger http://www.inf.ufes.br/~mberger mberger@inf.ufes.br mariellaberger@gmail.com Alocação Estática Estratégia de alocação de memória na qual toda a
Leia maisPROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@gmail.com
Leia maisParadigmas de Linguagem de Programação. Paradigma Imperativo
Paradigmas de Linguagem de Programação Paradigma Imperativo Paradigma Imperativo Imperare Comandar É o mais antigo de todos; Baseado no modo de funcionamento do computador; São também chamadas de procedurais;
Leia maisProgramação Estruturada
Programação Estruturada Introdução à linguagem C Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Programação estruturada
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 3.3. Conceitos Básicos de C: Expressões, Operadores e Bibliotecas
Leia maisComputação I. Prof. Miguel Elias Mitre Campista.
Computação I Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Linguagens de Programação DEL-Poli/UFRJ Introdução ao Pascal Níveis de Linguagens de Programação Linguagens declarativas Linguagens
Leia maisCapítulo 5. Nomes, Vinculações e Escopos
Capítulo 5 Nomes, Vinculações e Escopos Tópicos do Capítulo 5 Introdução Nomes Variáveis O conceito de vinculação Escopo Escopo e tempo de vida Ambientes de referenciamento Constantes nomeadas Introdução
Leia maisTrabalho Linguagem e Programação de Compiladores
Trabalho Linguagem e Programação de Compiladores Responda as questões. Os exercícios deverão ser desenvolvidos utilizando as estruturas apresentadas em aula e adequadas para cada problema. Forma de entrega:
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisProgramação de Computadores II
Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para
Leia maisTécnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Prof. Alessandro Zimmer Introdução à Linguagem C
Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Prof. Alessandro Zimmer Introdução à Linguagem C Operadores aritméticos Operadores Unários (um só operando) Incremento
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.6. Ponteiros 3.6.1. Introdução 3.6.2. Uso
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisUniversidade Federal Rural de Pernambuco Departamento de Estatística e Informática Subprogramas
Universidade Federal Rural de Pernambuco Departamento de Estatística e Informática Subprogramas Prof. Gláucya Carreiro Boechat glaucyacboechat@gmail.com Paradigmas de Linguagem de Programação Características
Leia maisMódulo Lógica Programação com aplicações em Java. Projeto khouse Profissionalizante Profª Larissa Brandão
Educação Módulo Lógica e Ética de Programação com aplicações em Java Projeto khouse Profissionalizante Profª Larissa Brandão Educação e Ética Fundamentos da Programação Objetivos: Reconhecer as diferenças
Leia maisPonteiros e alocação dinâmica de memória. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto
Ponteiros e alocação dinâmica de memória Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Agenda Ponteiros Ponteiros e vetores Passagem por cópia e por referência Alocação
Leia mais- Mapa de memória de um processo - Ponteiros
1 MCTA028 Programação Estruturada - Mapa de memória de um processo - Ponteiros Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti Luiz Rozante 3Q-2018 2 Alocação de
Leia maisComputação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008 Introdução O objetivo desta aula prática é exercitar comandos de entrada e saída simples
Leia maisMCTA001 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros e estruturas
MCTA001 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros e estruturas Prof. Jesús P. Mena-Chalco 1Q-2019 1 Mapa de memória de um processo 2 Alocação de memória: estática VS Dinâmica Na execução, um
Leia maisO AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc.
O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO Prof. Angelo Augusto Frozza, M.Sc. ROTEIRO 1. A linguagem de programação Object Pascal a) Palavras reservadas b) Tipos de dados, variáveis e constantes
Leia maisCompiladores. Gerência de Memória
Compiladores Gerência de Memória Cristiano Lehrer, M.Sc. Atividades do Compilador Arquivo de origem Arquivo de destino Análise Otimização Geração de Código Intermediário Geração de Código Final Síntese
Leia maisAula 03: Introdução a C
Aula 03: Introdução a C Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior O que é um computador Organização de um
Leia mais