Linguagens de Programação 2 Amarrações
|
|
|
- Roberto Custódio Dinis
- 9 Há anos
- Visualizações:
Transcrição
1 Linguagens de Programação 2 Amarrações Vítor E. Silva Souza ([email protected]) Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Este obra foi licenciada sob uma Licença Creative Commons Atribuição 3.0 Não Adaptada.
2 Conteúdo do curso Introdução; Amarrações; Valores e tipos de dados; Variáveis e constantes; Expressões e comandos; Modularização; Polimorfismo; Exceções; Concorrência; Avaliação de linguagens. Estes slides foram baseados em: Slides do prof. Flávio M. Varejão; Livro Linguagens de Programação Conceitos e Técnicas (Varejão); Livro Linguagens de Programação Princípios e Paradigmas, 2a edição (Tucker & Noonan). Agosto 2015 Linguagens de Programação - Amarrações 2
3 Conceito Amarração (binding) é uma associação entre entidades de programação. Ex.: Uma variável e seu valor; Um identificador e seu tipo. Enfoque na amarração de identificadores a entidades; Importância: a forma que uma LP faz a amarração define se a mesma é rígida ou flexível; Tucker & Noonan usam o termo ligação para se referir à amarração. Agosto 2015 Linguagens de Programação - Amarrações 3
4 Exemplo: variáveis Quantas amarrações possui uma variável? Amarração 4: a variável ocupa o endereço de memória 0x... // Código em C: int var = 100; Amarração 2: a variável é do tipo int. Amarração 1: a variável se chama var. Amarração 3: a variável possui valor 100. Qual é o tempo de cada amarração? Agosto 2015 Linguagens de Programação - Amarrações 4
5 Tempos de amarração (exemplos) Tempo de amarração Identificador Entidade Projeto da LP * Operação de multiplicação (C, C++, Java). Projeto da LP int Intervalo do tipo inteiro (Java). Implementação do compilador int Intervalo do tipo inteiro (C). Compilação Variável Tipo da variável (C). Execução Variável Tipo do objeto pertencente a classe polimórfica (C++, Java). Ligação Função Código correspondente à função. Carga do programa Variável global Posição de memória ocupada. Execução Variável local Posição de memória ocupada. Amarração pode ser estática (feita antes da execução e não muda) ou dinâmica (muda durante execução). Agosto 2015 Linguagens de Programação - Amarrações 5
6 Identificadores Strings (termos) definidas pelos programadores para servirem de referência a entidades de computação; Objetivam aumentar a legibilidade, redigibilidade e modificabilidade; LPs podem ser case sensitive: C, C++, Java o são, Pascal e Basic não; Afeta legibilidade, redigibilidade; LPs podem limitar o número máximo de caracteres: Podem gerar erro ou ignorar excesso; Versões iniciais de FORTRAN faziam isso; LPs podem restringir caracteres especiais nos nomes. Agosto 2015 Linguagens de Programação - Amarrações 6
7 Identificadores Podem ter significado especial: Palavra reservada: não pode ser usada como identificador pelo programador (ex.: goto em Java); Palavra- chave: tem significado pré- determinado na linguagem (ex.: goto em C, if em C e em Java); Palavra pré- definida: tem significado, mas o mesmo pode ser redefinido (ex.: funções de uma API).! Código válido em FORTRAN.! São palavras-chave, mas não são palavras reservadas. INTEGER REAL REAL INTEGER Agosto 2015 Linguagens de Programação - Amarrações 7
8 Identificadores Outro exemplo, em Pascal: program confuso; const true = false; begin (*... *) if (a < b) = true then f(a) else g(b); (*... *) end. Agosto 2015 Linguagens de Programação - Amarrações 8
9 Ambientes de amarração A interpretação de comandos e expressões /* Ex.: */ a = 5; g(a + 1); dependem do que denotam os identificadores utilizados nesses comandos e expressões; Um ambiente (environment) é um conjunto de amarrações; Cada amarração possui um determinado escopo, isto é, a região do programa onde a entidade é visível. Agosto 2015 Linguagens de Programação - Amarrações 9
10 Ambientes de amarração Um identificador pode estar amarrado a duas entidades distintas em um mesmo ambiente: Exemplo em C: int a = 13; void f() { int b = a; int a = 2; b = b + a; // Qual o valor de b ao final de f()? b = 15 Em outra LP, resultado poderia depender do tempo de amarração. Se variáveis locais são amarradas no início do bloco, a poderia valer 0 (default) inicialmente. Agosto 2015 Linguagens de Programação - Amarrações 10
11 Ambientes de amarração Esse mesmo exemplo esconde uma duplicidade de entidades em um mesmo identificador: Endereço da variável (l-value) b = b + a; Valor da variável (r-value) Algumas LPs exigem que isso seja feito explicitamente; Exemplo em ML: b :=!b +!a; Em C, C++, isso acontece com ponteiros somente. Agosto 2015 Linguagens de Programação - Amarrações 11
12 Escopo Segundo Tucker & Noonan: Exemplo em C: O escopo de um nome é a coleção de comandos que podem acessar essa ligação de nome. void g() { int x = 0; // int a = x + 2; // Escopo de x. printf("%d\n", x); // // x inacessível fora de g() Agosto 2015 Linguagens de Programação - Amarrações 12
13 Escopo Estático (ou léxico): Definição do subprograma; Tempo de compilação; Texto do programa. Dinâmico: Chamada do subprograma; Tempo de execução; Fluxo de controle do programa. Agosto 2015 Linguagens de Programação - Amarrações 13
14 Escopo dinâmico Exemplo em pseudocódigo: procedimento sub() { inteiro x = 1; procedimento sub1() { escreva(x); procedimento sub2() { inteiro x = 3; sub1(); sub2(); sub1(); // O que é escrito ao se chamar sub()? 3 1 Agosto 2015 Linguagens de Programação - Amarrações 14
15 Escopo dinâmico Problemas: Eficiência: checagem de tipos durante execução, acesso deve seguir sequência de chamadas; Legibilidade: deve- se seguir a sequência de chamadas para entender a amarração; Confiabilidade: subprograma pode acessar variáveis locais do bloco que o chama; Propenso a erros do programador; Pouquíssimo usado por LPs: APL, Snobol4 e versões iniciais de Lisp e Perl; Common Lisp e Perl suportam os dois tipos. Facilmente substituída por passagem de parâmetros. Agosto 2015 Linguagens de Programação - Amarrações 15
16 Escopo estático Bloco monolítico: versões antigas de Basic e Cobol; Blocos não aninhados: Fortran; Blocos aninhados: Algol e linguagens Algol- like. x x y z w x y z w x Bloco Monolítico Blocos não aninhados Blocos Aninhados Escopos não aninhados são ditos disjuntos e não compartilham amarrações. Agosto 2015 Linguagens de Programação - Amarrações 16
17 Escopo estático Algol C Java Ada Pacote n/a n/a Sim Sim Classe n/a n/a Aninhado Sim Função Aninhado Sim Sim Aninhado Bloco Aninhado Aninhado Aninhado Aninhado Laço for Não Não Sim Aninhado Legenda: n/a: conceito não está presente na linguagem; Sim: conceito define escopo estático não- aninhado; Aninhado: conceito define escopo estático aninhado. Agosto 2015 Linguagens de Programação - Amarrações 17
18 Escopo estático Ocultamento/visibilidade de Entidade em Blocos Aninhados exemplo em C: // Obs.: alguns compiladores podem não compilar isso... int main() { int i = 0, x = 10; while (i++ < 100) { float x = 3.231; printf("x = %f\n", x*i); /* O que o programa imprime na primeira e última * iteração do while? */ x = x = Para evitar confusão, Java só permite ocultamento entre atributo e variável local. Agosto 2015 Linguagens de Programação - Amarrações 18
19 Escopo estático Tradutores usam tabelas de símbolos para manter o registro dos identificadores e suas amarrações: int main() { int i = 0, x = 10; while (i++ < 100) { float x = 3.231; printf("x = %f\n", x*i); <x, 4> <i, 2> <x, 2> <main, 1> Pilha de dicionários Agosto 2015 Linguagens de Programação - Amarrações 19
20 Escopo estático Exemplo de referência seletiva em ADA: procedure A is x : INTEGER; procedure B is y : INTEGER; procedure C is x : INTEGER; begin x := A.x; end C; begin null; end B; begin null; end A; Agosto 2015 Linguagens de Programação - Amarrações 20
21 Escopo estático Outro exemplo de referência seletiva em Java: class A { public String nome = "a"; public class B { public String nome = "b"; public class C { public String nome = "c"; public void imprime(string nome) { System.out.println(nome); System.out.println(this.nome); System.out.println(C.this.nome); System.out.println(B.this.nome); System.out.println(A.this.nome); // O que imprime o método imprime("d")? Agosto 2015 Linguagens de Programação - Amarrações 21 d c c b a
22 Escopo estático Ocultamento vs. sobrecarga em Java: class Livro { private String titulo; public void settitulo(string titulo) { this.titulo = titulo; Ocultamento Sobrecarga public String titulo() { return titulo; // O que é ocultamento e o que é sobrecarga? Retomaremos o assunto sobrecarga no cap. 5. Agosto 2015 Linguagens de Programação - Amarrações 22
23 Sobrecarga Capacidade de usar o mesmo nome em amarrações diferentes; Deve ser possível distinguir pelo contexto de uso do identificador: Em Java, System.out.print() aceita qualquer tipo, distingue pelo parâmetro; Em Modula não há sobrecarga nos writes: WriteInt(), WriteReal(), etc.; Ada e C++ permitem sobrecarga inclusive de operadores (+, -, *, etc.). Java só de métodos; Praticamente toda linguagem tem algum tipo de sobrecarga: + para inteiros e para reais. Agosto 2015 Linguagens de Programação - Amarrações 23
24 Escopo estático Problemas com a estrutura aninhada: P P A B C A B C D D E D E (a) (b) D precisa ser usado dentro de A e C: Em (a) há repetição; Em (b), D fica visível para P e B também. Agosto 2015 Linguagens de Programação - Amarrações 24
25 Escopo estático Estruturas de blocos em C: int x = 10; int y = 15; void f() { if (y - x) { int z = x + y; int main() { f(); x = x + 3; g(); void g() { int w; w = x; Agosto 2015 Linguagens de Programação - Amarrações 25
26 Escopo vs. tempo de vida Em Algol- like, escopo = tempo de vida; Pode causar problemas exemplos em C: void conta() { int contador = 0; // Deseja-se manter o valor. //... Solução: void conta() { static int contador = 0; //... // Agora sim! Note: static se refere à forma de alocação da variável. Java herda o termo, que parece inadequado quando é associado a escopo de classe e não de objeto. Porém essa é uma consequência da alocação estática! Agosto 2015 Linguagens de Programação - Amarrações 26
27 Escopo vs. tempo de vida Outro exemplo: closures. // Exemplo em Groovy. def obterclosure() { def valor = 10; return { println valor * 2 ; def closure = obterclosure(); closure(); Pense em closures como ponteiros para função. O que a chamada closure() imprime na tela? 20 Agosto 2015 Linguagens de Programação - Amarrações 27
28 Definições e declarações (D&D) Definição: Produz amarrações entre identificadores e entidades criadas na própria definição; Ex.: typedef struct TCoord { double x, y; *Coord; Declaração: Produz amarrações entre identificadores e entidades já criadas ou que ainda o serão; Ex.: typedef struct TCoord *Coord; Agosto 2015 Linguagens de Programação - Amarrações 28
29 Definições e declarações (D&D) Linguagens podem restringir momentos para definições e declarações. Pascal tem um espaço reservado antes do bloco para variáveis; Versões iniciais de C: permite dentro do bloco, mas como primeira instrução; Java/C++: onde quiser, inclusive no for. Agosto 2015 Linguagens de Programação - Amarrações 29
30 Declaração de constantes Em C: const float pi = 3.14; #define pi 3.14 Possibilidade de alterar consts criou cultura de uso de #define, mas este não tem escopo nem tipo. Em Java: // Dentro de uma classe qualquer: final int const1 = 9; static final int const2 = 39; final int const3 = (int)(math.random()*20); static final const4 = (int)(math.random()*20); final int j; Construtor () { j = 1; Agosto 2015 Linguagens de Programação - Amarrações 30
31 Exemplos de D&D: tipos Definições de tipos em C: struct data { int d, m, a; ; union angulo { int graus; float rad; ; enum dia_util { seg, ter, qua, qui, sex ; Declarações de tipos em C: struct data; typedef union angulo curvatura; typedef struct data aniversario; Agosto 2015 Linguagens de Programação - Amarrações 31
32 Exemplos de D&D: variáveis Definições de variáveis em C: int k; union angulo ang; struct data d; int *p, i, j, k, v[10]; Definições com inicialização: int i = 0; char virgula = ','; float f, g = 3.59; int j, k, l = 0, m=23; Agosto 2015 Linguagens de Programação - Amarrações 32
33 Exemplos de D&D: variáveis Definições com inicialização dinâmica: void f(int x) { int i; int j = 3; i = x + 2; int k = i * j * x; Definições com inicialização em variáveis compostas: int v[3] = { 1, 2, 3 ; Agosto 2015 Linguagens de Programação - Amarrações 33
34 Exemplos de D&D: variáveis Declaração de variáveis em C: extern int a; Declaração de variáveis em C++: int r = 10; int &j = r; j++; Agosto 2015 Linguagens de Programação - Amarrações 34
35 Exemplos de D&D: subprogramas Definições de subprogramas em C: int soma (int a, int b) { return a + b; Declaração de subprogramas em C: int incr (int); void f(void) { int k = incr(10); int incr (int x) { x++; return x; Um compilador que fizesse um pré-processamento poderia dispensar a declaração de incr. C não o faz, por isso a forward reference. Em Java ela é desnecessária. Agosto 2015 Linguagens de Programação - Amarrações 35
36 Definições sequenciais Definições sequenciais em C: struct funcionario { char nome [30]; int matricula; float salario; ; struct empresa { struct funcionario listafunc[1000]; int numfunc; float faturamento; ; void f() { int m = 3; int n = m; Agosto 2015 Linguagens de Programação - Amarrações 36
37 Definições sequenciais Definições sequenciais em ML: val par = fn (n: int) => (n mod 2 = 0) val negacao = fn (t: bool) => if t then false else true val impar = negacao o par val jogo = if x < y then par else impar Agosto 2015 Linguagens de Programação - Amarrações 37
38 Definições recursivas Definição recursiva de função em C: float potencia (float x, int n) { if (n == 0) { return 1.0; else if (n < 0) { return 1.0 / potencia(x, -n); else { return x * potencia(x, n - 1); Tipo recursivo em C: struct lista { int elemento; struct lista * proxima; ; Agosto 2015 Linguagens de Programação - Amarrações 38
39 Definições recursivas Definições mutuamente recursivas em C: void segunda (int); void primeira (int n) { if (n < 0) return; segunda (n 1); void segunda (int n) { if (n < 0) return; primeira (n 1); Agosto 2015 Linguagens de Programação - Amarrações 39
40 Definições recursivas Erro em definição de função strcmp em C: int strcmp (char *p, char *q) { return!strcmp (p, q); A ideia era chamar o strcmp original, mas acaba chamando ele mesmo recursivamente; Java possui super.metodo() para explicitar o não- uso da recursividade; Explicitação de recursividade em função ML: val rec mdc = fn (m: int, n: int) => if m > n then mdc (m n, n) else if m < n then mdc (m, n m) else m Agosto 2015 Linguagens de Programação - Amarrações 40
41 Conclusões Foi apresentado o conceito de amarração, tempos de amarração, ambientes de amarração, escopo, etc. Falamos de definições e declarações de constantes, tipos, variáveis e subprogramas; Nas próximas aulas retomaremos de forma mais aprofundada: Tipos de dados; Variáveis; Constantes Subprogramas. Agosto 2015 Linguagens de Programação - Amarrações 41
42 Agosto 2015 Linguagens de Programação - Amarrações 42
Linguagens 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
Nomes, 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
Nomes, 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
Linguagens 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
Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO
Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem
Trabalho 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:
#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C
#include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que
Paradigmas 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
Capí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
Programaçã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
Paradigmas 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
Variáveis primitivas e Controle de fluxo
Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/
Linguagens de Programação 10 Avaliação de Linguagens
Linguagens de Programação 10 Avaliação de Linguagens Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal
Implementando 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
Estudos de Linguagens de Programação - Revisão
Estudos de Linguagens de Programação - Revisão ([email protected]) O que é uma Linguagem de Programação? Linguagem usada por uma pessoa para expressar um processo através do qual um computador pode
Análise Semântica: Verificação de Tipos
Análise Semântica: Verificação de Tipos Introdução Verifica se as construções sintaticamente corretas possuem significado lógico dentro da linguagem Verifica a consistência da declaração e uso dos identificadores
INSTRUÇÕES DE REPETIÇÃO
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 6 INSTRUÇÕES DE REPETIÇÃO As instruções de repetição permitem fazer com que a execução de uma
Nomes, Amarração, Verificação de Tipos, e Escopo
5 Nomes, Amarração, Verificação de Tipos, e Escopo Concepts of Programming Languages, 5/e Robert W. Sebesta Agenda Objetivo desta aula: Introduzir os principais aspectos semânticos de variáveis Palavras-chave
3. 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.2. Estrutura de Programas e Representação
Introdução à Linguagem C
Introdução à Linguagem C Eduardo Simões de Albuquerque Instituto de Informática UFG 13/03/2006 1 História Inventada e desenvolvida por Dennis Ritchie em um DEC- PDP 11 Originária de: BCPL desenvolvida
Nomes, 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 ([email protected]) Tópicos Introdução Nomes Variáveis O conceito de vinculação (binding) Verificação de tipos Tipificação
Implementaçã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
Paradigmas de Linguagens
Paradigmas de Linguagens Aula 2: Tipos de dados Professora Sheila Cáceres Tipos de dados Dados são a matéria prima da computação junto com os programas. LPs precisam manipular dados. LPS utilizam os conceitos
Capítulo 8. Estruturas de Controle no Nível de Sentença
Capítulo 8 Estruturas de Controle no Nível de Sentença Níveis de fluxo de controle Computações são realizadas por meio da avaliação de expressões e da atribuição dos valores a variáveis Para tornar a computação
Programaçã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: [email protected] [email protected]
Compiladores. Análise Semântica
Compiladores Análise Semântica Cristiano Lehrer, M.Sc. Atividades do Compilador Arquivo de origem Análise léxica Análise semântica Síntese Análise sintática Análise Gramáticas Estruturas internas Arquivo
Programação científica C++
Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 2 Expressões Combinação de dados e operadores que resulta em um valor. expressão x = 2 * y + 4; variável operador constante Memória do computador
Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.
Teoria da Computação e Algoritmos Introdução à Linguagem Pascal 1 Estrutura de um programa INÍCIO FIM. PROGRAM END.
Linguagens de Programação. Introdução. Carlos Bazilio
Linguagens de Programação Introdução Carlos Bazilio [email protected] 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
Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.
1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras
PLANO 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
LINGUAGEM C: VARIÁVEIS E EXPRESSÕES
LINGUAGEM C: VARIÁVEIS E EXPRESSÕES Prof. André Backes LINGUAGENS DE PROGRAMAÇÃO Linguagem de Máquina Computador entende apenas pulsos elétricos Presença ou não de pulso 1 ou 0 Tudo no computador deve
Algoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes [email protected] 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento
Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double
Conceituação. Linguagens de Programação Conceitos e Técnicas. Tempos de Amarração. Amarração Estática X Dinâmica. Identificador.
Conceituação Conceitos e Técnicas Amarrações Prof. Jairo Francisco de Souza Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um
ALGORITMOS E ESTRUTURAS DE DADOS CES-11
ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro [email protected] Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA Revisão CES-11 Tipos escalares primitivos Tipos constituídos
Nomes, vinculações e escopos
Nomes, vinculações e escopos 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
Conceitos 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
Conceitos 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 06 ([email protected]) Aula 6 Subprogramas
ao paradigma imperativo
PARADIGMA FUNCIONAL PARADIGMA FUNCIONAL: INTRODUÇÃO G Exemplos de linguagens funcionais LISP - Início: LP puramente funcional - Depois: acréscimo de alguns recursos imperativos (aumentaram eficiência de
Expressõ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
Linguagens de Programação Conceitos e Técnicas. Modularização
Linguagens de Programação Conceitos e Técnicas Modularização Programação em Bloco Monolítico Inviabiliza grandes sistemas de programação Um único programador pois não há divisão do programa Indução a erros
Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.
Computação L2 Linguagem C++ [email protected] Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);
Programaçã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
Paradigmas 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
Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático
Java Básico Objetivo: Os assuntos apresentados no decorrer do curso Java Básico incluem os conceitos gerais desta linguagem assim como a definição e utilização de seus recursos diversos, tais como: tipos
Paradigmas 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;
Lição 4 Fundamentos da programação
Lição 4 Fundamentos da programação Introdução à Programação I 1 Objetivos Ao final desta lição, o estudante será capaz de: Identificar as partes básicas de um programa em Java Reconhecer as diferenças
Linguagem de Programação e Compiladores
Linguagem de Programação e Compiladores Fernando Antônio Asevedo Nóbrega Instituto de Ciências Matemáticas e de Computação USP SCC-206 Introdução à Compilação 24 de abril de 2012 1 / 20 Sumário 1 Introdução
Programação Aplicada à Engenharia
Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Programação Aplicada à Engenharia Aula 07: Aritmética e Tomada de decisão Silvio Fernandes 2009.1 1 Operadores Aritméticos Operadores
Linguagens de Programação Aula 11
Linguagens de Programação Aula 11 Celso Olivete Júnior [email protected] Na aula passada Uma definição de subprograma descreve as ações representadas pelo subprograma Subprogramas podem ser funções
Paradigmas de Linguagens de Programação. Tipos de Dados Abstratos
Tipos de Dados Abstratos Cristiano Lehrer Conceito de Abstração O conceito de abstração é fundamental em programação. Quase todas as linguagens suportam abstração de processos, através de subprogramas:
Linguagens de Programação
Linguagens de Programação Celso Olivete Júnior [email protected] Na aula passada Expressões Precedência e associatividade de operador Sobrecarga de operador Expressões de modo misto Várias formas de
Linguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa
Tipos, 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
Tipos, 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
Linguagem de programação: Pascal
Aula 04 Linguagem de programação: Pascal Prof. Tecgº Flávio Murilo 26/03/2013 1 Pascal Introdução Pascal é uma linguagem de programação estruturada, criada em 1970 pelo suíço Niklaus Wirth, dando este
Linguagem C Princípios Básicos (parte 1)
Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos
Tipo. Tipo de uma variável: especificação de
Checagem de Tipos O que é tipo? Erros de Tipos em FRANKIE não capturados pela gramática Tarefas de um Type Checker e Conversões de Tipos Sistema de Tipos Checagem Estática X Dinâmica Linguagens Fortemente
Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java
Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão
Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Aula 03 Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação Linguagens de Programação A primeira linguagem de programação foi criada por Ada Lovelace. Amiga
Laboratório de programação II
Laboratório de programação II Herança e Polimorfismo Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando
Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN
Fundamentos de Programação Linguagem C++ Introdução, identificadores, tipos de dados Prof. Bruno E. G. Gomes IFRN 1 Linguagem de Programação Constituída por símbolos e por regras para combinar esses símbolos
Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: funções Prof. Renato Pimentel 1 Subprogramas Subprograma: programa que auxilia o programa principal na realização de uma determinada
Tipos. O Conceito de Tipo
Tipos [email protected] 1 O Conceito de Tipo LPs geralmente permitem a organização de dados em diferentes categorias através do conceito de tipo. Um tipo é definido a partir de um conjunto de valores
Paradigmas 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
Linguagens de Programação I
Linguagens de Programação I Tema # 4 Operadores em C Susana M Iglesias FUNÇÕES ENTRADA-SAÍDA I/O printf(), utilizada para enviar dados ao dispositivo de saída padrão (stdout), scanf(), utilizada para ler
