Linguagens de Programação e Programação Funcional
|
|
|
- Alessandra Vanessa Dreer
- 6 Há anos
- Visualizações:
Transcrição
1 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 de setembro de / 19
2 O que é uma linguagem de programação? Inicialmente, computadores eram programados utilizando sequências de números Chamávamos essas sequências de linguagem de máquina No entanto, sua leitura é complicada para seres humanos Além de facilitarem o surgimento de erros Por esse motivo, buscou-se linguagens de mais alto nível, que abstraíssem os computadores, tornando a programação mais simples GSI004 Aula de setembro de / 19
3 O que é uma linguagem de programação? Linguagem de Programação Linguagem de Programação: sintaxe (gramática) e semântica (signicado) utilizadas para escrever (ou codicar) um programa. Uma linguagem de programação é também um código por meio do qual o ser humano se comunica com o computador, transmindo instruções que devem ser seguidas para a resolução de um problema. GSI004 Aula de setembro de / 19
4 Paradigmas de Linguagens de Programação De um modo geral, podemos classicar as linguagens de programação em duas classes: 1 Linguagens imperativas 2 Linguagens declarativas GSI004 Aula de setembro de / 19
5 Paradigmas de Linguagens de Programação Linguagens Imperativas Programas possuem um conjunto de variáveis (estado implícito) que é modicado por comandos da linguagem Tais linguagens têm, em geral, uma noção explícita de sequência de comandos que permite o controle dos estados Linguagens imperativas expressam como alguma coisa será computada Exemplos: Fortran, Pascal, Ada, C, C++, Java, C#, etc... GSI004 Aula de setembro de / 19
6 Paradigmas de Linguagens de Programação Linguagens Declarativas Programas não possuem um estado implícito Programas são construídos por meio de expressões (ou termos) em vez de comandos Linguagens declarativas expressam o quê será computado São divididas em dois grupos: 1 Linguagens funcionais 2 Linguagens lógicas GSI004 Aula de setembro de / 19
7 Paradigmas de Linguagens de Programação Linguagens Funcionais O modelo de computação é o conceito matemático de função Ao computar uma função, aplica-se zero ou mais argumentos para computar um único resultado Linguagens puramente funcionais: FP, Haskell, Miranda Linguagens híbridas: Lisp, Scheme, Racket GSI004 Aula de setembro de / 19
8 Paradigmas de Linguagens de Programação Linguagens Lógicas O modelo de computação é o conceito de lógica de predicados A computação é uma associação de um grupo de valores com backtracking para resolver valores adicionais Exemplos: Prolog, Parlog, KL1 GSI004 Aula de setembro de / 19
9 Programação Funcional Este é um curso de programação funcional Programação: Ênfase em análise e solução de problemas Desenvolvimento de algoritmos e estruturas de dados que apoiem essa solução Como tais algoritmos e estruturas de dados devem ser processados pelo computador Foco no pensamento humano Funcional: Programas são construídos pela denição de funções matemáticas Programas funcionais consistem em expressões que utilizam essas denições Foco em técnicas de solução de problemas, algoritmos, estruturas de dados e notações apropriadas à abordagem funcional GSI004 Aula de setembro de / 19
10 Programação Funcional Este não é um curso de linguagens funcionais Não aprenderemos a fundo uma linguagem funcional Embora precisamos de uma linguagem para nos auxiliar Precisamos aprender a usar uma linguagem de modo que nossos programas sejam ecientes GSI004 Aula de setembro de / 19
11 Vantagens da Programação Funcional 1 Programas funcionais são mais fáceis de serem manipulados matematicamente que programas imperativos 2 Linguagens funcionais têm poderosos mecanismos de abstração 3 Programação funcional permite novas abordagens algorítmicas 4 Programação funcional permite novas abordagens para desenvolvimento de programas 5 Programas funcionais podem ser facilmente paralelizáveis 6 Programas funcionais são importantes em diversas áreas de pesquisa 7 Programação funcional tem relação direta com a Teoria da Computação 8 Programação funcional ajuda a abrir a cabeça de estudantes de computação GSI004 Aula de setembro de / 19
12 Desvantagens da Programação Funcional 1 Programas funcionais costumam ser lentos 2 Linguagens funcionais puras têm pouco uso na indústria 3 Programação funcional parece pouco natural GSI004 Aula de setembro de / 19
13 Um Pouco de História Década de 1930 Alonzo Church desenvolveu o cálculo-λ, uma simples e poderosa teoria sobre funções GSI004 Aula de setembro de / 19
14 Um Pouco de História Década de 1950 John McCarthy desenvolveu a linguagem Lisp, a primeira linguagem funcional, com inuências do cálculo-λ, porém mantendo o conceito de atribuições de variáveis GSI004 Aula de setembro de / 19
15 Um Pouco de História Década de 1960 Peter Landin a linguagem ISWIM, a primeira linguagem puramente funcional, totalmente baseada no cálculo-λ GSI004 Aula de setembro de / 19
16 Um Pouco de História Década de 1970 John Backus desenvolveu a linguagem FP, com ênfase em funções de ordem superior GSI004 Aula de setembro de / 19
17 Um Pouco de História Década de 1970 Robin Milner e seus colaboradores desenvolveram a linguagem ML, a primeira linguagem funcional moderna, que introduziu conceitos de inferência de tipo e tipos polimórcos GSI004 Aula de setembro de / 19
18 Um Pouco de História Década de David Turner desenvolveu diversos estudos que culminaram na criação do sistema Miranda GSI004 Aula de setembro de / 19
19 4/22/14, 17:47 Page 1 of 1 Um Pouco de História 1985 Um comitê internacional de pesquisadores iniciou o desenvolvimento da linguagem Haskell, a qual seria um padrão entre as linguagens funcionais Em 2003 publicaram a primeira especicação da linguagem (Haskell 98), a qual foi modicada em 2009 para dar origem ao padrão atual (Haskell 2010) GSI004 Aula de setembro de / 19
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
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
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 [email protected] Definição Uma linguagem de programação é uma linguagem destinada a ser usada
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
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,
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
1 Introdução à Programação O que é? Para que serve?... 1
Nesta aula... Conteúdo 1 Introdução à Programação 1 1.1 O que é?................................. 1 1.2 Para que serve?............................. 1 2 Linguagens de programação 2 2.1 Programação estruturada........................
Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina)
Paradigmas de Linguagens Computacionais (PLC) (Apresentação da disciplina) George Darmiton da Cunha Cavalcanti ([email protected]) Informações Básicas Professor George Darmiton da Cunha Cavalcanti Monitores
Conceitos de Linguagens de Programação - Características. Paavo Soeiro
Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o
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
Linguagens de Programação
Curso Superior em Análise e Desenvolvimento de Sistemas História da Ciência e da Tecnologia - (HCT) Linguagens de Programação Alunas: Érika H. Gamas Flávia G. Pereira Melissa B. Alcantud Thaynara da Silva
Linguagens de Programação Princípios e Paradigmas
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Linguagens e Ambientes de Programação 2002-2003 Linguagens de Programação Princípios e Paradigmas Gladys Castillo
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
Programação Funcional. Capítulo 2. OCaml. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2015.
Programação Funcional Capítulo 2 OCaml José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2015.1 1/27 1 História 2 Características de OCaml 3 Usos e Aplicações 4 O Sistema
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
Linguagens de Programação Aula 3
Aula 3 Celso Olivete Júnior [email protected] 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...
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.
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
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
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
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
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: [email protected] Linguagens de Programação p. 1/5 Linguagens de
Paradigmas de Programação
Paradigmas de Programação Aula 3 Histórico das Linguagens Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Definição Linguagens de programação são usadas para descrever
Fundamentos de Programação 1
Fundamentos de Programação 1 Slides N. 2 E / Prof. SIMÃO Slides elaborados pelo Prof. Robson Linhares elaborados pelo Prof. Robson Linhares http://www.dainf.ct.utfpr.edu.br/~robson/ Jean Marcelo SIMÃO
Programação Estruturada Aula - Introdução a Linguagem de Programação
Programação Estruturada Aula - Introdução a Linguagem de Programação Prof. Flávio Barros [email protected] www.flaviobarros.com.br ORGANIZAÇÃO BÁSICA DE UM COMPUTADOR 2 ORGANIZAÇÃO BÁSICA DE UM COMPUTADOR
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
Fundamentos de Lógica e Algoritmos. Aula 2.3 Introdução a Algoritmos. Prof. Dr. Bruno Moreno
Fundamentos de Lógica e Algoritmos Aula 2.3 Introdução a Algoritmos Prof. Dr. Bruno Moreno [email protected] Fundamentos de Lógica e Algoritmos Aula 2.3 Introdução a Algoritmos Prof. Dr. Bruno Moreno
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
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. Linguagem de programação C 3.1. Conceitos
Informática I. Aula 9. Aula 9-17/05/2006 1
Informática I Aula 9 http://www.ic.uff.br/~bianca/informatica1/ Aula 9-17/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representaçã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
Introdução. Compiladores Análise Semântica. Introdução. Introdução. Introdução. Introdução 11/3/2008
Compiladores Análise Semântica Fabiano Baldo Análise Semântica é por vezes referenciada como análise sensível ao contexto porque lida com algumas semânticas simples tais como o uso de uma variável somente
Introdução à Computação: Máquinas Multiníveis
Introdução à Computação: Máquinas Multiníveis Beatriz F. M. Souza ([email protected]) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,
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: [email protected] Objetivos Geral: Estudar as características
Python - Variáveis e expressões
Python - e expressões Prof. Paulo H R Gabriel (com base no material do Prof. André Backes) Linguagem de Máquina Computador entende apenas pulsos elétricos Presença ou não de pulso 1 ou 0 Tudo no computador
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 [email protected] - http://lmarti.com Seis Camadas Problema
Linguagens de Programação. Introdução. Carlos Bazilio
Linguagens de Programação Introdução Carlos Bazilio [email protected] http://www.ic.uff.br/~bazilio/cursos/lp ??? Pascal aux := 0 for i:=1 to 10 do aux := aux + i 10: i = 1 20: if i > 10 goto 60
Laboratório de Programação 1 Algoritmos e a Lógica de Programação
Laboratório de Programação 1 Algoritmos e a Lógica de Programação Mário Hozano [email protected] Ciência da Computação UFAL - Arapiraca Relembrando a aula anterior... O que é um algoritmo? Como é o
Introdução à Computação
Introdução à Computação Jordana Sarmenghi Salamon [email protected] [email protected] http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda
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
Algoritmos e Programação - Engenharia da Computação -
Algoritmos e Programação - Engenharia da Computação - Prof. Alessandro Zimmer Pseudo Linguagem de Programação - PORTUGOL - Pseudo-Linguagem Linguagem de Programação? Notação formal servindo para: - Expressar
Introdução a Programação
Introdução a Programação Prof. André Gustavo Duarte de Almeida [email protected] docente.ifrn.edu.br/andrealmeida Aula 01 Informática e a Programação Roteiro Informática Pensar e Programar Atividades
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
Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 1ª 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 1ª Parte Prof. Sandra Pais Soares Linguagens de Programação Linguagens de Programação Uma
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
Linguagem de Programação I Prof. Tiago Eugenio de Melo.
Linguagem de Programação I Prof. Tiago Eugenio de Melo [email protected] www.tiagodemelo.info 1 Sumário Introdução Conceitos preliminares Introdução Variáveis Comandos Condicionais 2 Por que aprender a
Principais paradigmas de programação. Programação imperativa Programação funcional Programação lógica Programação OO
Principais paradigmas de programação Programação imperativa Programação funcional Programação lógica Programação OO Programação Imperativa É o paradigma mais usado. Programas são definidos através de sequências
Algoritmos Computacionais
UNIDADE 1 Processador e instruções Memórias Dispositivos de Entrada e Saída Software ARQUITETURA BÁSICA UCP Unidade central de processamento MEM Memória E/S Dispositivos de entrada e saída UCP UNIDADE
ANÁLISE DE ALGORITMOS: PARTE 1. Prof. André Backes. Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa
ANÁLISE DE ALGORITMOS: PARTE 1 Prof. André Backes Algoritmos 2 Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa Precisamos escrever o seu algoritmo Um algoritmo
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 [email protected] SLIDES CEDIDOS POR BRUNO MARQUES 1 Arquitetura de programação 2 O Que é um Dado? Dado é o elemento
Capítulo 1. Aspectos Preliminares
Capítulo 1 Aspectos Preliminares Tópicos do Capítulo 1 Razões para estudar conceitos de linguagens de programação Domínios de programação Critérios de avaliação de linguagens Influências no projeto de
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,
Programação Funcional. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2013.
Programação Funcional Capítulo 1 Introdução José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2013.1 1/37 1 Programação Funcional 2 Algumas características de Haskell
Programação I Aula 2 Apresentação da linguagem Python
Programação I Aula 2 Apresentação da linguagem Python Pedro Vasconcelos DCC/FCUP 2017 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 2 Apresentação da linguagem Python 2017 1 / 25 Nesta aula... 1 Porquê
Programação I Apresentação
Programação I Apresentação Prof. Carlos Alberto [email protected] [email protected] Referências JUNIOR, D. P.; NAKAMITI, G. S.; ENGELBRECHT, A. de M. E.; BIANCHI, F. Algoritmos e Programação
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
Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/01)
Introdução Mário S. Alvim ([email protected]) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/01) Mário S. Alvim ([email protected]) Introdução DCC-UFMG (2018/01) 1 / 18 O que é a Teoria da
Fundamentos de Programação 1
Fundamentos de Programação 1 Slides N. 2 - A Prof. SIMÃO Jean Marcelo SIMÃO Computador Noção elementar de um computador. - Dipositivo para processar informação. Processador Sistema Operacional (SO) Aplicativos
Apresentação da Disciplina
Apresentação da Disciplina Aula #1.1 EBS 111 ICC Prof. Luiz Fernando S. Coletta [email protected] Campus de Tupã Roteiro Objetivos da disciplina; Conteúdo; Metodologia de ensino; Bibliografia; Critérios
A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..
Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Introdução aos Algoritmos A única diferença entre o difícil e o impossível é que o último demora um pouco mais de
O que é a Teoria em Ciência da Computação. Introdução à Ciência da Computação Mário S. Alvim
O que é a Teoria em Ciência da Computação Introdução à Ciência da Computação Mário S. Alvim 2018-10-05 1 O que é computação? Algumas tentativas de definir o que é computação : É o ato de raciocinar seguindo
Introdução ao Python. Programa Computacional
Programa Computacional É um algoritmo escrito em uma linguagem computacional (C, Fortran, Pascal, MATLAB, Python, etc.). É a tradução do algoritmo para uma linguagem que será interpretada pelo computador.
Introdução a Programação
Introdução a Programação Joyce França Professora de Ciência da Computação - IFNMG Roteiro aula 1 Apresentação da disciplina Definição de algoritmos Plano de Ensino EMENTA OBJETIVOS CONTEÚDO PROGRAMÁTICO
