Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Computação e Sistemas Digitais. PCS 0014: Linguagens de Programação
|
|
- Yan Salazar Cabreira
- 7 Há anos
- Visualizações:
Transcrição
1 Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Computação e Sistemas Digitais Prof. ISVega PCS 0014: Linguagens de Programação Apontamento#13 Abr/2001 Sistemas de Tipos Conteúdo 1 Conceitos Básicos Politipos Abstração Polimórfica Tipos Parametrizados Monomorfismo 4 3 Polimorfismo Ad-Hoc Sobrecarga (Overloading) Coerção Polimorfismo Universal Polimorfismo Paramétrico Polimorfismo por Inclusão Inferência de Tipos Inferência de Tipos Monomórficos Inferência de Tipos Polimórficos
2 PCS 0014: Apontamento#13 Abr/2001 Sistemas de Tipos 2 1 Conceitos Básicos Polimorfismo AD-HOC. Polimorfismo paramétrico. Abstração 1.. n Tipo Polimorfismo UNIVERSAL. vinculação 1.. n Sobrecarga, coerção. Polimorfismo por inclusão. Identificador MONOMORFISMO. Sub-tipo Figura 1: Categorias de polimorfismo. 1.1 Politipos Um politipo é um tipo que contém uma ou mais variáveis de tipo. Uma variável de tipo é uma variável cujo valor é um tipo. Uma linguagem com tipos sem variáveis de tipo é dita monomórfica. Em uma linguagem monomórfica, todos os tipos são monotipos. Monotipo: Lista( Integer ) Monotipo: Lista( Char ) Politipo: Lista( τ ) Monotipo: Lista( Boolean ) nil Figura 2: Listas como monotipos e politipos. 1.2 Abstração Polimórfica σ τ τ é um politipo: denota uma família de tipos.
3 PCS 0014: Apontamento#13 Abr/2001 Sistemas de Tipos 3 Monotipo: f : Inteiro x Inteiro Inteiro Politipo: g : σ x τ τ f : Abstração Monomórfica g : Abstração Polimórfica x : Inteiro : Inteiro x : σ : τ y : Inteiro y : τ?? (a) (b) Figura 3: Abstrações polimórficas e politipos. σ e τ são variáveis-tipo: denota qualquer tipo. A obtenção da família de tipos é feita por substituição sistemática dos tipos das variaveis-tipo: (σ τ τ) Inteiro String String (σ τ τ) Boolean Inteiro Inteiro No entanto, as seguintes substituições são inválidas: (σ τ τ) Boolean Inteiro Boolean (σ τ τ) Boolean Boolean Exemplo 1 Em Pascal, tem-se a função eof (): function eof( x : File ) : Boolean; Esta função tem tipo eof : File(T) Boolean T denota um tipo qualquer para os componentes do arquivo. Esta função é polimórfica; pode ser ativada com um argumento x da forma x : File(Char) ou x : File(Integer), por exemplo.
4 PCS 0014: Apontamento#13 Abr/2001 Sistemas de Tipos Tipos Parametrizados Um tipo parametrizado é um tipo que tem outros tipos como parâmetros. Tais tipos são essenciais em linguagens com tipos compostos (também conhecidos como containers). «type» Par = τ x τ τ «type» ParInteiro = Inteiro x Inteiro «instance of» «type» ParInteiro = Par( Inteiro ) (a) (b) Figura 4: Monotipos (a) podem ser produzidos a partir de tipos parametrizados (b). 2 Monomorfismo Em um sistema de tipos monomórfico, cada entidade (constante, variável, resultado de abstração-função/procedimento ou parâmetro formal) tem apenas um tipo associado. (Tais tipos não possuem variáveis de tipo.) Exemplo 2 Uma função que se aplica apenas a um produto cartesiano de conjuntos de caracteres. type ConjuntoChar = set of Char; function disjuntos( x1 : ConjuntoChar; x2 : ConjuntoChar ) : Boolean; begin disjuntos := ( x1 x2 = []); end; O tipo da função é disjuntos : (P Char P Char) ValorLogico Pode ser aplicada a um par de argumentos (valores) do tipo P Caractere: var x : ConjuntoChar;... if ( disjuntos( x, [ a, b ] ) then...
5 PCS 0014: Apontamento#13 Abr/2001 Sistemas de Tipos 5 Este trecho de programa testa se o conjunto armazenado em x é disjunto em relação ao conjunto {a, b}. O corpo desta abstração-função usa operações sobre conjuntos mas não sobre caracteres. A função é monomórfica e não pode ser aplicada a argumentos do tipo P Integer nem P Char, ou qualquer outro tipo de conjunto que não seja (P Char P Char) 3 Polimorfismo Ad-Hoc As linguagens de programação não são estritamente monomórficas. A linguagem Pascal, por exemplo, força o usuário a criar abstrações monomórficas, mas as abstrações pré-construídas ou são sobrecarregadas ou exploram o polimorfismo paramétrico. 3.1 Sobrecarga (Overloading) É comum o caso onde as abstrações pré-construídas têm tipos que não podem ser expressos pelo sistema de tipos nativo: são tratadas como casos especiais pelo compilador. No polimorfismo ad-hoc por sobrecarga, um determinado identificador é associado a vários tipos de abstrações. O mecanismo de sobrecarga não aumenta o poder expressivo, pois é suficiente explicitar os nomes das diferentes abstrações representadas pelo identificador sobrecarregado. Exemplo 3 É comum o uso de abstrações-procedimento para entrada e saída de dados em programas. Em Pascal tem-se:
6 PCS 0014: Apontamento#13 Abr/2001 Sistemas de Tipos 6 procedure writeln( { argumentos } ); Ativação normal: write(x); O efeito desta ativação depende do tipo de x: Se x : Char escreve um caractere. Se x : Integer converte para uma seqüência de caracteres e depois os escreve. Se x : String escreve a seqüência de caracteres. O procedimento write() denota vários procedimentos diferentes, efeito conhecido como SOBRECARGA. Exemplo 4 No caso do operador, cinco abstrações-função são representadas: Negação inteira, : Inteiro Inteiro Negação real, : Real Real Subtração inteira, : Inteiro Inteiro Inteiro Subtração real, : Real Real Real Diferença de conjuntos, Conjunto Conjunto Conjunto Em nenhuma alternativa ocorre ambigüidade. Assim, y e x y são resolvidos na abstração correta pela quantidade de parâmetros e pelos tipos dos parâmetros. Sobrecarga Independente de Contexto Seja a situação onde o identificador I está associado a duas abstrações-função f 1 : S 1 T 1 e f 2 : S 2 T 2 (S i pode ser um produto cartesiano). Sendo S 1 e S 2 diferentes, a ativação I(E) é resolvida pelo tipo da expressão E: Se E : S 1, então I f 1. Se E : S 2, então I f 2.
7 PCS 0014: Apontamento#13 Abr/2001 Sistemas de Tipos 7 Sobrecarga Dependente de Contexto Novamente, seja a situação onde o identificador I está associado a duas abstrações-função f 1 : S 1 T 1 e f 2 : S 2 T 2 (S i pode ser um produto cartesiano). Neste caso, ou S 1 e S 2 são diferentes, ou T 1 e T 2 são diferentes. A ativação I(E) é resolvida pelo tipo da expressão E, quando S 1 e S 2 são diferentes: Se E : S 1, então I f 1. Se E : S 2, então I f 2. Caso contrário, a ativação é resolvida pelo contexto onde ela ocorreu, sendo a vinculação de I dependente do tipo T 1 ou T 2 : Se I : T 1, então I f 1. Se I : T 2, então I f Coerção O polimorfismo ad-hoc por coerção é um mapeamento implícito de valores de um tipo em valores de um tipo diferente. Exemplos comuns são a coerção de inteiros para reais e a coerção de caracteres em seqüências com um único caractere. Normalmente as coerções são realizadas automaticamente quando demandadas pelo contexto. Exemplo 5 Na ativação de sqrt(n), considerando que sqrt(x : Real), ocorre uma coerção na maior parte dos casos quando n : Inteiro. O mapeamento óbvio de Inteiro para Real é: o que torna a expressão sqrt(n) legal. {, 1 1.0, 0 0.0, 1 1.0, } (Uma coerção forçada pelo usuário é dita cast) A tendência atual das linguagens é eliminar o mecanismo de coerção, uma vez que ele pode ser substituído pelos outros mecanismos polimórficos com melhores resultados. O caso anterior deveria ser reescrito como: sqrt(real(n)). 4 Polimorfismo Universal O polimorfismo universal aparece como paramétrico ou por inclusão.
8 PCS 0014: Apontamento#13 Abr/2001 Sistemas de Tipos Polimorfismo Paramétrico? ativação x : σ g : Abstração Polimórfica Com σ {Τ1, Τ2, Τ3 } Figura 5: A ativação pode ser feita com argumentos de diferentes tipos. No polimorfismo paramétrico, um determinado identificador é associado a apenas um tipo de abstração, embora os parâmetros da abstração possam ter diferentes tipos no momento da ativação. O polimorfismo paramétrico aumenta o poder expressivo pois processa argumentos que pertencem a um conjunto de tipos. Exemplo 6 Uma função que se aplica apenas a um produto cartesiano de conjuntos de elementos de um tipo qualquer. function disjuntos( x1 : set of T; x2 : set of T ) : Boolean; begin disjuntos := ( x1 x2 = []); end; O tipo da função é disjuntos : (P T P T) Boolean Pode ser aplicada a um par de argumentos (valores) do tipo P T: var caracs : set of Char; i1, i2 : set of Integer;... if ( disjuntos( caracs, [ a, b ] ) then... if ( disjuntos( i1, i2 ) then... Neste caso, o politipo (P T P T) ValorLogico denota: (P Char P Char) Boolean (P Integer P Integer) Boolean Exemplo 7 Função como argumento de outra função. Seja a função repete : (τ τ) (τ τ)
9 PCS 0014: Apontamento#13 Abr/2001 Sistemas de Tipos 9 definida como: repete(f (x)) = f (f (x)) A função repete recebe, como argumento, uma função f : τ τ, e retorna uma função g : τ τ tal que g(x) = f (f (x)). Se sqr : Integer Integer é tal que sqr(x) = x 2, para m(x) = repete(sqr(x)), tem-se: m(2) = repete(sqr(2)) = sqr(sqr(2)) = sqr(4) = Polimorfismo por Inclusão Um tipo T define um conjunto de valores. Subconjuntos destes valores podem ser vistos como subtipos do tipo T. Assim, uma condição necessária para S ser um subtipo de T é que S T. Um valor do tipo S pode seguramente ser utilizado onde um valor do tipo T é esperado. Seja um outro tipo U, com uma intersecção não vazia com T, mas sem ser subtipo de T. Um valor do tipo U pode ser usado no lugar de um valor do tipo T somente quando, em tempo de execução, uma verificação estabelece que o valor é realmente do tipo T. Esta categoria de verificação de tipo ocorre em tempo de execução, mas é mais simples e eficiente do que aquele implicado por uma linguagem com tipos dinâmicos. Associado ao tipo T existem várias operações aplicáveis aos seus valores. Elas também podem ser aplicadas a valores de qualquer subtipo S de T. Diz-se que S herda todas as operações de T.
10 PCS 0014: Apontamento#13 Abr/2001 Sistemas de Tipos 10 5 Inferência de Tipos Quando o tipo de uma entidade declarada é estabelecido de forma implícita, cabe ao sistema de tipos explicitá-lo no momento oportuno. 5.1 Inferência de Tipos Monomórficos Em linguagens monomórficas, o tipo dos identificadores pode ser inferido em todos os casos. O programador não precisa estabelecer os tipos envolvidos explicitamente, pois o compilador é capaz de inferi-los quando necessário. No entanto, isto introduz dificuldade humana de leitura. Em uma função com um longo corpo, é possível que o leitor tenha que avançar várias linhas de código para descobrir o tipo de uma entidade. Tal atividade tem alta chance de erro. MONOMORFISMO. MONOTIPO. Abstração 1 Tipo Figura 6: Monomorfismo e monotipos. 5.2 Inferência de Tipos Polimórficos Nestes casos, a inferência de tipos gera politipos. POLIMORFISMO. POLITIPO. Abstração n Tipo Figura 7: Polimorfismo e politipos. Neste caso, dada uma abstração, qual o seu tipo? Na situação da Figura 8, uma variável x : T executa operações do tipo «type»t. Mas qual corpo da abstração será ativado nos casos (a) e (b)?
11 PCS 0014: Apontamento#13 Abr/2001 Sistemas de Tipos 11 «type» T «type» T «realizes» «subtype» A B C A B C (a) (b) Figura 8: (a) «class»a, «class»b e «class»c realizam o tipo «type»t. (b) «type»a, «type»b e «type»c são subtipos do tipo «type»t.
Linguagem Pascal. Prof. Antonio Almeida de Barros Junior
Linguagem Pascal Prof. Antonio Almeida de Barros Junior 1 Linguagem Pascal Criada para ser uma ferramenta educacional (Década de 70); Prof. Niklaus Wirth (Universidade de Zurique); Blaise Pascal (Matemático
Leia mais= = = = = = = = = = = = = = = =
Página 1 de 7 A Linguagem PASCAL = = = = = = = = = = = = = = = = 1) ALFABETO: são os símbolos (ié, caracteres ) permitidos na linguagem. São as letras (maiúsculas e minúsculas), os algarismos (ou dígitos)
Leia maisPascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string
Pascal -Cabeçalho do programa Áreas do programa -Área de declarações -Corpo do programa - label - const - type - var - procedure - function - integer - real - byte - boolean - char - string Program
Leia maisTeoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.
Teoria da Computação e Algoritmos Introdução à Linguagem Pascal 1 Estrutura de um programa INÍCIO FIM. PROGRAM END.
Leia maisProgramação Introdução
PROGRAMAÇÃO Programação Introdução Prof. Dr. Adriano Mauro Cansian 1 Introdução Para armazenar um algoritmo na memória de um computador e para que ele possa, em seguida, comandar as operações a serem executadas,
Leia maisHerança e Polimorfismo (Universal)
Herança e Polimorfismo (Universal) Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Polimorfismo Paramétrico Polimorfismo de Inclusão Vinculação dinâmica Herança Interfaces
Leia maisPolimorfismo. O que é polimorfismo?
O que é polimorfismo? Polimorfismo Significa que variáveis podem referenciar mais do que um tipo. Não é um conceito novo e várias linguagens de programação aplicam. Funções são polimórficas quando seus
Leia maisSintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)
Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida) Não-terminais são nomes mnemônicos colocados entre parênteses angulares. Vocabulário terminal formado por
Leia 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 maisLinguagem de programação: Pascal
Aula 04 Linguagem de programação: Pascal Prof. Tecgº Flávio Murilo 26/03/2013 1 Pascal Introdução Pascal é uma linguagem de programação estruturada, criada em 1970 pelo suíço Niklaus Wirth, dando este
Leia maisUNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática
Programação 1 Prof. Osório Aula 03 Pag.: 1 UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática PROGRAMAÇÃO I AULA 03 Disciplina: Linguagem
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 maisAnálise Semântica e Tratamento de Erros Dependentes de Contexto
Análise Semântica e Tratamento de Erros Dependentes de Contexto O componente Semântico de uma LP Tarefas da Análise Semântica Implementação da Tabelas de Símbolos Ações Semânticas em Compiladores Dirigidos
Leia maisIntrodução à Ciência da Computação
Introdução à Ciência da Computação Variáveis Conceitos Básicos Variáveis x Constantes a = x + 5 a, x e 5 são variáveis ou constantes? Variáveis As variáveis são recipientes de valores É um espaço reservado
Leia maisTIC - Programação Visual
Polimorfismo Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 09 Polimorfismo 1 Verificação de Tipos: Tipos Atividade que garante que os operandos utilizados com um operador sejam de tipos compatíveis;
Leia maisMétodos de Programação I (2005/2006) 1. Ficheiro (file)
Métodos de Programação I (2005/2006) 1 Ficheiro (file) O tipo estruturado file representa, em Pascal, uma estrutura de dados capaz de armazenar dados ou resultados de qualquer outro tipo É uma estrutura
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 maisElementos básicos das linguagens de programação
Elementos básicos das linguagens de programação Objetivos: Apresentar os últimos elementos básicos das linguagens de programação Elementos básicos já estudados Entrada (read, readln) Saída (write, writeln)
Leia maisLinguagens de Programação
Linguagens de Programação Paradigma Imperativo Matheus Hafner Tiago Xavier CET 087 - Conceitos de Linguagens de Programação (CLP) 10 de novembro de 2011 Sumário 1 Introdução 2 Paradigma imperativo Modelo
Leia maisAULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos
Câmpus Santa Helena Curso: Ciência da Computação Disciplina: Programação Orientada a Objetos AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Tema
Leia maisC O N S T R U T O R E S E S O B R E C A R G A P R O F. M E. H É L I O E S P E R I D I Ã O
C O N S T R U T O R E S E S O B R E C A R G A P R O F. M E. H É L I O E S P E R I D I Ã O NOME DE CLASSES Toda classe deve começar com uma letra maiúscula. Não pode conter letras não ASCII (caracteres
Leia maisO AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc.
O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO Prof. Angelo Augusto Frozza, M.Sc. ROTEIRO 1. A linguagem de programação Object Pascal a) Palavras reservadas b) Tipos de dados, variáveis e constantes
Leia maisALGORITMOS VARIÁVEIS E OPERADORES. Prof. Angelo Augusto Frozza, M.Sc.
ALGORITMOS VARIÁVEIS E OPERADORES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ESTRUTURA DE UM ALGORITMO VISUALG Algoritmo Exemplo var valor_a, valor_b, valor_c : inteiro soma : inteiro
Leia maisINTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO
INTRODUÇÃO À LINGUAGEM PASCAL CESAR BEZERRA TEIXEIRA,MSC PREFÁCIO A linguagem Pascal foi criada pelo Prof Niklaus Wirth na universidade de Zurich, com o propósito de ensinar os conceitos de uma linguagem
Leia maisUniversidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação
Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação Análise Semântica Disciplina: Compiladores Equipe: Luiz Carlos dos Anjos Filho José Ferreira Júnior Compiladores Um compilador
Leia maisIntrodução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores
Introdução à programação em PASCAL Aula de 22/10/2001 Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores Conteúdo Conceito de linguagem de programação O processo
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 maisTipos Algébricos. Programação Funcional. Capítulo 11. José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto
Programação Funcional Capítulo 11 Tipos Algébricos José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2012.1 1/33 1 Tipos Algébricos 2/33 Tópicos 1 Tipos Algébricos 3/33
Leia maisLinguagem Computacional
Informática II Linguagem Computacional Algoritmos e Programação Parte 2 Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves 1 Sumário Tipos de Dados Variáveis Modelo esquemático Características e Regras
Leia maisTrabalho de Desenho de Linguagens de Programação e de Compiladores. Mini Pascal
Trabalho de Desenho de Linguagens de Programação e de Compiladores Mini Pascal (cod. 11482) Departamento de Informática Universidade da Beira Interior Ano lectivo 2015/2016 1 Introdução Este trabalho é
Leia maisAula Prática 2. Paradigmas da Programação I / Programação Funcional
Aula Prática 2 Paradigmas da Programação I / Programação Funcional ESI/MCC 1 o ano (2005/2006) Nesta aula pretende-se introduzir os conceitos seguintes: valores e expressões; tipos básicos e tipos compostos;
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 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 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 maisDepartamento de Engenharia Rural Centro de Ciências Agrárias. Programação I
Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Tipos definidos pelo programador Variáveis compostas heterogêneas Tipos definidos pelo usuário Os tipos integer, real, boolean,
Leia maisFERRAMENTAS BÁSICAS DA PROGRAMAÇÃO
FERRAMENTAS BÁSICAS DA PROGRAMAÇÃO VARIÁVEIS E O COMANDO DE ATRIBUIÇÃO O computador possui uma área específica de armazenamento denominada de memória. O computador possui uma área específica de armazenamento
Leia maisUniversidade Estadual de Maringá- UEM Centro de Tecnologia - CTC Departamento de Informática - DIN Fundamentos da Computação.
Universidade Estadual de Maringá- UEM Centro de Tecnologia - CTC Departamento de Informática - DIN Fundamentos da Computação Subprogramação Prof. Yandre Maldonado- 1 Prof. Yandre Maldonado e Gomes da Costa
Leia maisAgregado Homogêneo e Heterogêneo
Universidade Estadual de Maringá - UEM Centro de Tecnologia - CTC Departamento de Informática - DIN Fundamentos da Computação Agregado Homogêneo e Heterogêneo Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado
Leia maisVariáveis Compostas Heterogêneas. Variável Composta Heterogênea. Variável Composta Heterogênea
Variáveis Compostas Heterogêneas Variável Composta Heterogênea Conjunto de dados logicamente relacionados, mas de tipos diferentes. Também chamada de registro. Variável Composta Heterogênea 1 Declaração
Leia maisResumo 2 - Mapeamento Portugol-Pascal
Resumo 2 - Mapeamento - 1. Estrutura Básica Algoritmo nomedoalgoritmo Var Início Fim. Program nomedoalgoritmo Var Begin End.
Leia maisCiência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano M. Cansian
Algoritmos e Programação Informática II Ciência da Computação Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano M. Cansian 1 Sumário Tipos de Dados Variáveis Modelo esquemático Características e Regras para
Leia maisTeste de P1 12 de Dezembro 2001
Teste de P1 12 de Dezembro 2001 Pergunta 1: Converta o seguinte segmento de código trocando o bloco de if para o bloco do sem modificar o resultado do programa if ( (i=1) OR (i=x) OR (j=1) OR (j=y) ) then
Leia maisAgregado Homogêneo e Heterogêneo. Agregado Homogêneo. Agregado Homogêneo 28/11/2015
8//0 Universidade Estadual de Maringá - UEM Centro de Tecnologia - CTC Departamento de Informática - DIN Fundamentos da Computação e Heterogêneo Prof. Yandre Maldonado - Prof. Yandre Maldonado e Gomes
Leia maisSemântica Denotacional
Semântica Denotacional Uma introdução ISBN 0-321-19362-8 Semântica denotacional é um método formal para definir a semântica de linguagens de programação. Interessa a: projetista de linguagens, quem escreve
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 maisLinguagem Pascal. Definição e Tipos de Dados. Professora Lara Popov Zambiasi Bazzi Oberderder. Linguagem PASCAL 1
Linguagem Pascal Definição e Tipos de Dados Professora Lara Popov Zambiasi Bazzi Oberderder Linguagem PASCAL 1 Origem Linguagem de programação largamente utilizada no ensinoaprendizagem de programaçã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 maisComputação I. Prof. Miguel Elias Mitre Campista.
Computação I Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Linguagens de Programação DEL-Poli/UFRJ Introdução ao Pascal Níveis de Linguagens de Programação Linguagens declarativas Linguagens
Leia 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 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 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 maisSubprogramação. Subprogramação. Subprogramação. A subprogramação é uma ferramenta que contribui com a tarefa de programar:
Universidade Estadual de Maringá- UEM Centro de Tecnologia - CTC Departamento de Informática - DIN Fundamentos da Computação Prof. Yandre Maldonado- 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br
Leia maisProgramação de Computadores II
Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para
Leia maisAPÊNDICE A - FUNDAMENTOS DA LINGUAGEM DE PROGRAMAÇÃO PASCAL.
APÊNDICE A - FUNDAMENTOS DA LINGUAGEM DE PROGRAMAÇÃO PASCAL. 1. INTRODUÇÃO Este apêndice tem o objetivo de fornecer as regras básicas para transformar algoritmos (em Natural) em programas (em PASCAL).
Leia maisConceitos Básicos de Programação
BCC 201 - Introdução à Programação Conceitos Básicos de Programação Guillermo Cámara-Chávez UFOP 1/53 Conceitos básicos I Variável 2/53 Conceitos básicos II Posição de memoria, identificada através de
Leia maisLógica de Programação I. Gilson de Souza Carvalho
Gilson de Souza Carvalho gaucho.gilson@hotmail.com 1. Estruturas básicas Apresentaremos um resumo com os comandos estudados para criação de algoritmos. Para utilizar estes comandos, usaremos uma sintaxe
Leia maisCompiladores Prof. a Mariella Berger. Trabalho 2 Analisador Léxico
Compiladores Prof. a Mariella Berger Trabalho 2 Analisador Léxico 1. Objetivo O objetivo deste trabalho é a criação de um analisador léxico para a linguagem Pascalito, um subconjunto modificado da linguagem
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 maisLista de Linguagens de Programação 7
Lista de Linguagens de Programação 7 Nome: Matrícula: 1. Dizemos que uma linguagem é segura quando esta linguagem não permite que operações sejam aplicadas a argumentos que não possuam os tipos previstos
Leia maisSistemas de Tipos. Cristiano Damiani Vasconcellos.
1 / 24 Sistemas de Tipos Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Departamento de Ciência da Computação Universidade do Estado de Santa Catarina Tipos 2 / 24 Tipos: Coleção de valores
Leia maisSQL Pacotes. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados Pacotes
SQL Pacotes Laboratório de Bases de Dados Características Pacotes objetos do banco de dados são equivalentes a bibliotecas Armazenam procedimentos funções definições de cursores declarações de variáveis
Leia maisUNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio;
UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; e-mail: sandra@icmc.usp.br Lista de Exercícios Árvores, Árvores Binárias, Árvores
Leia maisPolimorfismo: aprendendo a prever o futuro. Polimorfismo: aprendendo a prever o futuro. Definições (2/5) Definições Tipos de Polimorfismo
Polimorfismo: aprendendo a prever o futuro BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Sumário Definições Tipos de Polimorfismo Dicas para o Polimorfismo Eficaz Armadilhas
Leia mais6) ESTRUTURA DE UM PROGRAMA
Página 1 de 16 6) ESTRUTURA DE UM PROGRAMA = = program ; = uses
Leia maisConsidere uma máquina que utiliza uma palavra de 10 bits. Suponha o seguinte padrão de bits:
PROVA DE CONHECIMENTOS ESPECÍFICOS 1 a QUESTÃO: (1, ponto) Representação binária Considere uma máquina que utiliza uma palavra de 1 bits. Suponha o seguinte padrão de bits: 1111. a) Indique o valor em
Leia maisIntrodução. Lógica e Algoritmo. Lógica e Algoritmo. Lógica e Algoritmo. Lógica e Algoritmo
Introdução Lógica e programação Aula 02 Introdução à Programação Pascal Formalização de algoritmos na Exercícios Sky Informática Ltda. 1 2 Algoritmo: É uma maneira formal de expressar o raciocínio. O grau
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 9 Subalgoritmos, funções e passagem de parâmetros Profa. Marina Gomes marinagomes@unipampa.edu.br 22/06/2017 Engenharia de Computação - Unipampa 1 Modularização Facilita a
Leia maisTutorial de Turbo Pascal
Página 1 de 7 Este tutorial foi completamente escrito por Rodrigo Brambilla pode ser distribuído livremente sem nenhuma modificação. Agradecimentos: Leomar Pacheco Rocha, Rodrigo Hoffmann dos Santos, Paulo
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 maisConjunto (set) O tipo estruturado set representa, em Pascal, um conjunto de objectos de um dado tipo;
Conjunto (set) O tipo estruturado set representa, em Pascal, um conjunto de objectos de um dado tipo; O tipo de dados tem por base um tipo simples (enumerável); Na verdade, um set representa o conjunto
Leia maisCapítulo VI : Subprogramas
Capítulo VI : Subprogramas 1 _ Capítulo VI : Subprogramas Subdivisão dos programas em unidades funcionais. Procedimento (procedure): realiza uma acção Função (function) : calcula e fornece um valor 5.1.
Leia maisCurso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 3ª Parte Prof. Sandra Pais Soares
Curso Profissional de Gestão e Programação de Sistemas Informáticos Programação e Sistemas de Informação Módulo 1 3ª Parte Prof. Sandra Pais Soares Fundamentos de Programação 1. Palavras Reservadas 2.
Leia maisPROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95
PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:
Leia maisComputação Eletrônica. Arquivo
Computação Eletrônica Arquivo Memória RAM (1 Giga Byte) Processador (Intel Pentium) Disco ou (100 Giga Bytes) Por que temos 2 memórias? : permanente (pode desligar o computador), barato e lento O é representado
Leia maisPROG. DE COMPUTADORES II SI Arquivos
1 PROG. DE COMPUTADORES II SI Arquivos Arquivos Permitem que gravemos nossas informações em dispositivos físicos Pendrive HD Estão organizados logicamente em registros Cada registro é similar a um campo
Leia maisLinguagem Pascal. Prof. Jonatas Bastos Site:
Linguagem Pascal Prof. Jonatas Bastos Email: jonatasfbastos@gmail.com Site: http://jonatasfbastos.wordpress.com/ 1 Linguagem Pascal Foi desenvolvida pelo prof. Niklaus Wirth como uma linguagem simples
Leia maisLinguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;
Linguagem Pascal Prof. Sérgio Rodrigues Introdução Algoritmo É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa; Programa é a formalização de um algoritmo
Leia maisGenéricos. Profa. Thienne Johnson EACH/USP
Genéricos Profa. Thienne Johnson EACH/USP Java, como programar, 6ª edição Deitel & Deitel Capítulo 18 Material complementar http://wps.prenhall.com/br_deitel_comoprogra_6/ Todas as classes em Java herdam,
Leia maisENGENHARIA DE PRODUÇÃO ICC 1 TÉCNICAS DE PROGRAMAÇÃO
ENGENHARIA DE PRODUÇÃO ICC 1 TÉCNICAS DE PROGRAMAÇÃO 1. INTRODUÇÃO O que é um programa? Programa constitui uma seqüência lógica de passos para solução de um problema. Um programa pode ser codificado em
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 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 maisFunção, interação com o compilador Especificação e reconhecimento de tokens Implementação Tratamento de erros. Prof. Thiago A. S.
Análise léxica Função, interação com o compilador Especificação e reconhecimento de tokens Implementação Tratamento de erros Prof. Thiago A. S. Pardo 1 Estrutura geral de um compilador programa-fonte analisador
Leia maisPrimeira Prova de Linguagens de Programação - DCC024 - Sistemas de Informação
Primeira Prova de Linguagens de Programação - DCC024 - Sistemas de Informação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem
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 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 maisSumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 10. Algoritmos e Programação. Enquanto (Teste no início) Repeat (Teste no final)
Algoritmos e Programação Informática II Ciência da Computação Prof. Dr. Leandro Alves Neves Aula 10 1 Sumário Estruturas de Controle de Fluxo q Repetição Enquanto (Teste no início) Repeat (Teste no final)
Leia maisPonteiro e lista dinâmica
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Ponteiro é uma variável que
Leia maisVARIÁVEIS NUMÉRICAS : integer - Números inteiros entre e real - Números reais de 11 algarismos significativos.
TURBO PASCAL Histórico Origem: desenvolvida nos anos entre 1968 e 1970 por Nicklaus Wirth na Universidade Técnica de Zurique, Suíça. Em 1970 é disponibilizado o primeiro compilador para a linguagem. Objetivo:
Leia maisCapítulo 3 CARACTERÍSTICAS GERAIS DA LINGUAGEM PASCAL 1. INTRODUÇÃO
Capítulo 3 CARACTERÍSTICAS GERAIS DA LINGUAGEM PASCAL 1. INTRODUÇÃO A linguagem Pascal foi concebida por Niklaus Wirth no início da década de 70, tendo por principal objetivo eliminar os péssimos hábitos
Leia maisExistem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.
Aula 3 SOFTWARE (programas) Um programa (software) consiste em uma sequência de instruções escritas numa linguagem precisa chamada linguagem de programação. Estas instruções são traduzidas em um compilador,
Leia maisLinguagem e Técnicas em Programação. Gilson de Souza Carvalho
Gilson de Souza Carvalho gaucho.gilson@hotmail.com 3.1.3 Condições compostas Linguagem e Técnicas em Programação As condições que vimos até agora sempre foram únicas. Entretanto, conforme aumenta a complexidade
Leia maisGrupo 3: 8,3 - Parte Léxica (2,0): 1,9 - Na parte I especificou tamanho de identificador com 512 caracteres, mas não tratou (-0,1) -Parte Sintática
Grupos revisem os problemas da análise léxica e sintática ANTES de passarem para as fases seguintes. Os grupos que não fizeram revisão hoje (13/5), podem fazer na semana dia 24/5 Grupo 1: 6,0 - Parte Léxica
Leia maisProgramação de Computadores I. Professor Ilaim Costa Junior
Programação de Computadores I Professor Ilaim Costa Junior ilaim@ic.uff.br Roteiro da Aula de Hoje ariável Tipos básicos Declaração Expressões Aritméticas Lógicas Atribuição 2 ariável Representa uma região
Leia maisI1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.
Capítulo 4 TESTES, ESCOLHAS E MALHAS DE REPETIÇÃO 1. INTRODUÇÃO Em muitos exemplos e exercícios realizados nos capítulos anteriores, não foram raras as vezes em que fizemos uso de elementos disponíveis
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 maisDisciplina Programação Prof. Esp. Armando Hage. Programação em Turbo Pascal
Disciplina Programação Prof. Esp. Armando Hage Programação em Turbo Pascal Introdução A linguagem de programação pascal foi escrita por Niklaus Wirth entre 1969 e 1971, e deriva das linguagens ALGOL-60
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 maisUnidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri
Unidade VI Técnicas de Teste de Software Profa. Dra. Sandra Fabbri Os requisitos de teste são extraídos de uma implementação em particular Teste dos detalhes procedimentais A maioria dos critérios dessa
Leia maisLinguagens de Programação
Linguagens de Programação Valores e Tipos de Dados Bruno Lopes Bruno Lopes Linguagens de Programação 1 / 19 Propriedades desejáveis Legibilidade: A leitura do programa é facilmente compreendida? Redigibilidade:
Leia maisLinguagens de Programação
Linguagens de Programação Expressões e Variáveis Bruno Lopes Bruno Lopes Linguagens de Programação 1 / 34 Propriedades desejáveis Legibilidade: A leitura do programa é facilmente compreendida? Redigibilidade:
Leia mais