Conceituação. Linguagens de Programação Conceitos e Técnicas. Tempos de Amarração. Amarração Estática X Dinâmica. Identificador.
|
|
- Gilberto Borba Braga
- 8 Há anos
- Visualizações:
Transcrição
1 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 identificador e um tipo Enfoque na amarração de identificadores a entidades 2 Tempos de Amarração Identificador ou Entidade Símbolo Tempo de Amarração * Operação de multiplicação projeto da LP int Intervalo de inteiros projeto da LP (JAVA) implementação do compilador (C) variável Tipo compilação (C) execução (polimorfismo em C++) função Código correspondente da função ligação variável global variável local Variável em memória Variável em memória carga do programa execução Amarração Estática X Dinâmica Amarração estática Se ocorre antes da execução do programa e permanece inalterada ao longo de toda a execução. Amarração dinâmica Quando a amarração ocorre ou é alterada durante a execução do programa. 3 4 Identificadores Identificadores Identificadores são cadeias de caracteres 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 e limitar o número máximo de caracteres Alguns identificadores podem ter significado especial para a LP Palavras reservadas Palavra Chave Palavras Pré-definidas FORTRAN: exemplo de palavra-chave REALR REALéencaradocomoumapalavraespecial REAL=3.0 Nãoéumapalavraespecial C: fopen e fclose (identicadores pré-definidos na biblioteca padrão q podem ser redefinidos pelo programador). Identificadores globais vidalonga nomes longos Camel notation: meuarray Identificadores locais vidacurta nomes curtos letras: i,j,k 5 6 1
2 Ambientes de Amarração A interpretação de comandos e expressões, tais como a = 5 ou g(a + 1), dependem do que denotam os identificadores utilizados nesses comandos e expressões Um ambiente (ou environment) é um conjunto de amarrações Cada amarração possui um determinado escopo, isto é,aregiãodoprograma ondeaentidade évisível Ambientes de Amarração Amarração de Identificador a Duas Entidades Distintas no Mesmo Ambiente inta=13; voidf(){ intb=a; inta=2; b=b+a; 7 8 Escopo Escopo estático É formado pelas instruções nas quais a variável é visível Uma variável é visível em uma instrução se ela puder ser referenciada na instrução O programador precisa ter um conhecimento completo das regras de escopo de uma LP para escrever e ler programas nela Elas determinam como a ocorrência de um nome deve ser associado a uma variável; Em particular, como a referência a uma variável declarada fora do subprograma ou bloco corrente (variável não-local) é associada a uma declaração e, dessa forma, a seus atributos; Um variável é local a uma unidade ou bloco de programa se ele é declarada lá As variáveis não-locais de uma unidade ou bloco de programa são aquelas visíveis mas não declaradas lá Métodos de determinação do escopo de variáveis: estático e dinâmico 9 10 Escopo estático Ocultamentode definições de variáveis em blocos aninhados x x x y y w z z w x Bloco Monolítico Blocos Não Aninhados Blocos Aninhados A declaração de uma variável oculta qualquer outra declaração de variável com o mesmo nome, em um escopo mais abrangente; Problema com a utilização das regras de escopo estático: visibilidade exagerada para algumas variáveis. P.ex: as variáveis declaradas no programa principal são visíveis a todos os subprogramas;
3 Escopo Estático Escopo Estático 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; Problemas com Estrutura Aninhada P P A B C A B C D E D E a b D Escopo Estático Abordagem mista na qual blocos definidos por funções adotam uma estrutura não-aninhada e os blocos internos às funções adotam uma estrutura aninhada. Estrutura de Blocos de C intx=10; inty=15; voidf(){ if(y x){ intz=x+y; voidg(){ intw; w=x; voidmain(){ f(); x=x+3; g(); possível pois adota estrutura não aninhada 15 Baseado na seqüência da chamada dos subprogramas, e não na sua posição dentro do texto do programa; Determinado em tempo de execução; Exemplos: LPs que adotaram escopo dinâmico: APL, SNOBOL4, e as primeiras versões do LISP; Perl e COMMON LISP: usam as regras de escopo estático, mas permitem que variáveis sejam declaradas como tendo escopo dinâmico; 16 Se a seqüência de ativação for (1), a referência à variável X em Sub1 vai ser resolvida com a declaração de X em Sub2; Se a seqüência de ativação for (2), a referência à variável X em Sub1 vai ser resolvida com a declaração de X em Big; Exemplo: Usando escopo dinâmico, qual seria o valor impresso por escreva(x) quando a instrução sub().sub2() for executada? E quando a instrução sub().sub1() for executada? procedimento sub(){ inteirox=1; procedimento sub1() { escreva( x); procedimento sub2() { inteirox=3; sub1(); sub2(); sub1();
4 Exemplo: Usando escopo dinâmico, qual seria o valor impresso por escreva(x) quando a instrução sub().sub2() for executada? R:3 E quando a instrução sub().sub1() for executada? R:1 procedimento sub(){ inteirox=1; procedimento sub1() { escreva( x); procedimento sub2() { inteirox=3; sub1(); sub2(); sub1(); Problemas Eficiência Legibilidade Confiabilidade Não usado pela maioria das LPs Definições e Declarações Definições e Declarações Definições produzem amarrações entre identificadores e entidades criadas na própria definição Declarações produzem amarrações entre identificadores e entidades já criadas ou que ainda o serão Algumas LPs permitem declarações e definições dentro de blocos. A maioria dos compiladores C requer que elas sejam feitas imediatamente após o marcador{ C++eJavapermitemqsejamfeitasemqualquerponto Localização de Definições de Variáveis em C++ voidf(){ inta=1; a=a+3; intb=0; b=b+a; Declaração de Constantes Definições e Declarações de Tipos EmC constfloatpi=3.14; aindapermitemudançasnovalor #define pi 3.14 mais restritivo Em JAVA finalintconst1 =9; staticfinalintconst2 =39; final int const3 =(int)(math.random()*20); static final const4 =(int)(math.random()*20); Inicialização de constantes em lugar distinto da declaração, em Java: finalintj; Construtor(){ j=1; Definições Tipos em C struct data{ intd,m,a; ; union angulo{ int graus; float rad; ; Declarações Tipos em C struct data d; typedef union angulo curvatura; typedef struct data aniversario; enum dia_util{ seg, ter, qua, qui, sex ;
5 Definições e Declarações de Variáveis Definições e Declarações de Variáveis DefiniçõesdeVariáveisemC intk; union angulo ang; struct data d; int*p,i,j,k,v[10]; Definições com Inicialização inti=0; charvirgula =','; floatf,g=3.59; intj,k,l=0,m=23; Definições com Inicialização Dinâmica voidf(intx){ inti; intj=3; i=x+2; intk=i*j*x; Definições com Inicialização em Variáveis Compostas intv[3]={1,2,3; Verificação de tipo de variáveis Verificação de que os operandos são de tipo compatível com o operador; O tipo de um operando é compatível com o do operador quando ele é um dos tipos aceitos pelo operador ou quando ele pode ser automaticamente convertido para um desses tipos(coersão) Exemplo: se, em Java, uma variável int é somada a uma variável float, o valor da variável int é convertido automaticamente para float antes da soma. Além dos operadores da LP (que normalmente representam operações pré-definidas), também estão sujeitos à verificação de tipo: Subprogramas (que podem ser vistos como operações definidas pelo programador): os argumentos dos subprogramas devem ser de tipo compatível com o subprograma; Comandos de atribuição: o resultado da expressão do lado direito (do sinal de atribuição) deve ser de tipo compatível com o da variável do lado esquerdo 27 Verificação de tipo de variáveis Umerrode tipoéaaplicaçãode um operador a um operando de tipo não-compatível LPs com vinculação estática de tipo: a verificação de tipo pode ser feita de forma estática(em tempo de compilação) Exceção: quando a LP permite que uma célula de memória assuma valores de tipos diferentes ao longo da execução; p.ex: Fortran (Equivalence), Ada(variant records), C e C++(unions) 28 Amarração dinâmica de tipos A variável é vinculada a um tipo quando a ela é atribuído um valor: ela assume o tipo do valor que recebe; Exemplos de LPs com vinculação dinâmica de tipo: PHP e JavaScript. Por exemplo, em JavaScript: list = [10.2, 3.5] /*list passa a ser do tipo vetor de comprimento2*/ list=47/*listapassaaserdotipoescalar*/ Vantagem da vinculação dinâmica de tipo: flexibilidade Exemplo: um programa para processar uma lista de números pode ser feito como um programa genérico, capaz de funcionar corretamente, qualquer que seja o tipo dos dados fornecidos. Amarração dinâmica de tipos Desvantagens Menor confiabilidade; Maior custo: A verificação de tipo deve ser feita em tempo de execução; Gasto maior de memória: toda variável precisa ter, em tempo de execução, um descritor associado a ela; A implementação da LP tem de ser feita através de interpretação pura (10x mais demorado em relação à compilação); isso porque os computadores não tem instruções capazes de manipular operandos de tipo desconhecido
6 Tipagem forte Uma LP é fortemente tipada se erros de tipo são sempre detectados. Requisito: o tipo de todos os operandos devem poder ser determinados, seja em tempo de compilação ou em tempo de execução Importância: os programas são mais confiáveis AlgumasLPseasuatipagem: Fortran 95: não é fortemente tipado(instrução Equivalence); Ada: quase fortemente tipada(função Unchecked_Conversion); C e C++: não são fortemente tipadas(union types); ML: fortemente tipada (tipos são declarados ou inferidos estaticamente); Java e C#: quase fortemente tipada (conversão explícita de tipo); Verificação de tipo e coersão Coersão enfraquece a tipagem forte: erro de tipo pode deixar de ser detectado Porexemplo:sejamaebvariáveisdeclaradasdotipofloated do tipo int. Suponha que o programador desejava calcular a + b, mas em vez disso digitou a + d por engano. Em Java esse erro não seria detectado, pois o compilador providenciaria a conversão automática (coersão) do valor inteiro de d para o correspondente valor real, e a soma seria realizada. ExemplodeLPscommuitacoersão:Fortran,CeC++; Exemplo de LP com coersão média: Java e C# (metade de C++); Exemplo de LP com baixa coersão: Ada Compatibilidade de tipo Importância: Duas variáveis com tipos compatíveis podemteratribuição dovalordeumaàoutra Métodos de determinação da compatibilidade de tipo: Compatibilidade por nome do tipo: duas variáveis têm tipos compatíveis se elas são definidas na mesma declaração, ou em declarações que utilizam o mesmo nomedetipo Compatibilidade por estrutura do tipo: duas variáveis têm tipos compatíveis se eles possuem estruturas idênticas. Existem algumas variações desses métodos, e muitas LPs utilizam uma combinação de ambos Compatibilidade por nome Mais fácil de implementar mas muito restritivo. Por exemplo, uma variável do tipo sub-faixa de inteiros não é compatível com uma variável do tipo inteiro: type Indextype is ; count:integer; index:indextype; /*count e index são consideradas de tipos incompatíveis Compatibilidade por estrutura Mais flexível mas também mais difícil de implementar(qual deve ser o critério para considerar duas estruturas idênticas?) Impede diferenciar tipos com a mesma estrutura. Por exemplo, com a declaração abaixo, variáveis dos tipos celsius e fahrenheit seriam consideradas compatíveis, podendo aparecer misturadas em uma expressão (o que não é apropriado). Compatibilidade em algumas LPs Ada: Em geral, utiliza a compatibilidade por nome, mas tem o construtor de tipos subtype (subtipo), que evita o problema associado com esse método: subtype Small_type is Integer range 0..99; /* Variáveis do tipo Small_type são compatíveis com variáveis Integer type celsius=float; type fahrenheit =Float;
7 Compatibilidade em algumas LPs Ada: Utiliza compatibilidade por estrutura para variáveis do tipo array; entretanto, variáveis de tipos anônimos não são compatíveis entre si, mesmo tendo a mesma estrutura: A :array(1..10) of Integer; B :array(1..10) of Integer; /* A e B são de tipos incompatíveis, embora a estrutura dos seus tipos seja idêntica As regras de compatibilidade de tipo são mais importantes paraadadoqueparalpsquetemmuitacoersãodetipos Compatibilidade em algumas LPs C: Utiliza compatibilidade por estrutura para todos os tipos exceto para aqueles criados com os construtores struct e union. Toda declaração struct e union cria um novo tipo incompatível com qualquer outro tipo. C++: Utiliza compatibilidade por nome Fortran e COBOL: Os tipos não tem nome, e portanto, acompatibilidade por tiponãopodeserusada Definições e Declarações de Subprogramas Definição de Subprogramas em C intsoma(inta,intb){ returna+b; Declaração de Subprogramas em C int incr(int); void f(void){ intk=incr(10); intincr(intx){ x++; return x; Definições Compostas Seqüenciais Definições Seqüenciais em C struct funcionario { char nome[30]; int matricula; float salario; ; struct empresa{ funcionario listafunc [1000]; int numfunc; float faturamento; ; intm=3; intn=m; Definições Compostas Seqüenciais Definições Compostas Recursivas Definições Seqüenciais em ML valpar=fn(n:int)=>(nmod2=0) valnegacao=fn(t:bool)=>iftthenfalseelsetrue valimpar=negacaoopar valjogo=ifx<ythenparelseimpar Definição Recursiva defunção emc floatpotencia (floatx,intn){ if(n==0){ return 1.0; elseif(n<0){ return 1.0/ potencia (x,-n); else{ returnx*potencia (x,n-1); Tipo Recursivo em C struct lista { int elemento; struct lista * proxima; ;
8 Definições Compostas Recursivas Definições Compostas Recursivas Definições Mutuamente Recursivas em C void segunda(int); voidprimeira(intn){ if(n<0)return; segunda (n 1); voidsegunda(intn){ if(n<0)return; primeira(n 1); 43 ErroemDefinição defunção strcmp emc intstrcmp(char*p,char*q){ return!strcmp (p, q); função da biblioteca, ao invés da função recursiva! Seria interessante se pudéssemos dizer se a função é recursiva ou não Explicitação de Recursividade em Função ML valrecmdc=fn(m:int,n:int)=> ifm>nthenmdc(m n,n) elseifm<nthenmdc(m,n m) elsem 44 8
Linguagens 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 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 maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisConceitos de Linguagens de Programação
Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações
Leia maisLinguagens de Programação Aula 10
Linguagens de Programação Aula 10 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada As sentenças de controle das LP imperativas ocorrem em diversas categorias: seleção, seleção múltipla, iteração
Leia maisProgramação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada
Programação Estruturada Programação Estruturada Paradigmas de Linguagens de Programação As linguagens desse paradigma são muitas vezes chamadas de linguagens convencionais, procedurais ou imperativas.
Leia mais1.6. Tratamento de Exceções
Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER
Leia maisJSP - ORIENTADO A OBJETOS
JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...
Leia maisIntrodução à Programação
Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5
Leia maisLP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br
LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-3 Criando Classes em Java Prof. Esbel Tomás Valero Orellana Da Aula Anterior Classes em Java, sintaxe básica Tipos básicos de dados em Java, como escolher o tipo apropriado
Leia maisAlgoritmos e Programação Estruturada
Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisINF 1005 Programação I
INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:
Leia maisCapítulo 2: Introdução à Linguagem C
Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso
Leia mais2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10
1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...
Leia mais17 - Funções e Procedimentos em C Programação Modular
17 - Funções e Procedimentos em C Programação Modular Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante 17
Leia maisE/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética
2 PARADIGMA IMPERATIVO 2.1 CONCEITO As linguagens que pertencem ao paradigma imperativo tomam por base a perspectiva da máquina. Ou seja, no modo como o computador executa programas em linguagem de máquina.
Leia maisCAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES
CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:
Leia maisIntrodução a POO. Introdução a Linguagem C++ e POO
Introdução a POO Marcio Santi Linguagem C++ Introdução a Linguagem C++ e POO Programação Orientada a Objetos (POO) e C++ Recursos C++ não relacionados às classes Incompatibilidades entre C e C++ Classes
Leia maisAlgoritmos e Programação
Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia maisIntrodução à Linguagem
Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin jjscremin@jjscremin.t5.com.br Um pouco de história Um pouco de história: Nascimento do Python Um pouco de história:
Leia maisParadigmas de Programação
Paradigmas de Programação Tipos de Dados Aula 5 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Tipos de Dados Sistema de tipos Tipos de Dados e Domínios Métodos
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor
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 maisJava 2 Standard Edition Como criar classes e objetos
Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da
Leia maisEstrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org
Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org Breve Histórico A linguagem de programação C foi criada na década de 70, por Dennis Ritchie, que a implementou,
Leia maisComponentes da linguagem C++
Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras
Leia maisTipos de Dados, Tipos Abstratos de Dados Estruturas de Dados
Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados Tipo de dados, tipo abstrato de dados, estruturas de dados Termos parecidos, mas com significados diferentes Tipo de dado Em linguagens de programação
Leia maisIntrodução. A verificação de tipos pode ser estática e dinâmica
Análise Semântica 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 Além disso,
Leia maisAula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis
1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que
Leia maisCriar a classe Aula.java com o seguinte código: Compilar e Executar
Introdução à Java Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Código Exemplo da Aula Criar a classe Aula.java com o seguinte código: public class Aula { public static void
Leia maisCONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa
CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs
Leia maisINTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO
Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele
Leia maisDEFINIÇÃO DE MÉTODOS
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 2 DEFINIÇÃO DE MÉTODOS Todo o processamento que um programa Java faz está definido dentro dos
Leia maisMC102 Algoritmos e programação de computadores Aula 3: Variáveis
MC102 Algoritmos e programação de computadores Aula 3: Variáveis Variáveis Variáveis são locais onde armazenamos valores na memória. Toda variável é caracterizada por um nome, que a identifica em um programa,
Leia maisReuso com Herança a e Composiçã
Java 2 Standard Edition Reuso com Herança a e Composiçã ção Helder da Rocha www.argonavis.com.br 1 Como aumentar as chances de reuso Separar as partes que podem mudar das partes que não mudam. Exemplo:
Leia maisResolução de problemas e desenvolvimento de algoritmos
SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de
Leia maisATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS
ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o
Leia maisIntrodução aos cálculos de datas
Page 1 of 7 Windows SharePoint Services Introdução aos cálculos de datas Aplica-se a: Microsoft Office SharePoint Server 2007 Ocultar tudo Você pode usar fórmulas e funções em listas ou bibliotecas para
Leia maisBusca. Pesquisa sequencial
Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um
Leia maisA lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.
INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,
Leia maisOrganização de programas em Python. Vanessa Braganholo vanessa@ic.uff.br
Organização de programas em Python Vanessa Braganholo vanessa@ic.uff.br Vamos programar em Python! Mas... } Como um programa é organizado? } Quais são os tipos de dados disponíveis? } Como variáveis podem
Leia maisINTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO
INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos Estrutura Básica B de Programas C e C++ Tipos de Dados Variáveis Strings Entrada e Saída de Dados no C e C++ INTRODUÇÃO O C++ aceita
Leia maisCapítulo 13. VARIÁVEIS DO TIPO REAL DUPLA
Capítulo 13. VARIÁVEIS DO TIPO REAL DUPLA OBJETIVOS DO CAPÍTULO Conceitos de: variáveis de precisão simples e dupla, variáveis do tipo real simples e dupla, mistura de variáveis do tipo inteiro com real
Leia maisLINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto
LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto Conceitos de Linguagens de Roteiro: Apresentação do plano de ensino; Apresentação do plano de
Leia maisUNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA
Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais
Leia maisJava. Marcio de Carvalho Victorino www.dominandoti.eng.br
Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a
Leia maisRoteiro do Programa e Entrada/Saída
Roteiro do Programa e Entrada/Saída c Professores de ALPRO I Faculdade de Informática PUCRS 03/2012 ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 1 / 32 Sumário 1 Relembrando 2 Programa Definição de
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:
Leia mais3. PARADIGMA ORIENTADO A OBJETOS
Paradigmas de Linguagens I 1 3. PARADIGMA ORIENTADO A OBJETOS Este paradigma é o que mais reflete os problemas atuais. Linguagens orientada a objetos (OO) são projetadas para implementar diretamente a
Leia maisSubprogramas. Linguagens de Programação. Marco A L Barbosa
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 maisHardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)
Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,
Leia maisLinguagens de programação
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 ser descrito em termos de 1 s ou 0 s
Leia maisProjeto de Software Orientado a Objeto
Projeto de Software Orientado a Objeto Ciclo de Vida de Produto de Software (PLC) Analisando um problema e modelando uma solução Prof. Gilberto B. Oliveira Estágios do Ciclo de Vida de Produto de Software
Leia maisIntrodução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
Leia maisUnidade IV: Ponteiros, Referências e Arrays
Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática
Leia maisNoções sobre Objetos e Classes
Noções sobre Objetos e Classes Prof. Marcelo Cohen 1. Elementos de programação Revisão de programação variáveis, tipos de dados expressões e operadores cadeias de caracteres escopo de variáveis Revisão
Leia maisCurso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais
Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais
Leia maisPolimorfismo. Prof. Leonardo Barreto Campos 1
Polimorfismo Prof. Leonardo Barreto Campos 1 Sumário Introdução; Polimorfismo; Polimorfismo Java; Métodos Abstratos Java Classes Abstratas Java Exercício - Java Polimorfismo C++ Classe Abstrata C++; Funções
Leia maisComandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }
Este documento tem o objetivo de demonstrar os comandos e sintaxes básicas da linguagem Java. 1. Alguns passos para criar programas em Java As primeiras coisas que devem ser abordadas para começar a desenvolver
Leia maisProf. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa
Prof. Yandre Maldonado - 1 PONTEIROS Prof. Yandre Maldonado e Gomes da Costa PONTEIROS Prof. Yandre Maldonado - 2 Ponteiro é uma variável que possui o endereço de outra variável; É um poderoso recurso
Leia maisTipos de Dados. George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br)
Tipos de Dados George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução Tipos de Dados Primitivos Tipos Cadeia de Caracteres Tipos Definidos pelo Usuário Tipos Matriz Matrizes Associativas
Leia maisGuia de Fatores de Qualidade de OO e Java
Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.
Leia maisALGOL 68 FUNDAMENTOS DA LINGUAGEM
ALGOL 68 FUNDAMENTOS DA LINGUAGEM Aldo Ventura da Silva 1 RESUMO Na década de 60, as linguagens estruturadas imperativas de certa forma atendiam às necessidades da época. Com o tempo e a evolução tecnológica,
Leia maise à Linguagem de Programação Python
Introdução a Algoritmos, Computação Algébrica e à Linguagem de Programação Python Curso de Números Inteiros e Criptografia Prof. Luis Menasché Schechter Departamento de Ciência da Computação UFRJ Agosto
Leia mais3 Classes e instanciação de objectos (em Java)
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
Leia maisConceitos básicos da linguagem C
Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por
Leia maisCurso de Programação Computadores
3 O Primeiro Programa em C Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 3 O Primeiro Programa em C 3.1 - Introdução Depois dos conceitos
Leia maisAULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme
AULA 2: INTRODUÇÃO A LINGUAGEM DE C Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme Agenda Introdução a linguagem C Compiladores Variáveis IDEs Exemplos Exercícios Introdução A Linguagem C
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 mais1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO
1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO Desde o seu surgimento, o manuseio da computação é baseado em linguagens de programação. Ela permite que sejam construídos aplicativos
Leia maisLista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição
Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:
Leia maisResumo da Introdução de Prática de Programação com C. A Linguagem C
Resumo da Introdução de Prática de Programação com C A Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional
Leia maisLinguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto
Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional UNIX. O C é derivado de uma outra linguagem: o B,
Leia maisEstruturas de Repetição
Estruturas de Repetição Lista de Exercícios - 04 Linguagem e Técnicas de Programação Professor: Edwar Saliba Júnior Estruturas de Repetição O que são e para que servem? São comandos que são utilizados
Leia maisIFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira
IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários
Leia maisINF 1620 P1-10/04/02 Questão 1 Nome:
INF 1620 P1-10/04/02 Questão 1 Considere uma disciplina que adota o seguinte critério de aprovação: os alunos fazem duas provas (P1 e P2) iniciais; se a média nessas duas provas for maior ou igual a 5.0,
Leia maisCAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM
CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas
Leia maisEsta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi
5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem
Leia maisBacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java
Linguagem Java Objetivos Compreender como desenvolver algoritmos básicos em JAVA Aprender como escrever programas na Linguagem JAVA baseando-se na Linguagem Portugol aprender as sintaxes equivalentes entre
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,
Leia maisUniversidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática
Programação Orientada a Objectos - 28/29; P. Prata, P. Fazendeiro 2 A tecnologia Java Uma ideia base da linguagem JAVA é a de que um programa em JAVA deve poder ser executado em qualquer tipo de computador
Leia mais9 Comandos condicionais
9 Comandos condicionais Um comando condicional é uma instrução empregada quando se deseja criar um desvio, isto é, a opção de executar-se ou não um determinado trecho de código, segundo uma condição. Em
Leia maisLinguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em
Leia maisCOMPILADORES E INTERPRETADORES
Aula 16 Arquitetura de Computadores 12/11/2007 Universidade do Contestado UnC/Mafra Curso Sistemas de Informação Prof. Carlos Guerber COMPILADORES E INTERPRETADORES Um compilador transforma o código fonte
Leia maisExpressões. Prof. Alberto Costa Neto alberto@ufs.br. Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe
Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Expressão é uma frase de um programa que ao ser avaliada retorna um valor Tipos Literais Agregados Chamadas de Função
Leia maisAlgoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br
(Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução
Leia maisUniversidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática
Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]
Leia mais5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES
CAPÍTULO 5 5 VETORES E MATRIZES 5.1 Vetores Um vetor armazena uma determinada quantidade de dados de mesmo tipo. Vamos supor o problema de encontrar a média de idade de 4 pessoas. O programa poderia ser:
Leia maisCapítulo 5. ARQUIVOS E FUNÇÕES MATEMÁTICAS INTRÍNSECAS
Capítulo 5. ARQUIVOS E FUNÇÕES MATEMÁTICAS INTRÍNSECAS OBJETIVOS DO CAPÍTULO Conceitos de: arquivo de saída, biblioteca, funções matemáticas intrínsecas Criar e usar arquivos para mostrar resultados da
Leia maisCurso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura
UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.
Leia maisARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa
ARQUITETURA DE COMPUTADORES 1 Rogério Spindula Rosa 2 EXECUÇÃO DE PROGRAMAS PROGRAMA 3 4 INTRODUÇÃO Hoje é raro escrever um programa diretamente em linguagem de computador em virtude da enorme dificuldade
Leia maisPesquisa e organização de informação
Pesquisa e organização de informação Capítulo 3 A capacidade e a variedade de dispositivos de armazenamento que qualquer computador atual possui, tornam a pesquisa de informação um desafio cada vez maior
Leia maisLinguagens de Programação. Linguagens de Script. Carlos Bazilio bazilio@ic.uff.br http://www.ic.uff.br/~bazilio/cursos/lp
Linguagens de Programação Linguagens de Script Carlos Bazilio bazilio@ic.uff.br http://www.ic.uff.br/~bazilio/cursos/lp Motivação Linguagens de programação, usualmente, são projetadas para criação de aplicações
Leia maisCONVENÇÃO DE CÓDIGO JAVA
CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2
Leia maisSistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação
Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 1 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,
Leia mais