Linguagens de Programação Nomes, Amarrações e Escopo
|
|
|
- Rachel Arruda Santiago
- 8 Há anos
- Visualizações:
Transcrição
1 Linguagens de Programação Nomes, Amarrações e Escopo Andrei Rimsa Álvares
2 Sumário Nomes Amarrações Escopo
3 NOMES Linguagens de Programação
4 Nomes Conceito mais amplo que variáveis Podem representar Variáveis Labels Sub-programas (funções) Parâmetros formais Outras construções
5 Decisões de Design Qual deve ser o tamanho máximo de um nome? Pode-se ullizar caracteres conectores? Os nomes são case-sensi(ve? Palavras especiais são reservadas?
6 Formato dos Nomes Tamanho fixo ou variável? FORTRAN I e FORTRAN 77 7 caracteres FORTRAN 90 e C 31 caracteres C++ Sem limites na teoria, mas depende de implementação Java Sem limites Case-sensiLve ou case-insensilve? Case-sensiLve diminui a legibilidade do código Ex.: rosa, Rosa, ROSA
7 Palavras Especiais Palavras especiais Nomear ações a serem executadas Separam enldades estálcas Palavras reservadas vs palavras-chave Ex.: em FORTRAN REAL laranja REAL = 3.4 REAL INTEGER INTEGER REAL
8 Variáveis Variáveis são abstrações de endereços de memória Tornam os programas mais fáceis de codificar e entender Uma variável pode ser caracterizada pelo seu: Nome Endereço Valor Tipo Tempo de vida Escopo
9 IdenLficadores das variáveis Variáveis: Nomes
10 Variáveis: Endereços Endereço de memória associado Um mesmo nome pode estar associado a diferentes endereços Duas variáveis com o mesmo nome (em funções dislntas) Mesma variável, mas em uma função recursiva Este endereço é conhecido como l-value
11 Variáveis: Aliases MúlLplos idenlficadores apontando para a mesma área de memória Pode haver perda de legibilidade A modificação de uma variável tem efeito em outra variável
12 Variáveis: Tipo Determina faixa de valores que uma variável pode receber Exemplo: short ( a 32767) Conjunto de operações associadas Operações: +, -, *, / Funções: abs, exp
13 Variáveis: Valor O conteúdo do endereço de memória associado a variável Abstração da memória com o tamanho da variável Também conhecida como r-value Para acessar o r-value, deve-se conhecer o l-value
14 AMARRAÇÕES Linguagens de Programação
15 Conceituação Amarração (ou binding) é uma associação entre enldades de programação Variável/Valor IdenLficador/Tipo Operador/símbolo O tempo que ocorre a amarração é chamado tempo de amarração Enfoque na amarração de idenlficadores a enldades
16 Tempos de Amarração As construções de uma linguagem podem ter os seguintes tempos de amarração 1) Tempo de projeto da LP 2) Tempo de implementação 3) Tempo de compilação 4) Tempo de ligação 5) Tempo de carga 6) Tempo de execução Por que é importante saber o tempo de amarração?
17 1) Tempo de Projeto da LP Definição dos símbolos da linguagem e seu comportamento Ex: * (mullplicação) Definição das palavras-reservadas e seu comportamento Ex.: true, if, while
18 2) Tempo de Implementação Implementadas durante a codificação do tradutor (em geral nos compiladores) Exemplo: Em C, definição da faixa de valores do Lpo char -128 a 127 int -2,147,483,648 a 2,147,483,647
19 3) Tempo de Compilação Associação da variável com seu Lpo Exemplo: int i; char c; Associação de expressões com seus operadores Exemplo: 3 * 2 (x >> 4) & 0xF
20 4) Tempo de Ligação Integração (ligação) de vários módulos compilados previamente Exemplo #include <stdio.h> #include <math.h> Onde está a implementação da função sqrt? void main() { printf("%f\n", sqrt(25)); } Na biblioteca de matemálca (libm.a) que pode ser ligada adicionando a flag lm ao gcc
21 5) Tempo de Carga Durante o carregamento do programa Memórias associadas a variáveis globais e constantes Endereços de memória relalvos subsltuídos por endereços de memória absolutos
22 6) Tempo de Execução Ocorridas em tempo de execução Exemplo: Associação de valor a variável Ex: int x = 5; Associação de áreas de memória a variáveis Ex: int x = new int;
23 Exercício Considere o seguinte trecho de código em C e preencha a tabela: int cont; /*... */ cont = cont + 5; Exemplo Possíveis Lpos de cont Tipo de cont Possíveis valores de cont Valor de cont Possíveis significados do operador + Significado do operador + nesta atribuição Representação interna do literal 5 Tempo de Amarração
24 Amarrações O momento em que ocorre a ligação pode ser classificado como cedo (early binding) ou tardio (late binding) Quanto mais cedo ocorre a ligação, maior a eficiência de execução do programa, mas menor a flexibilidade das estruturas disponibilizadas
25 Amarração de Tipo O Lpo deve ser amarrado a variável para que esta seja referenciada pelo programas Aspectos importantes Como o Lpo deve ser definido? Quando a amarração deve ser feita? Amarrações de Lpos Amarração EstáEca Antes da execução Permanece inalterada na execução Amarração Dinâmica Durante a execução Pode ser criada/alterada na execução
26 Amarração de Tipo EstáLca Pode ser oblda através de Declaração explícita: instrução do programa que lista nomes de variáveis e especifica os Lpos. Ex.: em C: int i, char c; Declaração implícita: Convenções determinam seu Lpo. Exemplo em Fortran: começam com I, J, K, L, M, ou N (INTEGER), outras (REAL) Exemplo em Perl: começam com $ (array), % (hashtable)
27 Amarração de Tipo Dinâmica A variável é vinculada a um Lpo quando lhe é atribuída um valor em uma instrução de atribuição A variável que está sendo atribuída é vinculada ao Lpo do valor, variável ou expressão do lado direito da atribuição Vantagens: Flexibilidade e generalidade Desvantagens: Redução da capacidade de detecção de erro pelo compilador Custo de implementação da vinculação dinâmica
28 Amarração de Tipo Dinâmica Exemplo de alteração de Lpo dinamicamente em C# dynamic variavel = new Int32(); variavel = 10; // Int32 variavel = 2.5; // Double variavel = 25/02/2011"; //String variavel = DateTime.Parse(variavel); // Data Exemplo de operadores que alteram o Lpo PHP <?php $x = 20; var_dump($x); $x += 'Texto...'; var_dump($x);?> JavaScript <script> var x = 20; alert(typeof(x)); x += "Texto..."; alert(typeof(x)); </script>
29 Amarrações de Armazenamento Alocação Amarração feita em uma célula de memória disponível oblda de um pool de memória Desalocação Devolver a célula de memória desvinculada à variável de volta ao pool de memória Tempo de vida O tempo no qual aquela variável está vinculada a célula de memória alocada Começa quando a variável é alocada e termina quando ela é desalocada
30 Amarrações de Armazenamento Classificação das variáveis quanto à amarração de armazenamento Variáveis estálcas Variáveis stack-dinâmicas (pilha) Variáveis heap-dinâmicas Explícitas Implícitas
31 Variáveis EstáLcas Vinculadas à memória antes da execução e permanecem até o programa terminar Vantagens Variáveis em subprogramas sensíveis à história (retêm valores entre chamadas) Eficiência: endereçamento direto; inexistência de overhead de alocação e desalocação Desvantagens Flexibilidade reduzida (recursão) Impossibilidade de comparllhamento da memória
32 Variáveis EstáLcas Exemplo em C #include <stdio.h> static char* var = "global"; void main() { printf("%s\n", var); } Em C é alocada em tempo de compilação Exemplo em Java class Foo { public static String bar = "foobar"; } Em Java é alocada em tempo de carregamento da classe
33 Variáveis Stack-Dinâmicas Vinculadas à células de memória no momento da declaração, mas o Lpo é definido estalcamente Vantagens Permite recursividade Permite o comparllhamento de memória Desvantagens Overhead de alocação e desalocação em tempo de execução Não são sensíveis à história
34 Variáveis Stack-Dinâmicas Exemplo em C void funct(int size) { char buffer[size]; /*... */ }
35 Variáveis Heap-Dinâmicas Explícitas Células (abstratas) de memória alocadas e desalocadas pelo programador durante a execução do programa A heap mantém uma coleção de células alocadas dinamicamente (altamente desorganizada) Células somente podem ser referenciadas através de ponteiros ou referências A vinculação de Lpo é feita estalcamente, mas o armazenamento é feito dinamicamente
36 Variáveis Heap-Dinâmicas Explícitas Vantagens Gestão dinâmica de memória Desvantagens Custo associado a manutenção da heap (alocação/desalocação) A ullização de ponteiros não é segura
37 Variáveis Heap-Dinâmicas Explícitas Exemplo em C Exemplo em C++ Exemplo em Java int* node = malloc(sizeof(int)); /*... */ free(node); int* node = new int; /*... */ delete node; Integer node = new Integer(10); /*... */ Onde é feita a liberação da memória em Java?
38 Variáveis Heap-Dinâmicas Implícitas Armazenamento (célula de memória) somente é associado quando um valor é atribuído Vantagens Elevado grau de flexibilidade do Lpo de variável, permilndo definir códigos genéricos Desvantagens Ineficiente porque todos os atributos da variável são dinâmicos; Dificuldade de detecção de erros pelo compilador.
39 Variáveis Heap-Dinâmicas Implícitas Exemplo em JavaScript Exemplo em Perl <script> var list = [ 5, "texto" ]; alert(typeof(list)); </script> #!/usr/bin/perl!! = ( "1", "2", "3");!! for $e (@array) {! print $e. "\n";! }!
40 ESCOPO Linguagens de Programação
41 Escopo Em quais partes do programa (instruções) uma variável é visível (visibilidade) Ou seja, se pode ser referenciada naquele ponto Variáveis não-locais de uma unidade do programa são aquelas visíveis, mas não declaradas lá As regras de escopo determinam como os nomes são associados com as variáveis
42 Escopo Exemplo 01: int a = 13; 02: void f() { 03: int b = a; // Referência à variável do ponto 1 04: int a = 2; 05: b = b + a; // Referência à variável do ponto 4 06: }
43 Escopos Aninhados Definição de escopos dentro de outros, formando uma sequência de escopos com sucessores e antecessores A redefinição de uma variável com o mesmo nome (num escopo interior) de uma já existente num escopo exterior, permite "esconder" (shadow) a definição exterior C++, Pascal, ADA permitem o acesso a estas variáveis escondidas em escopos exteriores Já Java não aceita shadow dentro de procedimentos
44 Tipos de Escopo EstáLco Baseado na descrição textual do programa Amarrações feitas em tempo de compilação Ex: Algol, Pascal, C, C++, Java, C#, Ada Dinâmico Baseado na sequência de alvação (chamadas) dos módulos do programa Amarrações feitas em tempo de execução Ex: Lisp, APL, SNOBOL, Smalltalk
45 Escopo EstáLco Blocos Permite que uma seção de código possua suas próprias variáveis locais com escopo reduzido Trecho de código delimitado por marcadores Pascal: begin e end C, C++: { e }
46 Escopo EstáLco x x y z w x y z w x Bloco MonolíLco Blocos Não Aninhados Blocos Aninhados
47 Escopo EstáLco x Programa com um único bloco Amarrações com visibilidade global Estrutura muito elementar Não apropriada para grandes programas Dificulta a codificação por grandes equipes de programadores Bloco MonolíLco Ex: BASIC e COBOL
48 Escopo EstáLco x y z Programa divido em blocos Somente locais ou globais Qualquer variável não-local deve ser global w Blocos Não Aninhados Exemplo FORTRAN: Todos os subprogramas são separados e cada um atua como um bloco
49 Escopo EstáLco x y z w x Blocos podem ser aninhados dentro de outros blocos IdenLficadores podem ser amarrados em cada bloco IdenLficadores são procurados de dentro para fora Blocos Aninhados Vantagem: programas + legíveis Desvantagem: ocultamento de variáveis
50 Escopo EstáLco Exemplo de ocultamento em C: #include <stdio.h> void main() { int i = 0; int x = 10; while (i++ < 100) { float x = 3.231; printf("x = %f\r\n", x * i); } } Java não permite tal ocultamento!
51 Escopo EstáLco Problemas com estrutura aninhada P P A B C A B C D D E D Bloco D duplicado E Bloco D acessível por mais blocos que intencionado
52 Escopo EstáLco C ulliza uma abordagem mista Definidos por funções: Blocos não-aninhados Funções podem ser reusadas e variáveis globais podem ser comparllhadas (visibilidade global) Definidos internamente: Blocos aninhados Não pode ser reaproveitado
53 Escopo EstáLco Exemplo em C 01: #include <stdio.h> 02: 03: int x = 10; 04: int y = 15; 05: 06: void f() { 07: if (y x) 08: int z = x + y; 09: } 10: void g() { 11: int w; 12: w = x; 13: } 14: 15: void main() { 16: f(); 17: x = x + 3; 18: g(); 19: }
54 Escopo Dinâmico São amarradas de acordo com o fluxo de programa IdenLficador é associado à declaração mais próxima na pilha de chamada Exemplo em linguagem hipotélca program p { inteiro x = 1; procedimento sub1() { escreva(x); } procedimento sub2() { inteiro x = 3; sub1(); } sub2(); sub1(); }
55 Escopo Dinâmico Problemas Perda de eficiência verificação de Lpos em tempo de execução Redução na legibilidade di~cil determinar a sequência de chamadas Acesso lento a variáveis não locais di~cil idenlficar os idenlficadores da sequência de chamadas Redução da confiabilidade variáveis locais acessadas por quaisquer funções chamadas
56 Tempo de Vida Escopo e tempo de vida possuem uma relação próxima, mas são conceitos diferentes Escopo estálco é um conceito textual Tempo de vida é um conceito temporal
57 Tempo de Vida program P var m: integer; procedure R (n: integer); begin Escopo de n Escopo de m if n > 0 then R (n-1) end; begin R(2) end. início P início R(2) início R(1) início R(0) fim R(0) fim R(1) fim R(2) fim P tempo de vida n=0 tempo de vida n=1 tempo de vida n=2 tempo de vida m
58 Tempo de Vida Exemplo em C Variável x void foo() { static int y; /*... */ } int main() { int x; foo(); } Escopo: não estende foo Tempo de vida: estende foo Variável y Escopo: visível em foo Tempo de vida: estende por todo o programa
59 Ambientes de Referenciamento Conjunto de todos os nomes visíveis em uma determinada instrução ou ponto de programa No escopo estálco, o ambiente de referenciamento é consltuído de todas as variáveis declaradas em seu escopo local, com o conjunto de todas as variáveis de seus escopos ascendentes visíveis
60 Ambientes de Referenciamento program exemplo; var a,b: integer; procedure sub1; var x,y: integer; begin (1) end; procedure sub2; var x: integer; procedure sub3; var x: integer; begin (2) end; begin (3) end; begin (4) end; Ponto (1) x, y (???) a, b (???) Ponto (2) x (???) a, b (???) Ponto (3) x (???) a, b (???) Ponto (4) a, b (???)
61 Ambientes de Referenciamento program exemplo; var a,b: integer; procedure sub1; var x,y: integer; begin (1) end; procedure sub2; var x: integer; procedure sub3; var x: integer; begin (2) end; begin (3) end; begin (4) end; Ponto (1) x, y (sub1) a, b (exemplo) Ponto (2) x (sub3) a, b (exemplo) Ponto (3) x (sub2) a, b (exemplo) Ponto (4) a, b (exemplo)
62 Constantes Uma constante é uma variável vinculada a um valor no momento em que é vinculada a uma célula de memória O valor das constantes não pode ser alterado Ajudam na legibilidade e confiabilidade do programa
63 Inicialização de Variáveis A vinculação de uma variável a um valor, no momento em que é vinculada a uma célula de memória, é designado por inicialização Exemplos Fortran: REAL PI INTEGER SOMA DATA SOMA /0/, PI /3,14159/ Ada: SOMA: INTEGER : = 0; Pascal não oferece meios de se inicializar variáveis, exceto na atribuição
64 ISSO É TUDO PESSOAL! Linguagens de Programação
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
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
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
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
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
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
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
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
Paradigmas de Linguagens de Programação. Subprogramas
Cristiano Lehrer Características Gerais dos Cada subprograma tem um único ponto de entrada Toda unidade de programa chamadora é suspensa durante a execução do programa chamado, o que implica na existência
02. [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
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
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
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
Linguagens de Programação 2 Amarrações
Linguagens de Programação 2 Amarrações Vítor E. Silva Souza ([email protected]) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo
Paradigmas de Linguagens de Programação. Tipos de Dados
Tipos de Dados Cristiano Lehrer Introdução (1/2) 1956: FORTRAN I 1983: ADA INTEGER, REAL, arrays. Usuário pode criar um único tipo para cada categoria de variáveis no espaço de problemas e deixar o sistema
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
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
Compiladores. 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
Capítulo 9. Subprogramas
Capítulo 9 Subprogramas Introdução Dois recursos fundamentais de abstração Abstração de processos Desde o início da história das linguagens de programação Abstração de dados Desde o início dos anos 1980
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:
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
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 Aula 12
Linguagens de Programação Aula 12 Celso Olivete Júnior [email protected] Na aula passada Implementando subprogramas 2 Na aula de hoje Suporte para a programação orientada a objetos 3 Roteiro Introdução
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
Revisão da Linguagem C Prof. Evandro L. L. Rodrigues
SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos
Linguagens de Programação. Nomes, Escopos e Vinculações (Bindings) Carlos Bazilio
Linguagens de Programação Nomes, Escopos e Vinculações (Bindings) Carlos Bazilio [email protected] http://www.ic.uff.br/~bazilio/cursos/lp Nomes Forma mais simples de abstração Um nome é um caracter
Tipos 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
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
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:
02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais?
01. [Sebesta, 2000] O que é um descritor? 02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais? 03. [Sebesta, 2000] Quais são as questões de projeto relativas aos tipos
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 04 ([email protected]) Aula 4 2 Evolução dos
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
Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto
Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural
POO e C++: Herança e Polimorfismo
POO e C++: Herança e Polimorfismo Márcio Santi Luiz Fernando Martha Conceito de Herança em POO Recurso que torna o conceito de classe mais poderoso; Permite que se construa e estenda continuamente classes
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/
Introdução a Programação de Jogos
Introdução a Programação de Jogos Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição
Capí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
Projeto de Linguagem. Linguagens de Programação
Projeto de Linguagem Renato Ferreira Linguagens de Programação Linguagens são adotadas para preencher uma demada Facilitar uma aplicação outrora difícil/impossível Independente da qualidade da linguagem
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
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 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
Ambiente de tempo de Execução Cap. 7
Ambiente de tempo de Execução Cap. 7 Introdução Subdivisão da memória usada pelo programa em tempo de execução Segmento de Código Segmento Estático (segmento de dados) Pilha Área de memória livre Heap
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
Rotinas, Modos e Tipos de Passagem de Parâmetros
Linguagens de Programação Rotinas, Modos e Tipos de Passagem de Parâmetros Carlos Bazilio [email protected] http://www.ic.uff.br/~bazilio/cursos/lp Chamada de Rotinas Rotina f Rotina g(w) g (k) Passagem
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;
Capacitação em Linguagem C Parte 1
Capacitação em Linguagem C Parte 1 Andrey Souto Maior Giuseppe Portolese Universidade Estadual de Maringá - Centro de Tecnologia Departamento de Informática 21 de outubro de 2015 Sumário I Definição e
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
Suporte a programação orientada a objetos
Suporte a programação orientada a objetos 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
ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal
ALGORITMOS AULA 01 Baseado nas aulas do Prof. Jorgiano Vidal LINGUAGEM C Uma das grandes vantagens do C é que ele possui tanto caracterìsticas de "alto nìvel" quanto de "baixo nìvel". Linguagem de propósito
Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?
Introdução à Ciência da Computação Ponteiros em C Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros
Programaçã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];
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
Universidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza
Universidade Federal do Espírito Santo Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza Variáveis Tipos de Dados Básicos Formação dos identificadores o nome deve começar com uma letra
Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação
Ederson Luiz da Silva Ciência da Computação Algoritmos e Programação Linguagem de programação Linguagem de Programação Linguagem de máquina http://www.assemblyprogressivo.net/p/curso.html Linguagem de
Conhecendo a Linguagem de Programação C
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Conhecendo a Linguagem de Programação C DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Como
Ambientes de Execução
Ambientes de Execução Organização da memória Ambientes totalmente estáticos, baseados em pilhas e totalmente dinâmicos Passagem de parâmetros Prof. Thiago A. S. Pardo 1 Ambientes de execução na estrutura
Ambientes de Execução
Ambientes de execução na estrutura do compilador programa-fonte Ambientes de Execução Tabela de símbolos analisador léxico analisador sintático Organização da memória Ambientes totalmente estáticos, baseados
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
Classificação das linguagens de programação
Introdução Linguagem É um meio de comunicação entre pessoas. Faculdade de expressão audível e articulada do homem. Conjunto de sinais falados, escritos ou gesticulados de que se serve o homem para demonstrar
Estrutura de Dados. Aula 07 Alocação Dinâmica
Estrutura de Dados Aula 07 Alocação Dinâmica 2 ALOCAÇÃO DINÂMICA Existem três modos de reservar espaço de memória para o armazenamento de informações: 1ª - através do uso de variáveis globais (e estáticas).
Linguagem C. André Tavares da Silva.
Linguagem C André Tavares da Silva [email protected] Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser
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
Introdução a Computação
Introdução a Computação Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Programação Programa é um algoritmo escrito em uma linguagem de programação. Existem diversas linguagens
