Universidade Estadual De Santa Cruz (UESC)

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

Download "Universidade Estadual De Santa Cruz (UESC)"

Transcrição

1 Universidade Estadual De Santa Cruz (UESC) CET087 - Conceitos de Linguagem de Programação Prof. Dr. Marcelo Ossamu Honda Departamento de Ciências Exatas e Tecnológicas (DCET) mohonda.uesc(at)google(.)com

2 Programação Funcional Prof. Dr. Marcelo Ossamu Honda 2

3 Programação Funcional Dois modelos computacionais abstratos: Máquina de Turing: Proposta por Alan Turing; Modelo de fundamento para arquitetura de computadores proposta por John von Neumann; Paradigma de Programação Imperativa; (Lambda) λ-cálculo: Proposta por Alonzo Church; Conceito de avaliação de funções matemáticas; Programação funcional; Prof. Dr. Marcelo Ossamu Honda 3

4 Programação Funcional Programa Puramente Funcional: Expressão que caracteriza uma função matemática, juntamente com um elemento do domínio daquela função; A Execução de um Programa Funcional: É um processo computacional que permite determinar qual o elemento da imagem da função que corresponde ao elemento do domínio fornecido como parte do programa; Processo ocorre por meio de transformações sucessivas do programa, que devem convergir para o resultado desejado; Reduções; Prof. Dr. Marcelo Ossamu Honda 4

5 Programação Funcional Reduções: Redução de uma expressão funcional não significa tornar essa expressão mais curta ; Exemplo: Sem notação específica para programas funcionais; Dada a função f(x) = X X Se X = 4; A expressão inicial 4 4 é reduzida para o valor 256; 4 4 tendo dois dígitos; 256 três dígitos; Prof. Dr. Marcelo Ossamu Honda 5

6 Programação Funcional Dialetos das Linguagens de Programação Funcional: Incorpora recursos extras: Facilitar e agilizar a construção de programas; Pode, dificultar a análise dos programas; Não fazem parte da Programação Puramente Funcional: Recursos de Entrada/Saída de dados; Compartilhamento de variáveis; Prof. Dr. Marcelo Ossamu Honda 6

7 Programação Funcional (Lambda) λ-cálculo: Um programa funcional é composto por uma única expressão; Essa expressão deve descrever detalhadamente uma função e um elemento do domínio daquela função; A redução de um programa consiste em substituir uma parte da expressão original, obedecendo a certas regras de reescrita; Prof. Dr. Marcelo Ossamu Honda 7

8 Programação Funcional (Lambda) λ-cálculo: Propriedades essenciais de qualquer conjunto de regras de reescrita: Correção: Propriedade semântica; Deve preservar o significado das expressões; Confluência: Propriedade sintática; Se mais de uma regra for aplicável a uma expressão, a ordem de aplicação deve ser indiferente; Terminação: Propriedade sintática; O conjunto de regras não deve permitir que uma sequencia de reduções produza uma expressão idêntica a original; Prof. Dr. Marcelo Ossamu Honda 8

9 Programação Funcional (Lambda) λ-cálculo: Operações básicas: Substituição: Troca textual de todas as ocorrências de uma variável; Aplicação: Avaliação de uma função para um dado elemento de seu domínio; Abstração: Recurso básico para codificar funções; Indica quais símbolos em uma expressão são variáveis; No sentido matemático; Prof. Dr. Marcelo Ossamu Honda 9

10 Programação Funcional (Lambda) λ-cálculo: Operações básicas: Exemplo: seja F a expressão X + 5, sendo X uma variável; Essa expressão é indeterminada, no sentido que a variável X está livre para assumir qualquer valor arbitrário; Substituição: [ X 4 ] resulta na expressão 4 + 5; Abstração: A abstração λx.f, ou seja, λx.(x + 5), denota a função matemática que, para cada valor de X, associa o valor X + 5; Nessa expressão, a variável X não está mais livre para assumir um valor arbitrário; Aplicação: Um sistema de reduções deve permitir que se produza a sequencia de expressões λx.(x + 5) 4 => => 9; Prof. Dr. Marcelo Ossamu Honda 10

11 Programação Funcional Estratégias para Reduções: As propriedades de confluência e terminação garantem que qualquer sequencia de reduções deve levar ao mesmo resultado final; Diferentes estratégias para organizar essas sequencias, entretanto, podem levara sequencias menores para λ- termos específicos; Duas estratégias fundamentais: De dentro para fora (a priori); Do inglês Eager (gananciosa); De fora para dentro (sob demanda); Do inglês Lazy (sossegada); Prof. Dr. Marcelo Ossamu Honda 11

12 Programação Funcional De dentro para fora (a priori); Prof. Dr. Marcelo Ossamu Honda 12

13 Programação Funcional De fora para dentro (sob demanda); Prof. Dr. Marcelo Ossamu Honda 13

14 Programação Funcional Características: De dentro para fora (a priori): Implementação mais simples; Pode ocorrer de tentativas infinitas de reduções; Interpretadores e compiladores mais compactos; De fora para dentro (sob demanda): Resultados intermediários; Função, durante a redução, computacionalmente difícil ou demorada; Prof. Dr. Marcelo Ossamu Honda 14

15 Programação Funcional Linguagens de Programação Funcional: LISP: Necessidade de processamento de listas para aplicações de inteligencia artificial; Uso generalizado na área; Dados e programas com a mesma forma; Fazer um programa que construa outro programa; Scheme: Dialeto simples da LISP; Variáveis de escopo estático; Alguns recursos das Linguagens Imperativas; Common LISP: Incluir dialetos da linguagem LISP (grande); Variáveis de escopo estático e dinâmico; Recursos das Linguagens Imperativas; Prof. Dr. Marcelo Ossamu Honda 15

16 Programação Funcional Linguagens de Programação Funcional: ML: Variáveis de escopo estático; Fortemente tipificada; Sistema de inferência de tipos; Manipulação de exceções; Tipos de dados abstratos; Haskell: Puramente funcional; Método sob demanda; Listas infinitas; Prof. Dr. Marcelo Ossamu Honda 16

17 Programação Funcional Exemplo de lista; Prof. Dr. Marcelo Ossamu Honda 17

18 Programação Funcional Prof. Dr. Marcelo Ossamu Honda 18

19 CLISP Download: Prof. Dr. Marcelo Ossamu Honda 19

20 CLISP Instalação: tar -xvjf clisp-2.48.tar.bz2 cd clisp /configure --prefix=/opt/clisp cd src make su make install cd /opt ln -s clisp-2.48 clisp exit export path=$path:/opt/clisp/bin Prof. Dr. Marcelo Ossamu Honda 20

21 CLISP Prof. Dr. Marcelo Ossamu Honda 21

22 CLISP Saindo; Prof. Dr. Marcelo Ossamu Honda 22

23 CLISP Interpretador de comandos: Prof. Dr. Marcelo Ossamu Honda 23

24 CLISP Números: Valor inteiro; Valor inteiro negativo; Fração; Científico; Número complexo; a+bi Prof. Dr. Marcelo Ossamu Honda 24

25 CLISP Caracteres; #\ Prof. Dr. Marcelo Ossamu Honda 25

26 CLISP String; Prof. Dr. Marcelo Ossamu Honda 26

27 CLISP Constantes especiais; T: Verdadeiro; NIL: Falso; Prof. Dr. Marcelo Ossamu Honda 27

28 CLISP Funções: Prof. Dr. Marcelo Ossamu Honda 28

29 CLISP Funções: Prof. Dr. Marcelo Ossamu Honda 29

30 CLISP Funções: Prof. Dr. Marcelo Ossamu Honda 30

31 CLISP Funções: Prof. Dr. Marcelo Ossamu Honda 31

32 CLISP Variáveis: Prof. Dr. Marcelo Ossamu Honda 32

33 CLISP Condições: Prof. Dr. Marcelo Ossamu Honda 33

34 CLISP Condições: Prof. Dr. Marcelo Ossamu Honda 34

35 CLISP Declarações: (let ( declaration1 declaration2... ) expr1 expr2... ) Prof. Dr. Marcelo Ossamu Honda 35

36 CLISP Declarações: Prof. Dr. Marcelo Ossamu Honda 36

37 CLISP Funções: Sem parâmetros; Prof. Dr. Marcelo Ossamu Honda 37

38 CLISP Funções: Com parâmetro(s); Prof. Dr. Marcelo Ossamu Honda 38

39 CLISP Funções: Com parâmetro(s); Prof. Dr. Marcelo Ossamu Honda 39

40 CLISP Funções: Com parâmetro(s); Prof. Dr. Marcelo Ossamu Honda

41 CLISP Funções: Passando variáveis locais; Prof. Dr. Marcelo Ossamu Honda 41

42 CLISP Recursividade; Prof. Dr. Marcelo Ossamu Honda 42

43 CLIST Listas: Prof. Dr. Marcelo Ossamu Honda 43

44 CLIST Listas: NIL, também significa lista vazia; Prof. Dr. Marcelo Ossamu Honda 44

45 CLIST Listas: Prof. Dr. Marcelo Ossamu Honda 45

46 CLIST Compilando funções: Prof. Dr. Marcelo Ossamu Honda 46

47 CLIST Carregando de arquivos: Prof. Dr. Marcelo Ossamu Honda 47

48 CLIST Carregando de arquivos compilados: Prof. Dr. Marcelo Ossamu Honda 48

49 Exercícios 1) Construir a lista abaixo: (Bacharel em (Ciência da (Computação)) da ((Universidade Estadual) de Santa Cruz)) 2) Recuperar os elementos da lista, sem o letra _: _da _Computação _Universidade _Santa _Ciência da Computação Prof. Dr. Marcelo Ossamu Honda 49

50 Bibliografia Lisp Quickstart ( acessado em ; Robert W Sebesta; Conceitos de Linguagens de Programação. ISBN: , 2000; Ana Fernanda Gomes Ascencio e Edilene Aparecida Veneruchi de Campos; Fundamentos da programação de computadores - Algoritmos, P ascal, C/C++ e Java. Pearson-Prentice Hall, ISBN- 10: e ISBN-13: , 2007; Flávio Miguel Varejão; Linguagens de Programação - Conceitos e Técnicas. Campus, ISBN: , Ana Cristina Vieira De Melo e Flávio Soares Correa Da Silva; Princípios de Linguagens de Programação. Edgard Blucher, ISBN: , Prof. Dr. Marcelo Ossamu Honda 50

Universidade Estadual de Santa Cruz

Universidade Estadual de Santa Cruz Universidade Estadual de Santa Cruz Conceitos de Linguagens de Programação Linguagens Imperativas e Funcionais Prof. Dr. Rogério Vargas Ilhéus-Ba, 16 de Maio de 2013. Linguagens Imperativas Linguagens

Leia mais

Centro Universitário do Triângulo

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

Leia mais

Linguagens de Programação

Linguagens de Programação Visão Geral Faculdade de Computação - UFU Agosto - 2009 1 Princípios 2 O que é uma linguagem de programação? Linguagens naturais facilitam a expressão e o intercâmbio de idéias entre as pessoas. Assim

Leia mais

Linguagens de Programação Funcional

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

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 03 Processo de Compilação Edirlei Soares de Lima Métodos de Implementação Arquitetura de Von Neumann: A linguagem de máquina de um computador

Leia mais

Algoritmos I Aula 1 Introdução aos Algoritmos

Algoritmos I Aula 1 Introdução aos Algoritmos Algoritmos I Aula 1 Introdução aos Algoritmos Professor: Max Pereira max.pereira@unisul.br Ciência da Computação Ementa Algoritmos e Programas. Constantes, variáveis, tipos de dados e expressões. Construções

Leia mais

Carga Horária: 60 h Créditos: 3 Pré-requisito: Não se aplica Professor(a): A definir Matricula: A definir Titulação: A definir

Carga Horária: 60 h Créditos: 3 Pré-requisito: Não se aplica Professor(a): A definir Matricula: A definir Titulação: A definir PLANO DE ENSINO Centro: Centro de Ciências Tecnológicas Curso: Engenharia Mecânica Departamento: Departamento de Matemática Informática Disciplina: Algoritmos e Programação Código: ASLNCUE085 Carga Horária:

Leia mais

MINISTÉRIO DA EDUCAÇÃO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS DIRETORIA DE GRADUAÇÃO

MINISTÉRIO DA EDUCAÇÃO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS DIRETORIA DE GRADUAÇÃO DISCIPLINA: Linguagens de Programação CÓDIGO: 2ECOM.031 Data de Elaboração: Janeiro/2012 Carga Horária: Total: 30 h/a; Semanal: 02 aulas; Créditos: 02 Modalidade: Prática Classificação do Conteúdo pelas

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Apresentação do Plano de Ensino Aula 1 Prof. Daniel Cavalcanti Jeronymo Universidade Tecnológica Federal do Paraná (UTFPR) Engenharia de Computação 1º Período 1/16 Professor

Leia mais

Linguagens de Programação Programação Funcional (Haskell)

Linguagens de Programação Programação Funcional (Haskell) Linguagens de Programação Programação Funcional (Haskell) Andrei Rimsa Álvares Sumário Introdução Programação funcional Linguagens funcionais Haskell Casamento de padrões Funções de ordem superior Avaliação

Leia mais

AULA 02. Lógica de Programação. Centro Educação Profissional Ezequiel Ferreira Lima CEPEF. Curso Técnico em Eletrônica.

AULA 02. Lógica de Programação. Centro Educação Profissional Ezequiel Ferreira Lima CEPEF. Curso Técnico em Eletrônica. Centro Educação Profissional Ezequiel Ferreira Lima CEPEF Curso Técnico em Eletrônica. Prof. Eng. Samuel M. B. Cavalcante Lógica de Programação AULA 02 O que já estudamos? Lógica de programação é a técnica

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Fabrício Olivetti de França 14 de Junho de 2018 1 λ-cálculo 2 Computabilidade Computabilidade é uma área de estudo central da Ciência da Computação. Ela estuda a possibilidade

Leia mais

Linguagem de Programação e Compiladores

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

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Conceito de Algoritmo Pseudocódigo Tipos de

Leia mais

Programação Funcional - Introdução a Cálculo Lambda

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

Leia mais

Semântica de Linguagens de Programação

Semântica de Linguagens de Programação Semântica de Linguagens de Programação Fabio Mascarenhas - 2011.2 http://www.dcc.ufrj.br/~fabiom/sem Introdução Quais das expressões abaixo têm o mesmo significado? a[42] (vector-ref a 42) a[42] a[42]

Leia mais

Linguagens de Programação e Programação Funcional

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

Leia mais

Histórico de Linguagens de Programação

Histórico de Linguagens de Programação Bacharelado em Ciência da Computação PARADIGMAS DE PROGRAMAÇÃO Histórico de Linguagens de Programação Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Objetivos Geral: Estudar as características

Leia mais

PLANO DE UNIDADE DIDÁTICA- PUD

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

Leia mais

Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO

Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO QUESTÃO 1 : Enviada por: Francisco Carlos Moraes Junior Duvidas: Thaise Domínios de programação são áreas onde os computadores são usados.

Leia mais

FUNDAÇÃO UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO

FUNDAÇÃO UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO Professor: Marcelo Santos Linder Disciplina: Algoritmos e Programação Código Disciplina: Carga Horária: 60h Período: Pág. 1 de 5 PROFESSOR TITULAÇÃO: Engenheiro de Computação EMENTA: Conceito de algoritmo.

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Apresentação do Plano de Ensino Aula 1 Prof. Daniel Cavalcanti Jeronymo Universidade Tecnológica Federal do Paraná (UTFPR) Engenharia de Computação 1º Período 2015.1 1/16

Leia mais

Métodos de implementação de linguagens. Kellen Pinagé

Métodos de implementação de linguagens. Kellen Pinagé Métodos de implementação de linguagens Kellen Pinagé Sumário Métodos de implementação de linguagens Compilação Interpretação pura Híbrido Métodos de implementação de linguagens Principais componentes de

Leia mais

Aspectos preliminares

Aspectos preliminares Aspectos preliminares Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl

Leia mais

Programação Funcional

Programação Funcional Programação Funcional Lucília Camarão de Figueiredo Universidade Federal de Ouro Preto lucilia@dcc.ufmg.br Aula 01: Introdução 1 PARADIGMAS DE PROGRAMAÇÃO Imperativo (FORTRAN, PL1, Ada, C, Pascal) Sequência

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Sintaxe e semântica Aula 4 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Sintaxe A sintaxe de uma linguagem de programação é a forma

Leia mais

Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação Aula 03 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação Linguagens de Programação A primeira linguagem de programação foi criada por Ada Lovelace. Amiga

Leia mais

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas Arquitetura de Computadores, Arquitetura de Computadores Organização de Computadores, Conjunto de Instruções, Sistemas Operacionais, Sistemas Operacionais, Sistemas Mecanismos de Interrupção e de Exceção,

Leia mais

Fundamentos de programação

Fundamentos de programação Fundamentos de programação Aula Introdutória Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Apresentação Disciplina: Fundamentos de Programação Horário: 2 E0E1, 4E0E1, 6CD Professor:

Leia mais

Programação Orientada a Objetos. Programação Funcional

Programação Orientada a Objetos. Programação Funcional Programação Orientada a Objetos Programação Funcional Cristiano Lehrer, M.Sc. Introdução (1/3) É uma categoria de linguagens não-imperativas. Imperativas: Uso eficiente das arquiteturas de computadores

Leia mais

Linguagens de Programação Aula 3

Linguagens de Programação Aula 3 Aula 3 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada... Classificação das LPs (nível, geração e paradigma) Paradigmas Imperativo, OO, funcional, lógico e concorrente 2/33 Na aula de hoje...

Leia mais

Autômatos e Linguagens

Autômatos e Linguagens Autômatos e Linguagens Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Agosto, 2016 1 / 41 Sumário 1 Compiladores 2 Linguagens de programação 3 Ciência dos compiladores

Leia mais

Paradigmas de Linguagem de Programação. Aspectos Básicos

Paradigmas de Linguagem de Programação. Aspectos Básicos Paradigmas de Linguagem de Programação Aspectos Básicos Introdução Nesta segunda etapa de nossos estudos, veremos: aspectos básicos de programa e linguagem de programação; revisão de conceitos de compilador

Leia mais

FUNDAÇÃO UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO

FUNDAÇÃO UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO Professor: Fábio Nelson de Sousa Pereira Disciplina: e Carga Horária: 30 hs Pág. 1 de 5 EMENTA: Conceito de algoritmo. Lógica de programação e programação estruturada. Linguagem de definição de algoritmos.

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo

Leia mais

Compiladores. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 38

Compiladores. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 38 Compiladores Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Fevereiro, 2017 1 / 38 Sumário 1 Compiladores 2 Linguagens de programação 3 Ciência dos compiladores

Leia mais

Programação de Computadores:

Programação de Computadores: Instituto de C Programação de Computadores: Introdução a Linguagens de Programação Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Seis Camadas Problema

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

Paradigmas de Linguagem de Programação

Paradigmas de Linguagem de Programação Paradigmas de Linguagem de Programação Aula 1 - Introdução Prof. Filipo Mór 2016/II - www.filipomor.com Apresentação do Professor B.Sc. SI FDBPOA 2012 M.Sc. em CC PUCRS/DALHOUSIE 2015 Atuação na área de

Leia mais

FUNDAÇÃO UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO

FUNDAÇÃO UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO Professor: Marcelo Santos Linder Disciplina: Algoritmo e Programação Carga Horária: 30 hs Pág. 1 de 5 EMENTA: Conceito de algoritmo. Lógica de programação e programação estruturada. Linguagem de definição

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Paradigmas para linguagens de Programação

Leia mais

Conceitos de Linguagem de Programação - 2

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

Leia mais

Nomes, vinculações e escopos

Nomes, vinculações e escopos Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação

15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação Conjunto de regras que definem a forma da linguagem; Como as sentenças podem ser formadas como sequências

Leia mais

Introdução à Programação Funcional

Introdução à Programação Funcional 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

Leia mais

Estruturas de Dados. Prof.: Carlos Alberto Página da Disciplina:

Estruturas de Dados. Prof.: Carlos Alberto Página da Disciplina: Estruturas de Dados Prof.: Carlos Alberto Página da Disciplina: http://alged.webnode.com/ E-mail: carlos36_batista@yahoo.com.br Estruturas de dados Programa da disciplina Estruturas de dados - referências

Leia mais

ao paradigma imperativo

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

Leia mais

Revisão: linguagens de programação

Revisão: linguagens de programação Revisão: linguagens de programação Definição, histórico, paradigmas e semântica Prof. Thiago A. S. Pardo taspardo@icmc.usp.br Definição Uma linguagem de programação é uma linguagem destinada a ser usada

Leia mais

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO ROTEIRO 1. INTRODUÇÃO 2. LINGUAGENS IMPERATIVAS 1. CONCEITO 2. PARADIGMA IMPERATIVO 3. ORIGENS 4. MODELO COMPUTACIONAL 1. ARQUITETURA DE VON NEUMANN 2. CARACTERISTICAS

Leia mais

DESENVOLVIMENTO DO COMPILADOR PARA A LINGUAGEM SIMPLE

DESENVOLVIMENTO DO COMPILADOR PARA A LINGUAGEM SIMPLE DESENVOLVIMENTO DO COMPILADOR PARA A LINGUAGEM SIMPLE Jeferson MENEGAZZO 1, Fernando SCHULZ 2, Munyque MITTELMANN 3, Fábio ALEXANDRINI 4. 1 Aluno 5ª fase do Curso de Ciência da Computação do Instituto

Leia mais

Teoria da Computação (BBC244)

Teoria da Computação (BBC244) Teoria da Computação (BBC244) Professor: Anderson Almeida Ferreira anderson.ferreira@gmail.com http://www.decom.ufop.br/anderson Sala COM 10 DECOM-UFOP Ementa Gramáticas. Linguagens. Operações com Linguagens.

Leia mais

Estrutura de Dados e Lógica de Programação. Cátia Alves Marcelo Nunes 102 h/a 17/08/2015 a 12/12/2015

Estrutura de Dados e Lógica de Programação. Cátia Alves Marcelo Nunes 102 h/a 17/08/2015 a 12/12/2015 Curso / Módulo Técnico em Informática Módulo I Componente Curricular Estrutura de Dados e Lógica de Programação Professora Formadora Tutores Carga Horária Período Lucélia Oliveira Cátia Alves Marcelo Nunes

Leia mais

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação Universidade Federal de Santa Maria Disciplina de Teoria da Computação Quais são as capacidades e limitações fundamentais dos computadores? Funções Computáveis Algoritmo: descrição finitade uma computação

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Prof a Jerusa Marchi Departamento de Informática e Estatística Universidade Federal de Santa Catarina e-mail: jerusa@inf.ufsc.br Linguagens de Programação p. 1/5 Linguagens de

Leia mais

Linguagens Formais e Autômatos. Tiago Alves de Oliveira

Linguagens Formais e Autômatos. Tiago Alves de Oliveira Linguagens Formais e Autômatos Tiago Alves de Oliveira Ementa Linguagens Regulares; Máquinas de Turing; O Problema da Parada da Máquina de Turing; Autômatos Finitos; Linguagens Livres de Contexto; Autômatos

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES. Prof. Angelo Augusto Frozza, M.Sc.

PROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES. Prof. Angelo Augusto Frozza, M.Sc. PROGRAMAÇÃO ORIENTADA A OBJETOS I -CONCEITOS PRELIMINARES Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO O que é programação Linguagens de Programação Paradigmas de Programação História

Leia mais

Nomes, vinculações e escopos

Nomes, vinculações e escopos Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

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 UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 01 Apresentação da Disciplina Prof.ª Danielle Casillo PLANO DE ENSINO Nome: Teoria da Computação Créditos:

Leia mais

Paradigmas de Linguagens

Paradigmas de Linguagens Paradigmas de Linguagens Paradigma Imperativo Professora Sheila Cáceres Paradigma Imperativo Um pouco de historia Paradigma fundamentado no conceito de máquina de Turing. A máquina de Turing é uma abstração

Leia mais

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação Algoritmos e Introdução à Programação Lógica e Linguagem de Programação Prof. José Honorato Ferreira Nunes honoratonunes@softwarelivre.org http://softwarelivre.org/zenorato/honoratonunes Linguagem C Prof.

Leia mais

I.2 Introdução a Teoria da Computação

I.2 Introdução a Teoria da Computação I.2 Introdução a Teoria da Computação O que é? Fundamento da Ciência da Computação Tratamento Matemático da Ciência da Computação Estudo Matemático da Transformação da Informação Qual sua importância?

Leia mais

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br

Leia mais

Introdução à Ciência da Computação. Prof. Dr. Rogério Vargas

Introdução à Ciência da Computação. Prof. Dr. Rogério Vargas Introdução à Ciência da Computação Prof. Dr. Rogério Vargas http://rogerio.in O que é dado? - Defino dado como uma sequência de símbolos quantificados ou quantificáveis. - Letras são símbolos quantificados.

Leia mais

Capítulo 1 Introdução

Capítulo 1 Introdução livro haskell novatec 2006/10/9 14:49 page 23 #23 Capítulo 1 Introdução Este capítulo apresenta um contexto da linguagem Haskell. Trata-se de uma linguagem de programação para propósitos gerais, destinada

Leia mais

INTRODUÇÃO. Prof. Msc. Luis Filipe Alves Pereira 2015

INTRODUÇÃO. Prof. Msc. Luis Filipe Alves Pereira 2015 INTRODUÇÃO Prof. Msc. Luis Filipe Alves Pereira 2015 INTRODUÇÃO 02/21 QUAIS AS OPERAÇÕES BÁSICAS REALIZADAS EM UM COMPUTADOR DIGITAL? INTRODUÇÃO 03/21 QUAIS AS OPERAÇÕES BÁSICAS REALIZADAS EM UM COMPUTADOR

Leia mais

Aula 06 - Máquina Multinível e Von Neumann

Aula 06 - Máquina Multinível e Von Neumann Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Currais Novos Instalação e Organização de Computadores Aula 06 - Máquina Multinível e Von Neumann Prof. Diego Pereira

Leia mais

Aula prático/expositiva. Resolução de exercícios propostos e participação em sala de aula. 2h 08/05

Aula prático/expositiva. Resolução de exercícios propostos e participação em sala de aula. 2h 08/05 Av. Antonio Carlos Magalhães, 512 Santo Antônio Juazeiro, BA, CEP 48903210 Tel/Fax: (74) 36141938 Caixa Postal 252, PetrolinaPE, www.univasf.edu.br PLANO DE UNIDADE DIDÁTICA PUD Professor: Marcelo Santos

Leia mais

Linguagens de Programação

Linguagens de Programação Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação Linguagens de Programação Professor Responsável: Luiz Affonso Henderson Guedes de Oliveira Prof.

Leia mais

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP Ementa Gramáticas. Linguagens Regulares, Livres-de-Contexto e Sensíveis-ao- Contexto. Tipos de Reconhecedores. Operações

Leia mais

Cálculo Lambda Sem Tipos

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

Leia mais

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação Ederson Luiz da Silva Ciência da Computação Algoritmos e Programação Linguagem de programação Linguagem de Programação Linguagem de máquina http://www.assemblyprogressivo.net/p/curso.html Linguagem de

Leia mais

Compiladores. Introdução

Compiladores. Introdução Compiladores Introdução Apresentação Turma Noite Continuada I 20/03 Continuada II 22/05 Atividades Regimental 05/06 Total 1 Ponto 1 Ponto 1 Ponto 7 Pontos 10 Pontos Aulas expositivas teórico-práticas Exercícios

Leia mais

Funções Recursivas. Prof.: Edson Holanda Teoria da computação - Diverio e Menezes

Funções Recursivas. Prof.: Edson Holanda Teoria da computação - Diverio e Menezes Funções Recursivas Prof.: Edson Holanda edsonholanda@gmail.com Teoria da computação - Diverio e Menezes Tipos de Formalismos Operacional Define-se uma máquina abstrata, baseada em estados, em instruções

Leia mais

Linguagens de programação funcional

Linguagens de programação funcional Linguagens de programação funcional Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl

Leia mais

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação Algoritmos e Introdução à Programação Lógica e Linguagem de Programação Prof. José Honorato Ferreira Nunes honoratonunes@softwarelivre.org http://softwarelivre.org/zenorato Funções e Procedimentos (sub-rotinas)

Leia mais

Compiladores. Análise Semântica

Compiladores. Análise Semântica Compiladores Análise Semântica Análise semântica A semântica define o significado dos programas sintaticamente corretos; Por exemplo, em C, a instrução if(a>b) max = a; else max = b; Diz que a expressão

Leia mais

Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina)

Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina) Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina) George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Informações Básicas Professor George Darmiton da Cunha Cavalcanti Monitores

Leia mais

Conceito de Linguagens de Programação - 1

Conceito de Linguagens de Programação - 1 Conceito de Linguagens de Programação - 1 Arthur Jovita, Thalles Silva November 1, 2011 1 Natureza das linguagens de Programação Linguagens Estáticas e Dinâmicas 2 Tipificação 3 4 Linguagens Estáticas

Leia mais

Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores

Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores Universidade Federal de Goiás Bacharelado em Ciências da Computacão Compiladores 2013-2 Compilador para a Linguagem Cafezinho Especificação dos trabalhos: T2 (Geração da Representação Intermediária e Análise

Leia mais

COMPILAÇÃO. Ricardo José Cabeça de Souza

COMPILAÇÃO. Ricardo José Cabeça de Souza COMPILAÇÃO Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Programas Código-fonte escrito em linguagem de programação de alto nível, ou seja, com um nível de abstração muito grande, mais próximo

Leia mais

Lógica de Programação II

Lógica de Programação II Gilson de Souza Carvalho gaucho.gilson@hotmail.com 1 Carga Horária: 72 horas Nº Créditos: 04 aulas Objetivo: Lógica de Programação II Resolver problemas usando os comandos básicos da linguagem (C). Com

Leia mais

Informações. Programação Funcional. Por que um curso de programação funcional? O que é Programação Funcional? Objetivos da programação funcional

Informações. Programação Funcional. Por que um curso de programação funcional? O que é Programação Funcional? Objetivos da programação funcional Informações Sérgio Soares scbs@cin.ufpe.br Linguagens de Programação 2 Paradigma de Carga Horária: 60h Horário: 2 as e 6 as das 10h30 as 12h10 Local: 2 as no LIP4 e 6 as no LIP1 Grupo http://groups.yahoo.com/group/lp2_poli

Leia mais

PLANO DE ENSINO E APRENDIZAGEM CURSO: Tecnologia em Análise e Desenvolvimento de Sistemas

PLANO DE ENSINO E APRENDIZAGEM CURSO: Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: Construção de Algoritmos C.H. Teórica: 60 PLANO DE ENSINO E APRENDIZAGEM CURSO: Tecnologia em Análise e Desenvolvimento de Sistemas Período Letivo: Série: Periodo: Semestre de 2 sem/2012 2ª

Leia mais

Construção de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.

Construção de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014. Construção de Compiladores Capítulo 1 Introdução José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2014.2 1/22 1 Linguagens de programação 2 Compilação 2/22 Tópicos 1

Leia mais

Conceitos Básicos. Fundamentos de Programação de Computadores

Conceitos Básicos. Fundamentos de Programação de Computadores Conceitos Básicos Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Fevereiro de 2018 Unidade 01 Conceitos Básicos 1/15 Curiosidade Ranking das Linguagens

Leia mais

Reinaldo Gomes Análise/projeto estruturado

Reinaldo Gomes Análise/projeto estruturado Programação Orientada a Objetos Objetos, Classes e Mensagens O Modelo de Objetos Objetos e Classes Mensagens e métodos Reinaldo Gomes reinaldo@cefet-al.br Decomposição Análise/projeto estruturado Soluciona

Leia mais

Paradigmas de Linguagens

Paradigmas de Linguagens Paradigmas de Linguagens Aula 2: Tipos de dados Professora Sheila Cáceres Tipos de dados Dados são a matéria prima da computação junto com os programas. LPs precisam manipular dados. LPS utilizam os conceitos

Leia mais

Introdução a Programação

Introdução a Programação Introdução a Programação Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida Aula 01 Informática e a Programação Roteiro Informática Pensar e Programar Atividades

Leia mais

Aspectos preliminares

Aspectos preliminares Aspectos preliminares Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

CONCEITOS DE ALGORITMOS

CONCEITOS DE ALGORITMOS CONCEITOS DE ALGORITMOS Fundamentos da Programação de Computadores - 3ª Ed. 2012 Editora Prentice Hall ISBN 9788564574168 Ana Fernanda Gomes Ascênsio Edilene Aparecida Veneruchi de Campos Algoritmos são

Leia mais

INE5622 INTRODUÇÃO A COMPILADORES

INE5622 INTRODUÇÃO A COMPILADORES INE5622 INTRODUÇÃO A COMPILADORES PLANO DE ENSINO Objetivo geral Conhecer o processo de especificação e implementação de linguagens de programação, a partir do estudo dos conceitos, modelos, técnicas e

Leia mais

Aspectos preliminares

Aspectos preliminares Aspectos preliminares Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

Visão Geral... e conceitos básicos

Visão Geral... e conceitos básicos Visão Geral.. e conceitos básicos 1 Curso de... Programação O que se estuda aqui? Algoritmos 2 E o que são algoritmos? Sequência finita e não ambígua de passos para a solução de um problema. Lembre- se

Leia mais

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato? Computação efectiva Que linguagens podem ser reconhecidas por algum tipo de autómato? O que é ser computável? Que linguagens são computáveis? Existem linguagens que não são computáveis? Isto é, existem

Leia mais

SEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end.

SEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end. SEMÂNTICA program simples = var x : int := 3 in x := x + 5 end. rode =? Rogério Rocha Roteiro Introdução Sintaxe Semântica Dinâmica (Métodos formais) Operacional Axiomática Denotacional Estática Conclusão

Leia mais

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1 Programação de Computadores IV Introdução a Linguagens de Programação Simone Martins simone@ic.uff.br SLIDES CEDIDOS POR BRUNO MARQUES 1 Arquitetura de programação 2 O Que é um Dado? Dado é o elemento

Leia mais