seminário: lisp

15

Click here to load reader

Upload: ivna-valenca

Post on 03-Jul-2015

1.567 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Seminário: Lisp

Lisp Linguagem de Programação Funcional

Elizio Neto, Ivanildo Oliveira, Wallace Rooger

Page 2: Seminário: Lisp

História

2

• O lisp foi criado em 1956, por John

McCarthy.

• A palavra lisp vem de List Processing.

• O lisp foi influenciado pelo calculo

lambda, de Alonzo Chuch nos anos 40.

• A linguagem lisp nasceu como uma

ferramenta matemática.

• É a segunda linguagem de

programação mais antiga que existe.

Page 3: Seminário: Lisp

Objetivo

3

• John McCarthy queria mostrar que era possível usar

exclusivamente funções matemáticas como estrutura de dados

elementares.

• Primeira implementação do lisp a uma máquina foi em 1958, durante

um projeto de pesquisa para Inteligência Artificial no (MIT) Instituto

de tecnologia do Massachussets.

• A motivação de McCarthy, surgiu da ideia de desenvolver uma

linguagem algébrica para processamento de listas para trabalho

em IA (Inteligência Artificial).

Page 4: Seminário: Lisp

PRIMEIROS COMUTADORES A USAR O LISP.

4

• O primeiro dialecto do lisp, foi o lisp 1.5, criado entre 1960 a

1965.

• IBM 704.

• IBM 7090.

• DEC PDP-1.

• DEC PDP-6.

• DEP PDP-10.

Page 5: Seminário: Lisp

CARACTERÍSTICAS DO LISP

5

• Lisp é muitas vezes requerido como uma linguagem superior sobre as

outras porque tem certas características que são únicas, bem

integrada, ou de outra forma útil.

• Tipos de dados: átomo e a lista.

Page 6: Seminário: Lisp

CARACTERÍSTICA LISP

6

Page 7: Seminário: Lisp

CARACTERÍSTICA LISP

7

• Muitas versões e dialetos: Franz, Mac, Inter, Common e

Scheme.

• Fraca Tipagem: as variáveis podem ser interpretadas de

forma diferente, dependendo do contexto.

• Funções de ordem elevada: Linguagens funcionais tipicamente

suportam funções de ordem elevada.

• Concorrência (multitarefa): é um paradigma de programação para a

construção de programas de computador que fazem uso da execução

concorrente (simultânea) de várias tarefas computacionais interativas,

que podem ser implementadas como programas separados ou como um

conjunto de threads criadas por um único programa.

Page 8: Seminário: Lisp

CARACTERÍSTICA LISP

8

• Comoom lisp em propósito geral, linguagem de programação multi-

paradigma . Ele suporta uma combinação de procedimentos ,funcional e

orientada a objetos paradigmas de programação. Como uma linguagem de

programação dinâmica , facilita a evolução e desenvolvimento de software

adicional , com interativa compilação em tempo de execução de eficientes

programas.

Page 9: Seminário: Lisp

CARACTERÍSTICA LISP

9

• LISP é frequentemente implementada por um interpretador

Usuário entra com uma expressão Interpretador avalia expressão

e imprime o resultado.

• Lisp Puro contem as seguintes funções primitivas:

Car : primeiro elemento de uma lista;

Cdr: o que sobra de uma lista tirando o 1º elemento

Cons: constrói lista dado um elemento e uma lista;

Eql: retorna T se os dois elementos que se seguem

são iguais, NIL no caso contrario;

Atom: retorna T se elemento que o segue é atômico,

NIL em caso contrário.

Page 10: Seminário: Lisp

CHACOTA LISP

10

• LISP = Lots of Irritating Stupid Parentheses.

• tradução: Montes de Irritantes Parênteses Estúpidos, ou então

LISP = Linguagem Infernal Somente de Parênteses.

Page 11: Seminário: Lisp

PRINCIPAIS VANTAGENS

11

• Um alto nível de abstração, especialmente quando as funções são

utilizadas, suprimindo muitos detalhes da programação e minimizando

a probabilidade da ocorrência de muitas classes de erros.

• A não dependência das operações de atribuição permite aos programas

avaliações nas mais diferentes ordens. Esta característica de avaliação

independente da ordem torna as linguagens funcionais as mais indicadas

para a programação de computadores maciçamente paralelos.

• A ausência de operações de atribuição torna os programas funcionais

muito mais simples para provas e análises matemáticas do que os

programas procedurais.

• O Maxima é um software excelente para matemática simbólica.

Page 12: Seminário: Lisp

DESVANTAGENS

12

• Menor eficiência.

• Problemas que envolvam muitas variáveis (ex. contas de banco) ou

muitas atividades sequenciais são muitas vezes mais fáceis de se

trabalhar com programas procedurais ou programas orientados a objeto.

Page 13: Seminário: Lisp

APLICAÇÕES REAIS DE COMMON LISP.

13

• Paul Graham escreveu a primeira versão do Yahoo! Store

(então chamada Via Web) em Common Lisp.

• A primeira implementação de JavaScript no CVS do Mozilla é

em Common Lisp.

• A ITA Software (agora comprada pelo Google) mantém seus

sistemas (de grande porte) em Common Lisp.

• O StumpWM é um gerenciador de janelas para Unix, escrito

inteiramente em Common Lisp. É possível mudar o código do

StumpWM, debugá-lo e fazer qualquer modificação que se queira

nele, enquanto ele roda.

• NaughtyDog software usou Common Lisp para desenvolver os

jogos das séries Jak and Daxter e Crash Bandicoot.

Page 14: Seminário: Lisp

REFERÊNCIAS

• programacao.wikia.com/wiki/Lisp

• pt.wikipedia.org/wiki/Lisp

• www2.dc.ufscar.br/~heloisa/PLP2009/LISP

• http://www.dca.ufrn.br/~adelardo/lisp/

• http://www.ic.unicamp.br/~meidanis/courses/mc336/2011s2/lisp/apostila-

lisp.pdf

• http://www.din.uem.br/~ia/ferramen/lisp/

• http://www.inf.ufrgs.br/gppd/disc/cmp135/trabs/soler/texto_lisp.pdf

Page 15: Seminário: Lisp

15