Paradigmas de Programação
|
|
- Clara Lima de Lacerda
- 7 Há anos
- Visualizações:
Transcrição
1 Paradigmas de Programação Aula 6 Nomes, Vinculações, Verificação de Tipos e Escopos Prof.: Edilberto M. Silva Prof. Edilberto Silva / edilms.eti.br
2 Introdução As linguagens de programação imperativas são baseadas na arquitetura de Von Neumann. Os espaços de memória utilizados pelas variáveis são diferentes, de acordo com a especificação do tipo de variável (propriedade mais importante da variável). dado 1 dado 2 dado 3 dado 4 instrução instrução instrução
3 Nomes Considerações de projeto Tamanho máximo? Caracteres de conexão são permitidos? Sensível a maiúscula/minúscula? Palavras especiais são reservadas ou chaves? Tamanho FORTRAN I: máximo 6 / COBOL: máximo 30 FORTRAN 90 e ANSI C: máximo 31 Ada: sem limite, e todos são significantes C++: sem limite, mas implementação impõe limites Conectores (Delimitadores) ($? ~ ; : / \ etc.) Pascal, Modula-2, and FORTRAN 77: Não permite Outras permitem
4 Nomes Sensível a maiúscula/minúscula Desvantagem: legibilidade (nomes que parecem iguais são diferentes) Em Modula-2 nomes pré-definidos possuem letras maiúsculas e minúsculas (e.g. WriteCard) C, C++, Java, e Modula-2 nomes são sensíveis à caixa (alta e baixa) Nomes nas outras linguagens não são Palavras especiais Def: Uma palavra chave (keyword) é uma palavra que é especial somente em certo contexto Desvantagem: legibilidade pobre Def: Uma palavra reservada é uma palavra especial que não pode ser usada como nome definido pelo usuário.
5 Palavras Especiais São utilizadas para tornar programas mais legíveis ao denominar acções. Na maioria das L.P., as palavras especiais são classificadas como reservadas, e em algumas, são somente palavras-chave. Palavra reservada: é independente do contexto e não pode ser utilizada como um nome. Exemplo: INTEGER REAL (Não permitido se REAL for reservada) REAL INTEGER (Não permitido se INTEGER reservada)
6 Variáveis Uma variável é uma abstração de um endereço de memória Variáveis podem ser caracterizadas por um 6-tuplas de atributos: nome, endereço, valor, tipo, tempo de vida e ambiente (escopo) Nome - nem toda variável o possui Endereço - o endereço de memória a que está associada. Uma variável pode possuir endereços diferentes em tempos diferentes durante execução Uma variável pode ter diferentes endereços em partes diferentes do programa. Se dois nomes de variáveis podem ser usados para acessar o mesmo local de memória, eles são chamados de aliases
7 Variáveis Endereço: é o endereço de memória à qual está associada uma variável. Os Aliases existem quando duas ou mais variáveis apontam para o mesmo endereço de memória. Os aliases são prejudiciais a uma boa legibilidade Nome: identifica uma entidade. Nem todas as variáveis têm nome. ex.: variáveis temporárias show( x+y )
8 Variáveis Tipo: determina a faixa de valores que a variável pode conter, e o conjunto de operações definidas para os valores deste tipo. n Valor: é o conteúdo da célula de memória associada à variável. n ex. Considere a seguinte atribuição: x := x ; x Left-value endereço da variável x Right-value valor da variável (ou expressão que evolui para um valor)
9 Variáveis Alguma das justificativas para se criar aliases não são mais válidas; e.g. reutilização de memória em FORTRAN. (Atualmente basta trocá-las por alocação dinâmica) Tipo - determina a amplitude de valores das variáveis e o conjunto de operações que são definidos para estes valores. Obs: no caso de ponto flutuante o tipo também determina a precisão
10 Variáveis Valor - o conteúdo do local a que a variável está associada. Célula abstrata de memória ( Endereço) - a célula física ou conjunto de células associada a uma variável Considere a atribuição: X := X Como interpretar cada X? O l-value de uma variável é o seu endereço O r-value de uma variável é o seu valor
11 Vinculação Uma vinculação (binding) é uma associação, entre um atributo e uma entidade ou entre uma operação e um símbolo Associação entre operação de somar e o símbolo '+' Associação dos atributos (nome, endereço, tipo, valor...) Tempo de vinculação ou associação (Binding time) é o tempo em que o vínculo se realiza. O símbolo '*' é vinculado à operação de multiplicação em tempo de design Existem vários tipos de vinculações em linguagem de programação, bem como vários tempos em que a vinculação ocorre
12 Tempos de Vinculação (binding Time) 1. Em tempo de projeto de linguagem --e.g., associação de operador com símbolo da operação 2. Em tempo de implementação associação do tipo pt. fl. Com sua representação 3. Em tempo de compilação associação de uma variável a seu tipo (C, Pascal, Java, etc) 4. Em tempo de carregamento associar em FORTRAN 77 uma variável a um endereço de memória (ou a C variável static ) 5. Em tempo de execução associar um variável local não estática a um endereço de memória; ou associar um parâmetro formal a seu endereço por exemplo em C ou Pascal.
13 Tempo de Vinculação Exemplo de tempo de vinculação: seja a atribuição X := X + 10 Em tempo de definição de linguagem Estabelecer os possíveis tipos da variável X, por exemplo, real, inteiro, boleano, char, etc e/ou Permitir que programas definam novos tipos como em C, Pascal, ADA... Em tempo de compilação vincular X a um tipo por uma declaração explícita, ex: float X. Em algumas linguagens esta vinculação pode dar-se em tempo de execução, e.g. Smalltalk, Prolog, LISP. Em tempo de implementação vincular X a valores específicos. Se X for do tipo real, então seus valores, a qualquer instante da execução, é um valor do conjunto da seqüência de bits que representa um número real e depende do hardware que executará o programa.
14 Tempos de Vinculação Em tempo de execução associar X a um valor específico, por exemplo, via uma atribuição. A atribuição X := X + 10 altera o vínculo de X. Representação da constante 10 Em tempo de definição podemos definir que será representa por pelo string 10 (carater 1 e 0 ) ou por uma seqüência de bits em tempo a ser gerada em tempo de execução. Propriedades do operador + Em tempo de definição escolher + para representar adição. Em geral admite-se sobrecarga deste operador para representar adição em inteiros, reais, complexo e até concatenação de strings. Em linguagens compiladas esta vinculação, em geral, é feita em tempo de compilação.
15 Vinculação Importância da vinculação - Questões importantes Em tempo de compilação, classificado como vinculação mais cedo ou em tempo de execução, vinculação mais tarde? Vinculação mais cedo menor flexibilidade da linguagem, e.g. Fortran, porém maior eficiência. Vinculação mais tardia maior flexibilidade, e.g. ML, porém menor eficiência.
16 Formas de Vinculação Um vínculo é estático ocorre antes do tempo de execução e permanece inalterado durante a execução do programa. Um vínculo é dinâmico se ocorre durante a execução ou pode ser alterado durante a execução do programa. Tipos de vinculações (Bindings) 1. Como um tipo é especificado? 2. Quando acontece a associação? Se estático, o tipo pode ser especificado por declaração explicita ou implícita.
17 Vinculação Estática Uma declaração explicita é um comando de programa usado para declarar tipos de variáveis. Uma declaração implícita é um mecanismo de default para especificar tipos de variáveis (a primeira ocorrência da variável no programa) FORTRAN, PL/I, BASIC, e Perl possuem declarações implícitas Vantagem: escritabilidade Desvantagem: legibilidade
18 Vinculação Dinâmica Especificado através de comando de atribuição, e.x. LIST = {2, 4, 6, 8}; Vantagem: flexibilidade (unidades genéricas de programas) independente de tipos de dados Desvantagens: 1. Custo alto (verificação dinâmica de tipo e interpretação do tipo) 2. Dificuldade para o compilador detectar o tipo de erro Inferência de Tipo (ML, Miranda, and Haskell) Em vez de atribuição, os tipos são determinados pelo contexto de referência
19 Vinculação de Memória Reserva (Alocação) - pegar uma célula de um conjunto livre de Células (Vinculação Endereço) Liberação - colocar a célula de volta no conjunto de células livres O tempo de vida de uma variável é o tempo durante o qual ela está associada a uma particular célula de memória. As vinculações de memória a variáveis, podem ser, de acordo com o seu tempo de vida: Variáveis Estáticas / Variáveis Pilhas-Dinâmicas Variáveis Heap-Dinâmicas Explícitas/ Variáveis Heap- Dinâmicas Implícitas Heap: é um conjunto de células de memória, desorganizada devido a imprevisibilidade da sua utilização.
20 Vinculações de Memória Categorias Variáveis por tempo de vida 1. Estática--associada a célula de memória antes do início da execução e permanece associada à mesma célula durante toda a execução Vantagem: eficiência (endereçamento direto), suporte histórico de subprogramas Desvantagem: falta de flexibilidade (não permite recursão)
21 Vinculações de Memória 2. Pilha-dinâmica--associação de memória é realizada quando da declaração da variável. Se escalar, todos os atributos, exceto endereço, são associados em tempo de compilação Vantagem: recursão; retém armazenamento Desvantagens: Overhead de alocação e liberação Subprogramas não retém historia Referência ineficiente (endereçamento indireto)
22 Vinculações de Memória 3. Heap-Dinâmico Explicito--Alocação e desativação por diretivas explicitas, especificadas pelo programador, em tempo de execução Referenciadas somente por apontadores e referências, objetos dinâmicos em C++ (via new and delete) e todos os objetos em Java int * intnode... intnode = new int; /* aloca uma célula */... delete intnode; /* libera célula */ Vantagem: Gerenciamento dinâmico de memória Desvantagem: ineficiente e não seguro
23 Vinculações de Memória 4. Heap Dinâmico Implícito - Alocação e liberação realizada por comandos de atribuição e.g. todas variáveis de APL Vantagem: Flexibilidade, código muito genérico Desvantagens: Ineficiente- todos os atributos são dinâmicos Perca de detecção de erro Geração de lixo
24 Verificação de Tipos Generalização do conceito de operandos e operadores para incluir subprogramas e atribuições. Verificação de tipo é a atividade que garante que operandos e operadores são de tipos compatíveis. Um tipo é compatível se for correto para o operador ou se for permitido conversão implícita, pelas regras da linguagem, pelo compilador. Esta conversão implícita automática é chamada coesão de tipos (coercion). Um erro de tipo é uma aplicação de um operador a um operando de tipo não apropriado Se todos os bindings forem estáticos, em geral a, verificação de tipo pode ser em tempo de compilação Se os binding forem dinâmicos, a verificação deve ser em tempo de execução.
25 Tipificação Forte Uma linguagem é fortemente tipada se podemos detectar todo de tipo de erro em tempo de compilação. Vantagem de fortemente tipada: detecção de uso indevido de variáveis que resultam em erros de tipo Obs: Poucas linguagens são fortemente tipadas Linguagens e tipagem forte: 1. FORTRAN 77 (Não é): parâmetros, EQUIVALENCE / 2. Pascal (Não é): variant records / 3. Modula-2 (Não é): variant records, tipo WORD / 4. C and C++ (Não são): verificação de tipo de parâmetro pode ser evitado em parâmetros; não há verificação para o tipo union Tipificação Forte: 5. Ada, ML e JAVA
26 Inferência de Tipos Em algumas linguagens declaração de tipo não é necessária, o tipo pode ser inferido pelo contexto em que se encontra (ML) ou mesmo não sendo sendo necessário (LISP) Exemplo: ML fun area(l:int, w:int): int = l*w uso equivalente, por inferência de tipo: fun area(l, w): int = l*w fun area(l:int, w) = l*w fun area(l, w:int) = l*w Situação de erro, impossível inferir: fun area(l, w) = l*w
27 Compatibilidade Tipos compatibilidade por nome - duas variáveis possuem tipos compatíveis se, ou estão na mesma declaração, ou em declarações que utilizam o mesmo nome de tipo. Fácil de se implementar mas altamente restritivo: Sub-faixas do tipo inteiro não são compatíveis com o tipo inteiro Parâmetros formais devem possuir o mesmo tipo dos correspondentes parâmetros atuais (Pascal) type indextype = ; { um tipo subfaixa} var count : integer; index : indextype; Neste caso index e count não são compatíveis, isto é: count := index => erro (semântico) de tipo
28 Compatibilidade de Tipo Compatibilidade por estrutura - duas ou mais variáveis possuem tipos compatíveis se seus tipos possuem estruturas idênticas. Maior flexibilidade, porém mais difícil de se implementar. Exemplos: Pascal padrão type celsius = real; fahrentheit = real tipo1 = array [1..10] of integer tipo2 = array [1..10] of integer tipo3 = tipo2; Celsius e fahrentheit => compatíveis tipo1 e tipo2 => não compatíveis significando que no Pascal padrão não existe compatibilidade por estrutura. Tipo3 e tipo2 => compatíveis Pascal => compatibilidade nem por nome nem por estrutura. Pascal => em geral compatibilidade por estrutura
29 Escopo O escopo de uma variável é o espaço, em termos de comandos, em que é visível (i.e onde pode ser utilizada) Variáveis não-locais de uma unidade de programa são aquelas que são visíveis mas não estão declaradas nesta uunidade. As regras de escopo de uma linguagem determinam como referências a nomes estão associados com variáveis.
30 Escopos Escopo Estático Baseado no texto estático do programa Para se associar uma referência a uma variável deve-se encontrar sua declaração. Processo de pesquisa: pesquise declarações, primeiro localmente, em seguida em ordem crescente do escopo, até que uma declaração seja encontrada para um dado nome. Escopos aninhados forma uma cadeia de escopos com sucessores e antecessores.
31 Constantes Def: Um constante é uma variável que está associada a um valor e a uma célula de memória. Vantagens: legibilidade e modificabilidade O vínculo de valor a nome de constante pode ser estático ( chamadas constantes explícitas) ou dinâmico Linguagens: Pascal: somente para literais Modula-2 e FORTRAN 90: constante-valoradas expressões Ada, C++, e Java: expressões de qualquer tipo
32 Inicialização de Variáveis O vínculo de uma variável a um valor no momento em em que é vinculada a um endereço é chamado de inicialização Inicialização é freqüentemente feita no comando de declaração, por exemplo, em Ada SUM : FLOAT := 0.0; Pascal não oferece meios de se inicializar variáveis exceto em run-time por instruções de atribuição
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
Leia maisNomes, Vinculações, Verificação de Tipos e Escopos. George Darmiton da Cunha Cavalcanti
Nomes, Vinculações, Verificação de Tipos e Escopos George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução Nomes Variáveis O conceito de vinculação (binding) Verificação de tipos Tipificação
Leia maisParadigmas de Linguagens de Programação. Nomes, Vinculações, Verificação de Tipos e Escopos
Nomes, Vinculações, Verificação de Tipos e Escopos Cristiano Lehrer Nomes (1/6) Um nome é uma string de caracteres usada para identificar alguma entidade de um programa. O termo identificador é utilizado
Leia maisNomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisNomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisConceitos de Linguagens de Programação
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 03 (rogerio@fct.unesp.br) Aula 3 Variáveis: Nomes
Leia maisNomes, 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
Leia maisVerificação de Tipo. Unions. Verificação de tipo estática. Verificação de tipo dinâmica
Verificação de Tipo Atividade que certifica que os operandos de um operador são de tipos compatíveis. São considerados operadores e operandos: operadores usuais (aritméticos, relacionais, etc) subprogramas
Leia maisLinguagens de Programação Nomes, Amarrações e Escopo
Linguagens de Programação Nomes, Amarrações e Escopo Andrei Rimsa Álvares Sumário Nomes Amarrações Escopo NOMES Linguagens de Programação Nomes Conceito mais amplo que variáveis Podem representar Variáveis
Leia maisAula 6.
Aula 6 Celso Olivete Júnior olivete@fct.unesp.br Nomes, vinculações e escopos Cap. 5 -Sebesta 2 Introdução LP s imperativas são abstrações da arquitetura de Von Neumann Memória: armazena instruções e dados
Leia maisEstudos de Linguagens de Programação - Revisão
Estudos de Linguagens de Programação - Revisão (marinho.mlm@gmail.com) O que é uma Linguagem de Programação? Linguagem usada por uma pessoa para expressar um processo através do qual um computador pode
Leia maisO que é uma variável?
Escopo, Ligação e Ambiente de Execução mleal@inf.puc-rio.br 1 O que é uma variável? Uma variável pode ser definida como uma tupla r nome é um string usado para
Leia mais02. [Sebesta, 2000] Qual é o perigo potencial dos nomes que fazem distinção entre maiúsculas e minúsculas?
01. [Sebesta, 2000] Quais são as questões de projeto referentes a nomes? Nomes, Vinculações, Verificação de Tipos e Escopos 02. [Sebesta, 2000] Qual é o perigo potencial dos nomes que fazem distinção entre
Leia maisUniversidade Federal Rural de Pernambuco Departamento de Estatística e Informática Subprogramas
Universidade Federal Rural de Pernambuco Departamento de Estatística e Informática Subprogramas Prof. Gláucya Carreiro Boechat glaucyacboechat@gmail.com Paradigmas de Linguagem de Programação Características
Leia maisVariáveis. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe
Variáveis alberto@ufs.br de Programação Departamento de Computação Universidade Federal de Sergipe Variáveis Uma vez que o programador tenha entendido o uso de variáveis, ele entendeu a essência da programação.
Leia maisParadigmas 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
Leia maisParadigmas de Linguagens de Programação. Expressões e Instruções de Atribuição
Expressões e Instruções de Atribuição Cristiano Lehrer Introdução Expressões são o meio fundamental de especificar computações em uma linguagem de programação: Familiarização com as ordens de avaliação
Leia maisLinguagens de Programação 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 maisConceitos de Linguagens de Programação
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 06 (rogerio@fct.unesp.br) Aula 6 Subprogramas
Leia maisParadigmas 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
Leia maisCompiladores. Gerência de Memória
Compiladores Gerência de Memória Cristiano Lehrer, M.Sc. Atividades do Compilador Arquivo de origem Arquivo de destino Análise Otimização Geração de Código Intermediário Geração de Código Final Síntese
Leia maisLinguagens de Programação. Tipos. Carlos Bazilio
Linguagens de Programação Tipos Carlos Bazilio bazilio@ic.uff.br http://www.ic.uff.br/~bazilio/cursos/lp Definições Tipos de dados primitivos: tipos de dados que não são definidos em termos de outros tipos
Leia maisImplementando subprogramas
Implementando subprogramas Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl
Leia maisCapítulo 7. Expressões e Sentenças de Atribuição
Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário
Leia maisComputação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa
Computação Eletrônica Tipos de dados, constantes, variáveis, operadores e expressões Prof: Luciano Barbosa Site da disciplina: www.cin.ufpe.br/~if165/ Recapitulando num cubo = n * n * n cubo Algoritmo
Leia maisNomes, 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
Leia maisTipos. O Conceito de Tipo
Tipos mleal@inf.puc-rio.br 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
Leia maisFACULDADE BATISTA MINEIRA - CST Banco de Dados Estruturas de Dados - Variáveis
Variável, na Matemática, é um termo utilizado em substituição de outro, normalmente, desconhecido. É utilizado para representar um número ou um conjunto. No contexto da programação de computadores, uma
Leia maisConceitos de Linguagens de Programação
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 04 (rogerio@fct.unesp.br) Aula 4 2 Evolução dos
Leia mais02. [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
Leia maisLinguagens de Programação Aula 12
Linguagens de Programação Aula 12 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Implementando subprogramas 2 Na aula de hoje Suporte para a programação orientada a objetos 3 Roteiro Introdução
Leia maisCapí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
Leia maisImplementação de subprogramas
Implementação de subprogramas Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisExpressões e sentença de atribuição
Expressões e sentença de atribuição Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisLinguagens de Programação. Marco A L Barbosa
Expressões e sentença de atribuição Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl
Leia maisIntrodução. Paradigmas de Linguagens. Introdução. Tipos de Dados Primitivos. Prof. Ms. Luiz Alberto Contato:
Paradigmas de Linguagens Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Baseada no material do prof. Celso Olivete Júnior Introdução Um tipo de dado define uma coleção de dados e um conjunto de operações
Leia maisTipos de Dados. George Darmiton da Cunha Cavalcanti
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 maisLinguagens de Programação Conceitos e Técnicas. Amarrações Prof. Tiago Alves de Oliveira
Linguagens de Programação Conceitos e Técnicas Amarrações Prof. Tiago Alves de Oliveira Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável
Leia maisCAP. VI ANÁLISE SEMÂNTICA
CAP. VI ANÁLISE SEMÂNTICA VI.1 Introdução Semântica SIGNIFICADO, SENTIDO LÓGICO, COERÊNCIA,... Diferença entre SINTAXE e SEMÂNTICA Sintaxe : descreve as estruturas de uma linguagem; Semântica : descreve
Leia maisLinguagens de Programação
Linguagens de Programação Prof a Jerusa Marchi Departamento de Informática e Estatística Universidade Federal de Santa Catarina e-mail: jerusa@inf.ufsc.br Linguagens de Programação p. 1/5 Linguagens de
Leia maisCapítulo 6. Tipos de Dados
Capítulo 6 Tipos de Dados 1. Introdução Tipo de Dados: define uma coleção de valores de dados e um conjunto de operações pré-definidas sobre eles Um descritor é a coleção de atributos de uma variável Um
Leia maisTipo. 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
Leia maisLinguagens de Programação Aula 8
Linguagens de Programação Aula 8 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Os tipos de dados de uma linguagem são uma grande parte do que determina o estilo e a utilidade de uma linguagem
Leia maisSistemas de Tipos. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe
Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Tipos permitem que dados sejam descritos de forma efetiva Previnem operações sem sentido (ex: 5 * true) Programas mais
Leia maisFACULDADE LEÃO SAMPAIO
FACULDADE LEÃO SAMPAIO Paradigmas de Programação Curso de Análise e Desenvolvimento de Sistemas Turma: 309-5 Semestre - 2014.2 Paradigmas de Programação Prof. MSc. Isaac Bezerra de Oliveira. 1 PARADIGMAS
Leia maisErros de Tipo em Pascal Simplifificado
Checagem de Tipos Erros de Tipos em Pascal Simplificado 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
Leia maisExpressões e Instruções de Atribuição. George Darmiton da Cunha Cavalcanti
Expressões e Instruções de Atribuição George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução Expressões Aritméticas Operadores Sobrecarregados Conversões de Tipo Expressões Relacionais
Leia maisao 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
Leia maisAspectos preliminares
Aspectos preliminares 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 maisRESUMO DA DISCUSSÃO SOBRE LINGUAGENS DE PROGRAMAÇÃO DO DIA 26 DE OUTUBRO DE 2006
Universidade Federal do Rio Grande do Sul Instituto de Informática Bacharelado em Ciência da Computação Disciplina de Modelos de Linguagens de Programação Profa. Dra. Érika Cota RESUMO DA DISCUSSÃO SOBRE
Leia maisConceitos de Linguagens de Programação - Características. Paavo Soeiro
Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o
Leia maisParadigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I
Paradigmas Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I OO Simula-67, Smalltalk, C++, Eiffel, Object Pascal,
Leia maisLinguagens de Programação. Introdução. Carlos Bazilio
Linguagens de Programação Introdução Carlos Bazilio carlosbazilio@id.uff.br http://www.ic.uff.br/~bazilio/cursos/lp ??? Pascal aux := 0 for i:=1 to 10 do aux := aux + i 10: i = 1 20: if i > 10 goto 60
Leia maisEstruturas 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
Leia maisConceitos de Linguagens de Programação
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 07 (rogerio@prudente.unesp.br) Aula 7 Implementação
Leia maisClasses e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Leia maisEderson 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
Leia maisParadigmas 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
Leia maisLinguagens de Programação Funcional
Linguagens de Programação Funcional Conceitos de Linguagens de Programação Pedro Libório Setembro de 2013 2 Roteiro Introdução Funções matemáticas Fundamentos das linguagens de programação funcionais A
Leia maisAlgoritmos II prof. Daniel Oliveira
Algoritmos II prof. Daniel Oliveira Revisar conceitos abordados na disciplina anterior Abordar conceitos vistos com a linguagem C# Variáveis e listas Expressões Estruturas de controle do tipo condicional
Leia maisLinguagens de Programação Aula 11
Linguagens de Programação Aula 11 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Uma definição de subprograma descreve as ações representadas pelo subprograma Subprogramas podem ser funções
Leia maisRevisão: linguagens de programação
Revisão: linguagens de programação Definição, histórico, paradigmas e semântica Prof. Thiago A. S. Pardo taspardo@icmc.usp.br Definição Uma linguagem de programação é uma linguagem destinada a ser usada
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação
Leia maisLinguagens de Programação Subprogramas
Linguagens de Programação Subprogramas Andrei Rimsa Álvares Sumário Abstrações Subprogramas Parâmetros Passagem de parâmetros Direção da passagem Mecanismos de passagem Momento da passagem ABSTRAÇÕES Linguagens
Leia maisAmbiente 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
Leia maisCapítulo 1. Aspectos Preliminares
Capítulo 1 Aspectos Preliminares Tópicos do Capítulo 1 Razões para estudar conceitos de linguagens de programação Domínios de programação Critérios de avaliação de linguagens Influências no projeto de
Leia maisCapí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
Leia maisProgramaçã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
Leia maisParadigmas de Linguagem de Programação. Paradigma Imperativo
Paradigmas de Linguagem de Programação Paradigma Imperativo Paradigma Imperativo Imperare Comandar É o mais antigo de todos; Baseado no modo de funcionamento do computador; São também chamadas de procedurais;
Leia maisIntrodução à Ciência da Computação. Prof. Dr. Rogério Vargas
Introdução à Ciência da Computação Prof. Dr. Rogério Vargas http://rogerio.in O que é dado? - Defino dado como uma sequência de símbolos quantificados ou quantificáveis. - Letras são símbolos quantificados.
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES. Prof. Angelo Augusto Frozza, M.Sc.
PROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO O que é programação Linguagens de Programação Paradigmas de Programação História
Leia mais6 Alguns conceitos e comandos em programação
6 Alguns conceitos e comandos em programação 6.1 Diretivas Diretivas são instruções que permitem ao programador efetuar algum tipo de modificação à compilação, sendo analisadas e executadas pelo pré-compilador,
Leia maisLinguagens de Programação
Linguagens de Programação Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Expressões Precedência e associatividade de operador Sobrecarga de operador Expressões de modo misto Várias formas de
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 maisEstrutura 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).
Leia maisTrabalho Linguagem e Programação de Compiladores
Trabalho Linguagem e Programação de Compiladores Responda as questões. Os exercícios deverão ser desenvolvidos utilizando as estruturas apresentadas em aula e adequadas para cada problema. Forma de entrega:
Leia mais4. Constantes. Constantes pré-definidas
4. Constantes Constantes pré-definidas O PHP possui algumas constantes pré-definidas, indicando a versão do PHP, o Sistema Operacional do servidor, o arquivo em execução, e diversas outras informações.
Leia maisPROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@gmail.com
Leia maisProgramação Orientada a Objetos. Manipulação de Exceções
Programação Orientada a Objetos Manipulação de Exceções Cristiano Lehrer, M.Sc. Introdução à Manipulação de Exceções (1/2) Em uma linguagem sem manipulação de exceção: Quando ocorre uma exceção, o controle
Leia maisHistórico de Linguagens de Programação
Bacharelado em Ciência da Computação PARADIGMAS DE PROGRAMAÇÃO Histórico de Linguagens de Programação Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Objetivos Geral: Estudar as características
Leia maisINF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores e Blocos de Inicialização
Leia maisUniversidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores
Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores 2013-2 Compilador para a Linguagem Cafezinho Especificação dos trabalhos: T2 (Geração da Representação Intermediária e Análise
Leia maisTipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas
Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa
Leia maisLinguagens de Programação. Nomes, Escopos e Vinculações (Bindings) Carlos Bazilio
Linguagens de Programação Nomes, Escopos e Vinculações (Bindings) Carlos Bazilio carlosbazilio@id.uff.br http://www.ic.uff.br/~bazilio/cursos/lp Nomes Forma mais simples de abstração Um nome é um caracter
Leia maisParadigmas de Linguagem de. Programação Profª. Roberta B Tôrres de programação referem-se a:
Paradigmas de Linguagem de Programação Conceitos Elementares Profª. Roberta B Tôrres rbtorresiff@gmail.com Conceitos Elementares de uma Linguagem de Programação Os conceitos mais elementares, suportados
Leia maisPROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S
PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia mais15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação
Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação Conjunto de regras que definem a forma da linguagem; Como as sentenças podem ser formadas como sequências
Leia maisEstruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?
Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? 1 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa o
Leia maisLinguagens de Programação Aula 3
Aula 3 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada... Classificação das LPs (nível, geração e paradigma) Paradigmas Imperativo, OO, funcional, lógico e concorrente 2/33 Na aula de hoje...
Leia maisEstruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011
Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa
Leia mais#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
Leia maisEspaço de Tipos. Amarração Tipo. Amarração Valor. Amarração Localização. Amarração Nome. Objeto de Dado
1.5.3.1. Objetos de Dados Como já comentado, cada variável possui uma área de armazenamento amarrada a si durante a execução do programa, e o seu o tempo de vida é o período de tempo no qual a amarração
Leia maisWorking 03 : Conceitos Básicos I
Working 03 : Conceitos Básicos I Objetivos: Dominar os conceitos básicos da linguagem de programação C; Aprender a utilizar o compilador, identificando os erros de sintaxe do código fonte; Prazo de Envio:
Leia maisParadigmas 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:
Leia maisIntrodução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Aula 03 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação Linguagens de Programação A primeira linguagem de programação foi criada por Ada Lovelace. Amiga
Leia maisINF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores
Leia mais