Haskell motivação

Download Haskell motivação

Post on 07-Aug-2015

31 views

Category:

Technology

5 download

Embed Size (px)

TRANSCRIPT

<ol><li> 1. Programao Funcional em Haskell 2a Reunio Motivao para Programao Funcional </li><li> 2. Contedo e objetivos Introduo programao funcional usando Haskell Objetivos de aprendizagem Motivao sobre programao funcional; O que programao funcional ; Vantagens das linguagens funcionais; </li><li> 3. Motivao Programao declarativa preocupa-se em especificar o problema e a soluo e no com a maneira com a qual esta soluo ser encontrada. Uma linguagem declarativa preocupa-se com o que deve ser computador e no como um valor deve ser computador. OBJETIVO do grupo: estudar Programao Funcional com a Linguagem Haskell. </li><li> 4. Programao Funcional Lisp foi a primeira linguagem de programao funcional. Ela foi descrita por MacCarthy do MIT em 1960. Vamos estudar uma linguagem de programao funcional moderna, chamada Haskell, que possui vrias caractersticas interessantes: </li><li> 5. Programao Funcional Linguagem puramente funcional Avaliao Lazy: argumentos so avaliados somente quando necessrio. Possibilita o trabalho com estrutura de dados infinitas. No existe a noo de estado No existe comando de atribuico No existem variveis! Cada funo definida como a composio e aplicao de outras funes (ou da prpria) </li><li> 6. Linguagens Funcionais Funes so os elementos principais neste tipo de linguagem. Funes podem receber funes como argumentos e uma funo pode devolver como resultado outra funo. Estruturas de dados podem conter funes como elementos </li><li> 7. Linguagens Funcionais </li><li> 8. Vantagens de Linguagens Funcionais Cdigo menor, mais claro e mais fcil de manter. Andy Adams-Moran (engenheiro de software da Galois) reduziu de 200.000 -&gt;20.000 usando Haskell. </li><li> 9. Vantagens de Linguagens Funcionais Reuso Haskell facilita e simplifica refatorao e reuso . </li><li> 10. Vantagens de Linguagens Funcionais . Realizam a mesma tarefa. Sentiu a diferena? </li><li> 11. Abstraes Poderosas </li><li> 12. Aumento de Produtividade </li><li> 13. Resumindo Tamanho do Cdigo Tecnologia testada Facilita o reuso Diminuir o gap semntico Abstraes Poderosas Aumento da Produtividade </li><li> 14. Haskell no Mundo real Google MapReduce, Sawzall Ericsson AXE phone switch Jane Street Capital Credit Suisse Morgan Stanley Standard Chartered Twitter Facebook Yahoo Erlang Scala Microsoft F# </li><li> 15. Vantagens de Linguagens Funcionais Programas so pequenos e com alto poder de expresso. Suporta componentes reusveis de software. Permite prototipao rpida. Permite verificao formal de programas. As funes em uma linguagem funcional so funes matemticas puras, no existe atribuio. Uma funo que recebe os mesmos argumentos sempre devolve o mesmo resultado. </li><li> 16. ??? Se linguagens funcionais so to legais como que eu nunca ouvi falar delas? Um paradigma de programao leva um longo tempo at ser adotado. Ex: orientao a objetos surgiu nos anos 60. Linguagens funcionais so ensinadas na maioria dos cursos de computao da EUROPA e EUA, e em alguns cursos no Brasil </li><li> 17. ??? Linguagens funcionais so utilizadas em vrias empresas e projetos: Autocad possui partes implementadas em LISP Super Mario 64 usa LISP internamente ERLANG: Linguagem funcional desenvolvida pela Ericson </li><li> 18. ??? Vrias das coisas legais que encontramos nas linguagens de programao modernas surgiram nas linguagens funcionais. Ex: Funes Annimas (Phyton, PhP) Garbage Collection (Java, C#, Python, Perl, Ruby, Javascript) Generics (Java, C#) List comprehensions (C#, Python, Perl 6, Javascript) Type classes (C++ concepts) Higher-order functions (Java, C#, Python, Perl, Ruby, Javascript) Programao genrica, polimorfismo de tipo (Java 1.5) </li></ol>