SlideShare uma empresa Scribd logo
1 de 15
Lisp Linguagem de Programação Funcional

Elizio Neto, Ivanildo Oliveira, Wallace Rooger
História



•   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.
                                             2
Objetivo


•   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).




                                                                           3
PRIMEIROS COMUTADORES A USAR O LISP.



  •     IBM 704.
                                       • DEC PDP-6.

      • IBM 7090.
                                       • DEP PDP-10.

  • DEC PDP-1.




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




                                                                          4
CARACTERÍSTICAS DO LISP


• 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.




                                                                       5
CARACTERÍSTICA LISP




                      6
CARACTERÍSTICA LISP


• 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.



                                                                           7
CARACTERÍSTICA LISP


• 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.




                                                                             8
CARACTERÍSTICA LISP



 • 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.



                                                                      9
CHACOTA LISP


 • 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.




                                                                   10
PRINCIPAIS VANTAGENS


• 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.


                                                                            11
DESVANTAGENS



• 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.




                                                                          12
APLICAÇÕES REAIS DE COMMON LISP.

 •    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.



                                                                   13
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
15

Mais conteúdo relacionado

Mais procurados

Aula Inaugural - Programação Imperativa
Aula Inaugural - Programação ImperativaAula Inaugural - Programação Imperativa
Aula Inaugural - Programação ImperativaIvna Valença
 
Conhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformConhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformMilfont Consulting
 
Trabalho cobol e basic
Trabalho cobol e basicTrabalho cobol e basic
Trabalho cobol e basicDaniel Carrara
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiMario Guedes
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Linguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoLinguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoMonike Santos
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Adriano Teixeira de Souza
 
Curso Corona SDK - Módulo 3
Curso Corona SDK - Módulo 3Curso Corona SDK - Módulo 3
Curso Corona SDK - Módulo 3Luiz Duarte
 
Curso Corona SDK - Módulo 2
Curso Corona SDK - Módulo 2Curso Corona SDK - Módulo 2
Curso Corona SDK - Módulo 2Luiz Duarte
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoLuciano Ramalho
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesAdriano Teixeira de Souza
 
Erlang e Elixir por uma web mais feliz
Erlang e Elixir por uma web mais felizErlang e Elixir por uma web mais feliz
Erlang e Elixir por uma web mais felizBruno Henrique - Garu
 

Mais procurados (17)

Seminário: COBOL
Seminário: COBOLSeminário: COBOL
Seminário: COBOL
 
Aula Inaugural - Programação Imperativa
Aula Inaugural - Programação ImperativaAula Inaugural - Programação Imperativa
Aula Inaugural - Programação Imperativa
 
Conhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformConhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java Platform
 
Trabalho cobol e basic
Trabalho cobol e basicTrabalho cobol e basic
Trabalho cobol e basic
 
Extreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe DelphiExtreme Experience 2018 | Python para quem sabe Delphi
Extreme Experience 2018 | Python para quem sabe Delphi
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Brincando com FFI no Ruby
Brincando com FFI no RubyBrincando com FFI no Ruby
Brincando com FFI no Ruby
 
Linguagem C Entendendo a Programação
Linguagem C Entendendo a ProgramaçãoLinguagem C Entendendo a Programação
Linguagem C Entendendo a Programação
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
 
Curso Corona SDK - Módulo 3
Curso Corona SDK - Módulo 3Curso Corona SDK - Módulo 3
Curso Corona SDK - Módulo 3
 
Curso Corona SDK - Módulo 2
Curso Corona SDK - Módulo 2Curso Corona SDK - Módulo 2
Curso Corona SDK - Módulo 2
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 
Paradigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - ClassificaçõesParadigmas de Linguagens de Programação - Classificações
Paradigmas de Linguagens de Programação - Classificações
 
Aula 1 pc - slides
Aula 1   pc - slidesAula 1   pc - slides
Aula 1 pc - slides
 
Isc aula 7
Isc   aula 7Isc   aula 7
Isc aula 7
 
Trabalho do cleber
Trabalho do cleberTrabalho do cleber
Trabalho do cleber
 
Erlang e Elixir por uma web mais feliz
Erlang e Elixir por uma web mais felizErlang e Elixir por uma web mais feliz
Erlang e Elixir por uma web mais feliz
 

Destaque

Aula 2 - Assembly - 8051
Aula 2 - Assembly - 8051Aula 2 - Assembly - 8051
Aula 2 - Assembly - 8051Thiago Oliveira
 
Aula 2 programas e linguagens de programação
Aula 2   programas e linguagens de programaçãoAula 2   programas e linguagens de programação
Aula 2 programas e linguagens de programaçãoLCCIMETRO
 
ICC - Aula 15 - Ambiente Pascal e Suas Estruturas
ICC - Aula 15 - Ambiente Pascal e Suas EstruturasICC - Aula 15 - Ambiente Pascal e Suas Estruturas
ICC - Aula 15 - Ambiente Pascal e Suas EstruturasFelipe J. R. Vieira
 
Aula 1 apresentação - conteudo programático
Aula 1   apresentação - conteudo programáticoAula 1   apresentação - conteudo programático
Aula 1 apresentação - conteudo programáticoLCCIMETRO
 
Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadoresLCCIMETRO
 
Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)111111119
 
Programar Em Pascal
Programar Em PascalProgramar Em Pascal
Programar Em PascalPepe Rocker
 
Linguagem de Programação Pascal
Linguagem de Programação PascalLinguagem de Programação Pascal
Linguagem de Programação PascalMarcus Vinicius
 
Programando com pascal
Programando com pascalProgramando com pascal
Programando com pascalRamon Souza
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
C# aprenda a programar
C# aprenda a programar C# aprenda a programar
C# aprenda a programar Yuri Barzola
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascalJocelma Rios
 
Aula 4 - Assembly - 8051
Aula 4 - Assembly - 8051Aula 4 - Assembly - 8051
Aula 4 - Assembly - 8051Thiago Oliveira
 
Aula 3 - Assembly - 8051
Aula 3 - Assembly - 8051Aula 3 - Assembly - 8051
Aula 3 - Assembly - 8051Thiago Oliveira
 

Destaque (20)

Seminário: C#
Seminário: C#Seminário: C#
Seminário: C#
 
Seminário: Delphi
Seminário: DelphiSeminário: Delphi
Seminário: Delphi
 
Aula 2 - Assembly - 8051
Aula 2 - Assembly - 8051Aula 2 - Assembly - 8051
Aula 2 - Assembly - 8051
 
Pascal
PascalPascal
Pascal
 
Aula 2 programas e linguagens de programação
Aula 2   programas e linguagens de programaçãoAula 2   programas e linguagens de programação
Aula 2 programas e linguagens de programação
 
ICC - Aula 15 - Ambiente Pascal e Suas Estruturas
ICC - Aula 15 - Ambiente Pascal e Suas EstruturasICC - Aula 15 - Ambiente Pascal e Suas Estruturas
ICC - Aula 15 - Ambiente Pascal e Suas Estruturas
 
Aula 1 apresentação - conteudo programático
Aula 1   apresentação - conteudo programáticoAula 1   apresentação - conteudo programático
Aula 1 apresentação - conteudo programático
 
Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadores
 
Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)Comandos de pascal e estrutura de repetição (para...fazer)
Comandos de pascal e estrutura de repetição (para...fazer)
 
Programar Em Pascal
Programar Em PascalProgramar Em Pascal
Programar Em Pascal
 
Linguagem de Programação Pascal
Linguagem de Programação PascalLinguagem de Programação Pascal
Linguagem de Programação Pascal
 
Programando com pascal
Programando com pascalProgramando com pascal
Programando com pascal
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritmos - Pascal
Algoritmos - PascalAlgoritmos - Pascal
Algoritmos - Pascal
 
Pascal Arquivos
Pascal ArquivosPascal Arquivos
Pascal Arquivos
 
Apostila c++ básico
Apostila c++ básicoApostila c++ básico
Apostila c++ básico
 
C# aprenda a programar
C# aprenda a programar C# aprenda a programar
C# aprenda a programar
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Aula 4 - Assembly - 8051
Aula 4 - Assembly - 8051Aula 4 - Assembly - 8051
Aula 4 - Assembly - 8051
 
Aula 3 - Assembly - 8051
Aula 3 - Assembly - 8051Aula 3 - Assembly - 8051
Aula 3 - Assembly - 8051
 

Semelhante a Seminário: Lisp

Linguagensdeprogramao 100611235520-phpapp01
Linguagensdeprogramao 100611235520-phpapp01Linguagensdeprogramao 100611235520-phpapp01
Linguagensdeprogramao 100611235520-phpapp01Romário santos
 
Aula 02 informática aplicada - sistemas operacionais
Aula 02  informática aplicada - sistemas operacionaisAula 02  informática aplicada - sistemas operacionais
Aula 02 informática aplicada - sistemas operacionaisRobson Ferreira
 
Aula 2 linguagem de programação
Aula 2   linguagem de programaçãoAula 2   linguagem de programação
Aula 2 linguagem de programaçãoCristian Andrade
 
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdfsilo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdfAmlieOGalaxias
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programaçãoessa
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfAndreiaCristinaFlore
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
Linguagen..
Linguagen..Linguagen..
Linguagen..essa
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Progamacao para não programadores
Progamacao para não programadoresProgamacao para não programadores
Progamacao para não programadoresalexandre freire
 
Linguagem de programação estruturada, orientação a objetos
Linguagem de programação estruturada, orientação a objetosLinguagem de programação estruturada, orientação a objetos
Linguagem de programação estruturada, orientação a objetosNelsonCavalheirodosR
 

Semelhante a Seminário: Lisp (20)

Linguagensdeprogramao 100611235520-phpapp01
Linguagensdeprogramao 100611235520-phpapp01Linguagensdeprogramao 100611235520-phpapp01
Linguagensdeprogramao 100611235520-phpapp01
 
Aula 02 informática aplicada - sistemas operacionais
Aula 02  informática aplicada - sistemas operacionaisAula 02  informática aplicada - sistemas operacionais
Aula 02 informática aplicada - sistemas operacionais
 
Aula 2 linguagem de programação
Aula 2   linguagem de programaçãoAula 2   linguagem de programação
Aula 2 linguagem de programação
 
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdfsilo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
silo.tips_paradigmas-e-linguagens-de-programaao-prof-josino-rodrigues-neto.pdf
 
Haskell motivaçãoaula2
Haskell motivaçãoaula2Haskell motivaçãoaula2
Haskell motivaçãoaula2
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
 
Pho Aula 02
Pho Aula 02Pho Aula 02
Pho Aula 02
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Ruby
RubyRuby
Ruby
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
INATEL - Matlab introdução
INATEL - Matlab introduçãoINATEL - Matlab introdução
INATEL - Matlab introdução
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Functional Programming - Scala
Functional Programming - ScalaFunctional Programming - Scala
Functional Programming - Scala
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Progamacao para não programadores
Progamacao para não programadoresProgamacao para não programadores
Progamacao para não programadores
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Linguagem de programação estruturada, orientação a objetos
Linguagem de programação estruturada, orientação a objetosLinguagem de programação estruturada, orientação a objetos
Linguagem de programação estruturada, orientação a objetos
 

Seminário: Lisp

  • 1. Lisp Linguagem de Programação Funcional Elizio Neto, Ivanildo Oliveira, Wallace Rooger
  • 2. História • 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. 2
  • 3. Objetivo • 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). 3
  • 4. PRIMEIROS COMUTADORES A USAR O LISP. • IBM 704. • DEC PDP-6. • IBM 7090. • DEP PDP-10. • DEC PDP-1. • O primeiro dialecto do lisp, foi o lisp 1.5, criado entre 1960 a 1965. 4
  • 5. CARACTERÍSTICAS DO LISP • 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. 5
  • 7. CARACTERÍSTICA LISP • 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. 7
  • 8. CARACTERÍSTICA LISP • 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. 8
  • 9. CARACTERÍSTICA LISP • 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. 9
  • 10. CHACOTA LISP • 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. 10
  • 11. PRINCIPAIS VANTAGENS • 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. 11
  • 12. DESVANTAGENS • 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. 12
  • 13. APLICAÇÕES REAIS DE COMMON LISP. • 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. 13
  • 14. 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
  • 15. 15