Introdução à Programação Funcional
|
|
|
- Denílson Peres Leveck
- 9 Há anos
- Visualizações:
Transcrição
1 Introdução à Programação Funcional PPGIA - PUCPR Prof. Fabrício Enembreck 1 Conteúdo Introdução ao Cálculo Lambda e à Programação Funcional Introdução ao LISP e ao CLisp Funções Lambda e binding Funções de sequências Listas e funções recursivas Grafos em LISP 2 1
2 Bibliografia Graham, Paul, Ansi Common Lisp, Steele, Guy, Common Lisp: the langage, Reade, Chris, Elements of functional programming, Bird, Richard, Introduction to funcional programming, John McCarthy: Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I Utilizado nesta apresentação 3 Motivação A programação funcional introduziu muitos recursos novos de programação: Condicionais: if-then-else foi inventado por John McCarthy Função: Uma função é uma estrutura de dados (Lista) Recursão: Existia apenas em definições matemáticas. LISP foi a primeira linguagem a suportar recursividade Ponteiros: Toda variável é um ponteiro Garbage-Collection 4 2
3 Introdução ao Cálculo Lambda O que é? A notação Lambda é um formalismo matemático que inspirou algumas das linguagens de programação funcionais (LISP por exemplo). Conceitos Básicos Abstração de função: λx.e e denota uma função cujo parâmetro formal (variável ligada) é x e cujo corpo é a expressão E. Aplicação da função: Uma aplicação ou chamada de função é escrita na forma E1 E2. A subexpressão E1 deve avaliar uma determinada função, tendo como parâmetro atual E2. 5 Exemplo de Abstrações de Função λx.x Função identidade; λn.subtract n 1 Função predecessor; λf.f 0 O argumento é uma função f sendo o resultado a aplicação deste com 0; λf. λx. f(f x) Esta função recebe f e x como parâmetro; o resultado é uma função que aplica f duas vezes a x; λp. λx. not(p x) O argumento é uma função booleana p e um valor x. O resultado é a negação do resultado de p sobre x; 6 3
4 Exemplo de Aplicações de Função suc n Sucessor de n; zero ( pred n) Aplica a função zero sobre o resultado de (pred n); add 1 n Soma 1 e n; (λx.x) y Aplica a função identidade a y; 7 Exemplo de Avaliação de Função zero (pred 4) zero 3 false zero retorna true caso o argumento seja 0 e false caso contrário (λn. add n n) 3 add
5 Sintaxe do Cálculo Lambda Expression ::= S-Expression λ Identifier. Expression S-Expression ::= P-Expression S-Expression P-Expression P-Expression ::= Literal Identifier ( Expression ) S-Expression: Symbolic Expression P-Expression: Propositional Expression 9 Semântica do Cálculo Lambda Não tipado: função identidade pode ser aplicada sobre qualquer valor Variável ligada: Identificador que sucede o símbolo λ Ocorrência aplicada: Qualquer outra ocorrência de um identificador ligado Exemplos λn. add m n λf. λx. f ( f (x) ) ( add e m estão livres) ( f e x são parâmetros) 10 5
6 Exemplos de Avaliação de Funções (λp. λx. not ( p x ) ) zero 2 λx. not ( zero x ) 2 not ( zero 2 ) not false true (λf. λx. f ( f x ) ) suc 8 λx. suc (suc x ) 8 suc ( suc 8 ) suc Ordem de Avaliação de Funções Ordem Normal (λn. multiply n n) ( add 2 3 ) multiply ( add 2 3 ) ( add 2 3 ) multiply 5 ( add 2 3 ) multiply Ordem Primária (λn. multiply n n) ( add 2 3 ) (λn. multiply n n) 5 multiply
7 Porque a ordem é importante? Considere a função: (λn. 7) (divide 1 0) Ordem Normal (λn. 7) (divide 1 0) 7 Ordem Primária (λn. 7) (divide 1 0) (Indeterminação) 13 Funções Estritas e não Estritas Estrita se f Exemplo : succ Não-estrita se f x e x (em alguma ordem de avaliação) Exemplo: (λn. 7) Funções estritas, ou parciais, aplicam-se apenas em parte de um domínio, pois combinações de valores de parâmetros podem levar a função a não terminar a computação. 14 7
8 Introdução à Programação Funcional Em John McCarthy criou LISP* Fortran era a linguagem mais conhecida Limitações de Fortran: Seqüencial (sem subrotinas ou comandos aninhados) Condicionais if goto Sem recursividade LISP introduziu os conceitos de base para muitas das linguagens de hoje * LISt Processing Language 15 Elementos da Programação Funcional Funções Parciais (já visto no cálculo lambda) Expressões Proposicionais: uma expressão cujos valores possíveis são T (true) ou F (false) Expressões condicionais (p 1 e 1, p 2 e 2,..., p n e n ) Lê-se: se p1 então e 1 senão se p 2 então e
9 Elementos da Programação Exemplos de Expressões condicionais (1 < 2 4, 1 > 2 3) = 4 (2 < 1 4, 2 > 2 3, 2 > 1 2) = 2 (2 < 1 3, T 0/0) indefinida (2 < 1 3, 4 < 1 4) indefinida * LISt Processing Language 17 Elementos da Programação Definições recursivas de função n! = (n = 0 1, T n * (n -1)!) Avaliação de 2! 2! = (2 = 0 1, T 2 * (2-1)!) = 2 * 1! = 2 * (1 = 0 1, T 1 * (1 1)!) = 2 * 1 * 0! = 2 * 1 * (0 = 0 1, T 0 * (0-1)!) = 2 * 1 * 1 =
10 Elementos da Programação Expressões para funções recursivas Lambda Cálculo não permite chamar uma função dentro da definição da mesma função Ex: sqrt(a,x,e) = ( x 2 -a < e x, T sqrt(a, ½ * (x+a/x), e)) Pode ser definida como: sqrt = (λ.a.x.e).( x 2 -a < e x, T sqrt(a, ½ * (x+a/x), e)) mas o que é sqrt? 19 Elementos da Programação Notação para definição de funções recursivas Ex.: label(l, Expression) label(sqrt, (λ.a.x.e).( x 2 -a < e x, T sqrt(a, ½ * (x+a/x), e)))) 20 10
11 Elementos da Programação Expressões simbólicas (S-Expressions)., (, ) Símbolos atômicos: Letras maiúsculas e/ou dígitos Ex.: CASA, 3, APPLE, APPLE-3 Logo, uma S-Expression pode ser: Um símbolo atômico Se e 1 e e 2 são S-Expressions, então (e 1. e 2 ) são S-Expressions Exemplos de S-Expressions: AB (A. B) ((AB. C). D) 21 Elementos da Programação Listas Uma lista (m 1 m 2... m n ) de elementos corresponde à seguinte expressão simbólica: (m 1. (m 2. (... (m n. NIL)...))) Onde: (m) equivale a (m. NIL) (m1 m2... m n ) equivale a (m1. (m2. (... (m n. NIL)...))) (m1 m2... m n. x) equivale a (m1. (m2. (... (m n. x)...))) 22 11
12 Elementos da Programação Abreviações de Listas ((AB. (C. NIL)). (D. NIL)) equivale a: ((AB C) D) ((A. (B. NIL)). (C. (D. E))) equivale a: ((A. B) C D. E) 23 Elementos da Programação Funções simbólicas elementares e predicados (atom x): true se x é átomo (eq x y): x e y são átomos e idênticos (car l): primeiro elemento da lista l (cdr l): corpo da lista l (cons x y): (x. y) (equal x y): x e y são expressões simbólicas idênticas 24 12
13 Elementos da Programação A função universal apply (apply f args) é equivalente a: (eval (cons f x)) EX.: (apply (quote +) (quote (1 2 3))) = 6 25 Elementos da Programação Representação de funções simbólicas ε com expressões simbólicas ε* 1. Se ε é uma S-Function, ε* é (QUOTE ε) 2. Toda string s em ε é colocada em maiúsculo s* em ε* 3. (p 1 e 1, p 2 e 2,..., p n e n ) é transformado em (COND (p 1 * e 1 *) (p 2 * e 2 *)... (p n * e n *)) 4. λx 1. λx λx n.ε é transformado em (LAMBDA (x 1 * x 2 *... x n *) ε*) 5. label(l, param, ε) é transformado em (defun l* param* ε*) 26 13
14 Exemplos de Expressões Simbólicas em LISP?> (lambda (x) x) ;;; função identidade?> (lambda (x) (* x x) ) ;;; quadrado?> (lambda (f) (funcall f 0)) ;; uma função f sendo o resultado a aplicação deste com 0;?> (lambda (p x) (not (funcall p x)))?> (cond ((> 0 1) (print nao )) ((> 1 0) (print sim ))) 27 Exercícios 1) Da lista (3 4 5) diga quais são os seus elementos e de que tipo são (átomo/lista). Qual é o segundo elemento? 2) Qual é o resultado da avaliação da expressão: (+ 3 (* 7 6) 5 (/ 4 2))? Diga quais são os seus elementos e de que tipo são (átomo/lista). 3) Defina uma função lambda que implemente a seguinte função f(x)=x-1. Dê um exemplo de utilização. 4) Qual a cabeça da lista (3 4 5)? Qual a expressão simbólica em LISP que nos permite obtê-la? 28 14
15 Exercícios 5) Qual é o corpo da lista ((3) (4 5))? Qual a expressão simbólica em LISP que nos permite obtê-la? 6) Implemente uma função lambda que obtém a cabeça da lista passada como argumento. Dê um exemplo de utilização. 7) Qual a cauda da lista (3 4 5)? E da lista ((3) 4 5)? E da lista ((3) 4 5)? E da lista nil? E da lista contendo nil? 8) Implemente uma função lambda que obtém a cauda da lista passada como argumento. Dê um exemplo de utilização. 9) Qual a cabeça da cauda das seguintes listas: (), (3), (3 4), ((3) 4), ((3) (4 5)), ((3) (4 5) (7)) 29 15
Introdução à Programação Funcional. Conteúdo
Introdução à Programação Funcional PPGIA - PUCPR Prof. Fabrício Enembreck 1 Conteúdo Introdução ao Cálculo Lambda e à Programação Funcional Introdução ao LISP e ao Common Lisp Funções Lambda e binding
Linguagens 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
LISP - Introdução. Existem vários dialectos de LISP: COMMON LISP (o mais sofisticado e mais utilizado) Outros: MAC LISP, INTERLISP, XLISP
LISP - Introdução Linguagem de alto nível, criada por John McCarty em 1959, tendo em vista facilitar a programação de sistemas de raciocínio baseados em lógica Foi adoptada como linguagem principal em
Cálculo Lambda Sem Tipos
Cálculo Lambda Sem Tipos Cálculo lambda sem tipos Peter Landin (60 s) observou que uma linguagem de programação pode ser compreendida formulando-a em um pequeno núcleo capturando suas características essenciais
Inteligência Artificial
Instituto Politécnico de Setúbal Escola Superior de Tecnologia de Setúbal Departamento de Sistemas e Informática Guia de Exercícios das Aulas Práticas Inteligência Artificial Prof Joaquim Filipe Eng. Adelaide
Trabalho de Programação Funcional Linguagem Scheme
Trabalho de Programação Funcional Linguagem Scheme Fábio Davanzo F. de Oliveira, Daniel C. Santos Bacharelado em Ciências da Computação quarta fase, 2002 Departamento de Informatica e Estatística (INE)
Common-Lisp (introdutório).
Common-Lisp (introdutório). Índice Conceitos Básicos Funções e predicados numéricos Funções sobre pares e listas Constantes, variáveis e atribuições Formas especiais Definição de funções Recursão Rastreio
Listas generalizadas. SCC-202 Algoritmos e Estruturas de Dados I
Listas generalizadas SCC-202 Algoritmos e Estruturas de Dados I Lista generalizada Uma lista generalizada é aquela que pode ter como elemento ou um átomo ou uma outra lista (sub-lista) Átomo: integer,
Programação Funcional. Programação Funcional LISP. Paradigma de programação baseado em Funções Matemáticas
Programação Funcional Programação Funcional Paradigma de programação baseado em Funções Matemáticas Essência de Programação: combinar funções para obter outras mais poderosas PLP 2009/1 Profa. Heloisa
Uma Aula Prática sobre LISP
MAC 5710 - Estruturas de Dados - 2008 Linguagem LISP Surgiu no final dos anos 50 - John McCarthy (MIT). Linguagem para processamento simbólico. Muito usada em aplicações em Inteligência Artificial. Outras
Centro Universitário do Triângulo
Centro Universitário do Triângulo Cálculo Lambda 1. Introdução A elaboração de modelos de computação (resolução de problemas por uma máquina) baseia-se em trabalhos de dois pesquisadores com enfoques bastante
Programação Funcional - Introdução a Cálculo Lambda
Programação Funcional - Introdução a Cálculo Lambda Cristiano Damiani Vasconcellos Universidade do Estado de Santa Catarina 1. Definição Cálculo lambda (λ-cálculo) é um modelo matemático capaz de ilustrar
ao 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
Conceitos de Linguagem de Programação - 2
Conceitos de Linguagem de Programação - 2 Arthur Jovita Guerra Thalles Santos Silva Universidade Estadual de Santa Cruz - Ilhéus, BA 1 de novembro de 2011 1 Revisão Natureza das linguagens de Programação
LINGUAGENS FORA DO PADRÃO DE MERCADO
LINGUAGENS FORA DO PADRÃO DE MERCADO Alunos: Clayton Reis da Silva Leonardo Lessa Aramaki Leonardo Machado Azevedo Manoel Mariano Siqueira Júnior Essas pessoas criaram as linguagens de programação Forth,
Programação Funcional
Programação Funcional Alguns paradigmas: imperativo, lógico, orientado a objetos, funcional Características centrais da programação funcional: Funções de alta ordem Recursão Abstração lambda Outras características
Funções Recursivas. Prof.: Edson Holanda Teoria da computação - Diverio e Menezes
Funções Recursivas Prof.: Edson Holanda [email protected] Teoria da computação - Diverio e Menezes Tipos de Formalismos Operacional Define-se uma máquina abstrata, baseada em estados, em instruções
Primeira Prova de Linguagens de Programação - DCC024 -
Primeira Prova de Linguagens de Programação - DCC024 - Ciência da Computaçã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 consulta.
Linguagem Haskell. Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação. Tiago Carneiro 19 Agosto 2013
Linguagem Haskell Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação Tiago Carneiro 19 Agosto 2013 1 1 Linguagem Haskell Linguagem de programação funcional É um paradigma de programação
Linguagem Funcional Haskell
Bacharelado em Ciência da Computação PARADIGMAS DE PROGRAMAÇÃO Linguagem Funcional Haskell Prof. Claudinei Dias email: [email protected] Principais Linguagens Funcionais LISP (John McCarthy,
USANDO UM MÉTODO INDUTIVO PARA RESOLVER PROBLEMAS. Bruno Maffeo Departamento de Informática PUC-Rio
USANDO UM MÉTODO INDUTIVO PARA RESOLVER PROBLEMAS Bruno Maffeo Departamento de Informática PUC-Rio MÉTODO INDUTIVO O método indutivo para resolver problemas aqui empregado inspira-se na formulação mais
Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010
Programação em Lógica UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010 Roteiro Introdução Conceitos Básicos Linguagens Lógicas Semântica de Modelos Semântica de Prova Programação
Linguagem de Programação e Compiladores
Linguagem de Programação e Compiladores Fernando Antônio Asevedo Nóbrega Instituto de Ciências Matemáticas e de Computação USP SCC-206 Introdução à Compilação 24 de abril de 2012 1 / 20 Sumário 1 Introdução
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
Fundamentos de Programação
Fundamentos de Programação Soluções do primeiro teste 13 de Novembro de 2004 9:00-10:30 Nota Número: 20 Nome: Turma: Escreva o seu número em todas as folhas do teste. O espaço das respostas deve ser limitado
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
Aula prática 5. Funções Recursivas
Programação Funcional UFOP DECOM 2014.1 Aula prática 5 Funções Recursivas Resumo Definições recursivas são comuns na programação funcional. Nesta aula vamos aprender a definir funções recursivas. Sumário
Fundamentos de Programação
Fundamentos de Programação Primeiro Teste 16 de Abril de 2011 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 7 páginas com 9 perguntas. A cotação de cada pergunta está assinalada
Python e sua sintaxe LNCC UFRJ
Python e sua sintaxe LNCC UFRJ Linguagens naturais e formais Linguagens naturais Linguagem formal Um conjunto finito e não-vazio cujos elementos são símbolos Qualquer cadeia finita de símbolos justapostos
Linguagens de Programação e Programação Funcional
Linguagens de Programação e Programação Funcional GSI004 Aula 01* Faculdade de Computação UFU *baseada nos slides do Professor Paulo Henrique Ribeiro Gabriel 30 de setembro de 2014 GSI004 Aula 01 30 de
Linguagens de Programação Aula 13
Linguagens de Programação Aula 13 Celso Olivete Júnior [email protected] Na aula passada Suporte para a programação orientada a objetos 2 Na aula de hoje Programação Funcional Linguagem Haskell 3 Roteiro
Exercícios da cadeira de Inteligência Artificial. Helena Sofia Pinto João Cachopo Daniel Gonçalves Carlos Lopes António Inês Lynce Pedro Matos
Exercícios da cadeira de Inteligência Artificial Helena Sofia Pinto João Cachopo Daniel Gonçalves Carlos Lopes António Inês Lynce Pedro Matos Ano Lectivo 2001/2002 1 Prefácio Este documento reúne os exercícios
SEMÂNTICA 02/09/2013. Conceitos de LPs - Semântica
UNIVERSIDADE ESTADUAL DE SANTA CRUZ CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO DOCENTE: ROGÉRIO VARGAS DISCENTE: MARIANNA NOVAES Semântica SEMÂNTICA Semântica é a área
Compilação da linguagem Panda
Construção de Compiladores I [BCC328] Atividades Práticas Compilação da linguagem Panda Departamento de Computação Universidade Federal de Ouro Preto Prof. José Romildo Malaquias 22 de abril de 2015 Resumo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferentes computadores podem ter diferentes arquiteturas e os diversos tipos de linguagem de programação.
INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:
INE5416 Paradigmas de Programação Ricardo Azambuja Silveira INE CTC UFSC E Mail: [email protected] URL: www.inf.ufsc.br/~silveira Conceitos Léxica estudo dos símbolos que compõem uma linguagem Sintaxe
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
Lambda Cálculo e Programação Funcional. Programação Funcional Bacharelado em Sistemas de Informação Maio
Lambda Cálculo e Programação Funcional Programação Funcional Bacharelado em Sistemas de Informação Maio - 2009 Alonzo Church (1903 1995) Professor em Princeton, EUA (1929 1967) e UCLA (1967 1990) Inventou
Listas em Haskell. Listas. Linguagem Haskell. Maria Adriana Vidigal de Lima. Faculdade de Computação - UFU. Setembro
em Haskell Linguagem Haskell Faculdade de Computação - UFU Setembro - 2009 em Haskell 1 em Haskell Noções sobre Construção de por Compreensão Funções Sobre Processamento de Fundamentos em Haskell Noções
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
Aula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias
SCC 124 - Introdução à Programação para Engenharias Expressões Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes Aula de
Paradigmas. 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,
Conceitos de Linguagens de Programação
Conceitos de Linguagens de Programação Aula 09 Programação Funcional (Haskell) Edirlei Soares de Lima Programação Funcional A programação funcional modela um problema computacional
Lista de Exercícios 4
Introdução à Ciência da Computação - 1191 Lista de Exercícios Funções Frutíferas Observações: As listas de exercícios serão corrigidas por um corretor automático, portanto é necessário que as entradas
Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.
Computação L2 Linguagem C++ [email protected] Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);
LINGUAGEM ALGORÍTMICA
LINGUAGEM ALGORÍTMICA Adriano Mauro Cansian André Proto UNESP - São José do Rio Preto Linguagem Computacional Introdução! Para uma melhor padronização de nosso estudos, vamos agora definir uma linguagem
Programação Funcional Cálculo Lambda - Aula Nº 3
Programação Funcional Cálculo Lambda - Aula Nº 3 2.3. Ordem de Redução Se uma expressão não contém mais redexes, então a avaliação está completa. Um expressão nesta forma é dita estar na forma normal.
Python Funções. Introdução à Programação SI1
Python Funções Introdução à Programação SI1 Conteúdo Funções Conceitos Objetivos Modularização Exemplos Exercícios 2 Funções O que são? Qual a função de uma função? 3 Imagine o código 4 Imagine o código
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 03 Programas (Monolítico e Iterativo) Prof.ª Danielle Casillo Programas, Máquinas e Computações Diferentes
Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018
22 de Fevereiro de 2018 Motivação O que é um computador? O que é um algoritmo? Para que serve um algoritmo? Quando um algoritmo é bom? A análise de um algoritmo depende do computador? Motivação Em teoria
Fundamentos da Programação
Fundamentos da Programação Solução da Repescagem do Primeiro Teste 31 de Janeiro de 2013 09:00 10:30 1. De um modo sucinto, (a) (0.5) Diga o que é um processo computacional. Um processo computacional é
Cálculo proposicional
O estudo da lógica é a análise de métodos de raciocínio. No estudo desses métodos, a lógica esta interessada principalmente na forma e não no conteúdo dos argumentos. Lógica: conhecimento das formas gerais
SCC Capítulo 2 Lógica de Predicados
SCC-630 - Capítulo 2 Lógica de Predicados João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis
2. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.
Capítulo 5 Abstracção de dados 5. Exercícios de revisão. Diga o que é um tipo abstracto de informação.. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.
A linguagem da Lógica de Predicados. (Capítulo 8) LÓGICA APLICADA A COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto
A linguagem da Lógica de Predicados (Capítulo 8) LÓGICA APLICADA A COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Contextualização 2. Definições 3. Exemplos 4. Lista 3 O que não é
Racket Básico: Tipos e QuickCheck
Racket Básico: Tipos e QuickCheck Profs. Diogo S. Mar ns e Emilio Francesquini {santana.mar ns,e.francesquini}@ufabc.edu.br MCTA016 - Paradigmas de Programação (Prá ca) 12 de junho de 2018 Crédito de parte
PLANO DE UNIDADE DIDÁTICA- PUD
Professor: Marcus Vinícius Midena Ramos Coordenação: Ricardo Argenton Ramos Data: 03/08/2010 Página: 1 de 5 EMENTA: Conceitos básicos de linguagens. Histórico, classificação e principais aplicações de
08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAÍBA CAMPUS CAMPINA GRANDE 1 2 Elementos Básicos Tipos de dados Dados e seus tipos: Computadores lidam com diversos tipos de dados: numéricos,
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.
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
Linguagens de Programação
Linguagens de Programação Paradigma Imperativo Matheus Hafner Tiago Xavier CET 087 - Conceitos de Linguagens de Programação (CLP) 17 de novembro de 2011 Aula Prática Instalação Fortran sudo apt-get install
Lógica de Hoare. Abordagem que usaremos: aplicar o método de Hoare sobre uma linguagem de programação imperativa simplificada.
Lógica de Hoare Método axiomático para provar que determinados programas são corretos. Introduzido em 1969 por Charles Antony Richard Hoare. Também utilizado para especificar a semântica de linguagens
Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Aula 03 Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação Linguagens de Programação A primeira linguagem de programação foi criada por Ada Lovelace. Amiga
Tradução Dirigida Pela Sintaxe
Tradução Dirigida Pela Sintaxe Julho 2006 Sugestão de leitura: Livro do Aho, Sethi, Ullman (dragão) Seções 5.1 5.5 Tradução dirigida pela sintaxe É uma técnica que permite realizar tradução (geração de
AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa
AULA 2: INTRODUÇÃO A PYTHON Luís Feliphe Silva Costa Sumário Variáveis simples Entrada e Saída de dados Operadores Estruturas Condicionais Estruturas de repetição Funções Tratamento de erros Variáveis
Prof. A. G. Silva. 24 de agosto de Prof. A. G. Silva Programação em Lógica 24 de agosto de / 1
Programação em Lógica Prof. A. G. Silva 24 de agosto de 2017 Prof. A. G. Silva Programação em Lógica 24 de agosto de 2017 1 / 1 Termos Referem-se a todas as construções sintáticas da linguagem Um termo
Capítulo 8. Estruturas de Controle no Nível de Sentença
Capítulo 8 Estruturas de Controle no Nível de Sentença Níveis de fluxo de controle Computações são realizadas por meio da avaliação de expressões e da atribuição dos valores a variáveis Para tornar a computação
