Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Computação e Sistemas Digitais. PCS 0014: Linguagens de Programação

Tamanho: px
Começar a partir da página:

Download "Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Computação e Sistemas Digitais. PCS 0014: Linguagens de Programação"

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 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 mais

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Pascal. -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 mais

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. 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 mais

Programação Introdução

Programaçã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 mais

Herança e Polimorfismo (Universal)

Heranç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 mais

Polimorfismo. O que é polimorfismo?

Polimorfismo. 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 mais

Sintaxe 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) 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 mais

Sistemas de Tipos. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe

Sistemas 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 mais

Linguagem de programação: Pascal

Linguagem de programação: Pascal Aula 04 Linguagem de programação: Pascal Prof. Tecgº Flávio Murilo 26/03/2013 1 Pascal Introdução Pascal é uma linguagem de programação estruturada, criada em 1970 pelo suíço Niklaus Wirth, dando este

Leia mais

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

UNISINOS - 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 mais

Paradigmas de Linguagens de Programação. Subprogramas

Paradigmas de Linguagens de Programação. Subprogramas Cristiano Lehrer Características Gerais dos Cada subprograma tem um único ponto de entrada Toda unidade de programa chamadora é suspensa durante a execução do programa chamado, o que implica na existência

Leia mais

Análise Semântica e Tratamento de Erros Dependentes de Contexto

Aná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 mais

Introdução à Ciência da Computação

Introduçã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 mais

TIC - Programação Visual

TIC - 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 mais

Métodos de Programação I (2005/2006) 1. Ficheiro (file)

Mé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 mais

Paradigmas de Linguagens de Programação. Nomes, Vinculações, Verificação de Tipos e Escopos

Paradigmas de Linguagens de Programação. Nomes, Vinculações, Verificação de Tipos e Escopos Nomes, Vinculações, Verificação de Tipos e Escopos Cristiano Lehrer Nomes (1/6) Um nome é uma string de caracteres usada para identificar alguma entidade de um programa. O termo identificador é utilizado

Leia mais

Elementos básicos das linguagens de programação

Elementos 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 mais

Linguagens de Programação

Linguagens 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 mais

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos

AULA 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 mais

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

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 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 mais

O 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. 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 mais

ALGORITMOS VARIÁVEIS E OPERADORES. Prof. Angelo Augusto Frozza, M.Sc.

ALGORITMOS 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 mais

INTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO

INTRODUÇÃ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 mais

Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação

Universidade 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 mais

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

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 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 mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 06 (rogerio@fct.unesp.br) Aula 6 Subprogramas

Leia mais

Tipos Algébricos. Programação Funcional. Capítulo 11. José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto

Tipos 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 mais

Linguagem Computacional

Linguagem 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 mais

Trabalho 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 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 mais

Aula Prática 2. Paradigmas da Programação I / Programação Funcional

Aula 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 mais

Variáveis. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe

Variá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 mais

RESUMO DA DISCUSSÃO SOBRE LINGUAGENS DE PROGRAMAÇÃO DO DIA 26 DE OUTUBRO DE 2006

RESUMO 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 mais

Erros de Tipo em Pascal Simplifificado

Erros 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 mais

Departamento 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 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 mais

FERRAMENTAS BÁSICAS DA PROGRAMAÇÃO

FERRAMENTAS 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 mais

Universidade 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. 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 mais

Agregado Homogêneo e Heterogêneo

Agregado 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 mais

Variáveis Compostas Heterogêneas. Variável Composta Heterogênea. Variável Composta Heterogênea

Variá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 mais

Resumo 2 - Mapeamento Portugol-Pascal

Resumo 2 - Mapeamento Portugol-Pascal Resumo 2 - Mapeamento - 1. Estrutura Básica Algoritmo nomedoalgoritmo Var Início Fim. Program nomedoalgoritmo Var Begin End.

Leia mais

Ciência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano M. Cansian

Ciê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 mais

Teste de P1 12 de Dezembro 2001

Teste 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 mais

Agregado Homogêneo e Heterogêneo. Agregado Homogêneo. Agregado Homogêneo 28/11/2015

Agregado 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 mais

Semântica Denotacional

Semâ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 mais

02. [Sebesta, 2000] Qual é o perigo potencial dos nomes que fazem distinção entre maiúsculas e minúsculas?

02. [Sebesta, 2000] Qual é o perigo potencial dos nomes que fazem distinção entre maiúsculas e minúsculas? 01. [Sebesta, 2000] Quais são as questões de projeto referentes a nomes? Nomes, Vinculações, Verificação de Tipos e Escopos 02. [Sebesta, 2000] Qual é o perigo potencial dos nomes que fazem distinção entre

Leia mais

Linguagem 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 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 mais

Linguagens de Programação Conceitos e Técnicas. Amarrações

Linguagens de Programação Conceitos e Técnicas. Amarrações Linguagens de Programação Conceitos e Técnicas Amarrações Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um identificador

Leia mais

Computação I. Prof. Miguel Elias Mitre Campista.

Computaçã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 mais

Nomes, Amarração, Verificação de Tipos, e Escopo

Nomes, Amarração, Verificação de Tipos, e Escopo 5 Nomes, Amarração, Verificação de Tipos, e Escopo Concepts of Programming Languages, 5/e Robert W. Sebesta Agenda Objetivo desta aula: Introduzir os principais aspectos semânticos de variáveis Palavras-chave

Leia mais

Capítulo 9. Subprogramas

Capítulo 9. Subprogramas Capítulo 9 Subprogramas Introdução Dois recursos fundamentais de abstração Abstração de processos Desde o início da história das linguagens de programação Abstração de dados Desde o início dos anos 1980

Leia mais

Tipo. Tipo de uma variável: especificação de

Tipo. Tipo de uma variável: especificação de Checagem de Tipos O que é tipo? Erros de Tipos em FRANKIE não capturados pela gramática Tarefas de um Type Checker e Conversões de Tipos Sistema de Tipos Checagem Estática X Dinâmica Linguagens Fortemente

Leia mais

Subprogramação. Subprogramação. Subprogramação. A subprogramação é uma ferramenta que contribui com a tarefa de programar:

Subprogramaçã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 mais

Programação de Computadores II

Programação de Computadores II Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para

Leia mais

APÊNDICE A - FUNDAMENTOS DA LINGUAGEM DE PROGRAMAÇÃO PASCAL.

APÊ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 mais

Conceitos Básicos de Programação

Conceitos 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 mais

Lógica de Programação I. Gilson de Souza Carvalho

Ló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 mais

Compiladores Prof. a Mariella Berger. Trabalho 2 Analisador Léxico

Compiladores 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 mais

Capítulo 7. Expressões e Sentenças de Atribuição

Capítulo 7. Expressões e Sentenças de Atribuição Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário

Leia mais

Lista de Linguagens de Programação 7

Lista 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 mais

Sistemas de Tipos. Cristiano Damiani Vasconcellos.

Sistemas 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 mais

SQL Pacotes. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados Pacotes

SQL 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 mais

UNIVERSIDADE 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; 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 mais

Polimorfismo: 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. 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 mais

6) ESTRUTURA DE UM PROGRAMA

6) ESTRUTURA DE UM PROGRAMA Página 1 de 16 6) ESTRUTURA DE UM PROGRAMA = = program ; = uses

Leia mais

Considere uma máquina que utiliza uma palavra de 10 bits. Suponha o seguinte padrão de bits:

Considere 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 mais

Introdução. Lógica e Algoritmo. Lógica e Algoritmo. Lógica e Algoritmo. Lógica e Algoritmo

Introduçã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 mais

Algoritmos e Programação

Algoritmos 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 mais

Tutorial de Turbo Pascal

Tutorial 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 mais

Verificação de Tipo. Unions. Verificação de tipo estática. Verificação de tipo dinâmica

Verificaçã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 mais

Conjunto (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; 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 mais

Capítulo VI : Subprogramas

Capí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 mais

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

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 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 mais

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

PROGRAMAÇÃ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 mais

Computação Eletrônica. Arquivo

Computaçã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 mais

PROG. DE COMPUTADORES II SI Arquivos

PROG. 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 mais

Linguagem Pascal. Prof. Jonatas Bastos Site:

Linguagem 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 mais

Linguagem 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. É 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 mais

Genéricos. Profa. Thienne Johnson EACH/USP

Gené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 mais

ENGENHARIA DE PRODUÇÃO ICC 1 TÉCNICAS DE PROGRAMAÇÃO

ENGENHARIA 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 mais

Linguagens de Programação. Tipos. Carlos Bazilio

Linguagens 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 mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação

Leia mais

Função, interação com o compilador Especificação e reconhecimento de tokens Implementação Tratamento de erros. Prof. Thiago A. S.

Funçã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 mais

Primeira Prova de Linguagens de Programação - DCC024 - Sistemas de Informação

Primeira 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 mais

CAP. VI ANÁLISE SEMÂNTICA

CAP. 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 mais

02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais?

02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais? 01. [Sebesta, 2000] O que é um descritor? 02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais? 03. [Sebesta, 2000] Quais são as questões de projeto relativas aos tipos

Leia mais

Sumá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)

Sumá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 mais

Ponteiro e lista dinâmica

Ponteiro 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 mais

VARIÁVEIS NUMÉRICAS : integer - Números inteiros entre e real - Números reais de 11 algarismos significativos.

VARIÁ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 mais

Capítulo 3 CARACTERÍSTICAS GERAIS DA LINGUAGEM PASCAL 1. INTRODUÇÃO

Capí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 mais

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

Existem 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 mais

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Linguagem 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 mais

Grupo 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

Grupo 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 mais

Programação de Computadores I. Professor Ilaim Costa Junior

Programaçã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 mais

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.

I1, 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 mais

Paradigmas de Linguagens de Programação. Expressões e Instruções de Atribuição

Paradigmas de Linguagens de Programação. Expressões e Instruções de Atribuição Expressões e Instruções de Atribuição Cristiano Lehrer Introdução Expressões são o meio fundamental de especificar computações em uma linguagem de programação: Familiarização com as ordens de avaliação

Leia mais

Disciplina Programação Prof. Esp. Armando Hage. Programação em Turbo Pascal

Disciplina 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 mais

Tipos. O Conceito de Tipo

Tipos. 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 mais

Unidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri

Unidade 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 mais

Linguagens de Programação

Linguagens 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 mais

Linguagens de Programação

Linguagens 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