Your SlideShare is downloading. ×
0
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
paradigma de linguagens de programação - clos/lisp
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

paradigma de linguagens de programação - clos/lisp

1,558

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,558
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 1 A Linguagem CLOS e seus Paradigmas Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Curso de Bacharelado em Ciência da Computação Integrantes: • Carlos Diego Nascimento Damasceno • Teófilo Augusto Bordalo de Souza Vieira
  • 2. 2 Antes de começar... “Pascal is for building pyramids—imposing, breathtaking, static structures built by armies pushing heavy blocks into place. Lisp is for building organisms. . . .” Alan Perlis “If you think a programming problem is ’impossible’, get a second opinion from a Common Lisp programmer!” Kent M Pitman
  • 3. 3 Histórico da Linguagem • Década de 1980 • Common Lisp: The Language (CLtL) • Metas do Common Lisp - Portabilidade; - Coerência; - Compatibilidade; - Eficiência. • Revisão e Ampliação do Common Lisp (8 de dezembro de 1994 - American National Standards Institute)
  • 4. 4 Classes de problemas indicados para o uso 1. Inteligência Artificial (IA) “A inteligência é o que você usa quando não sabe o que fazer.” Jean Piaget Sabe-se, de forma genérica, que um sistema inteligente é aquele que apresenta capacidade mental para: • raciocinar; • resolver problemas; • armazenar conhecimento;
  • 5. 5 “O ato de forçar definições para as coisas que nós não entendemos geralmente causa mais danos do que benefícios. As coisas com as quais lidamos na vida prática são frequentemente muito complicadas para permitirem uma representação clara baseada em expressões compactas. Em todo caso, não podemos nos privar de buscar uma definição para as coisas, no sentido de entender o que elas são. Marvin Minsky, The Society of Mind, 1985 • Definição formal: Inteligência Artificial (IA) é a área de pesquisa dedicada a buscar métodos ou dispositivos computacionais que possuam ou simulem a capacidade humana de resolver problemas, pensar ou, de forma ampla, ser inteligente. 1. Inteligência Artificial (IA) Classes de problemas indicados para o uso
  • 6. 6 De algum modo a criptografia contribui para resolver os problemas de: • confidencialidade; • integridade; • privacidade; • autenticação. • Definição formal: Criptografia é o estudo dos princípios e técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário. As técnicas mais conhecidas envolvem o conceito de chaves, as chamadas "chaves criptográficas“ (conjunto de bits baseados em um algoritmo). 2. Criptografia Classes de problemas indicados para o uso
  • 7. 7 • Crash – Desenvolvido por Naughty Dog 3. Desenvolvimento de Jogos Classes de problemas indicados para o uso
  • 8. 8 Sintaxe e semântica dos comandos principais • CLOS - Common Lisp Object System • Extensão do Lisp • POO - DEFCLASS - MAKE-INSTANCE - DEFMETHOD - SLOTS
  • 9. 9 Definição de uma classe (defclass nome_da_classe* (nome_da_superclasse*) (descrição_dos_slots*) opções_da_classe* )  nome_da_classe* -> nome referente a classe  descrição_dos_slots* -> (nome_do_slot opções_do_slot*) :initform :accessor :initarg :allocation :class :allocation :instance  opções_da_classe* -> Outras opções que podem ser passadas para a classe
  • 10. 10 (defclass pessoa () ((nome :accessor pessoa-name :initform nil :initarg :nome) (idade :accessor pessoa-idade :initform nil :initarg :idade) (total-equipe :accessor quant-p :initform 0 :initarg :tot-equipe :allocation :class))) Definição de uma classe
  • 11. 11 Herança (defclass webdesigner (pessoa) ((linguagem :accessor program-lang :initform nil :initarg :prog-lang) (total-wd :accessor quant-wd :initform 0 :initarg :tot-wd :allocation :class)) )
  • 12. 12 Estrutura de um make-instance (make-instance nome_da_classe* {valores dos initarg}*) nome_da_classe* → Nome da classe que se deseja criar {valores dos initarg}* → Argumentos de incialização
  • 13. 13 1) A instância é criada com base nos :initarg's; 2) Os initargs passados para o make-instance são validados; 3) Alocam-se os espaços para a instância e criam-se instâncias livres; 4) Inicializam-se os slots que tenham :initform; 5) Inicializam-se os slots que foram passados :initarg's. Exemplo: (make-instance 'pessoa :nome 'fulano :idade 99) (make-instance 'webdesigner :nome 'fulanow :idade 98 :prog-lang 'html) Processo de Instanciação
  • 14. 14 Combinação de método (defmethod cria-pessoa ((p pessoa)) (print " Nome:") (setf (slot-value p 'nome) (read-line)) (print " Idade:") (setf (slot-value p 'idade) (read-line)) ) (defmethod cria-pessoa :around ((p pessoa)) (print "-------------------------") (call-next-method) ) (defmethod cria-pessoa :before ((p pessoa)) (write-sentence p) )
  • 15. 15 Interpretadores e IDE’s 1. Cusp
  • 16. 16 Interpretadores e IDE’s 2. LispStudio
  • 17. 17 Interpretadores e IDE’s 3. GNU CLISP
  • 18. 18 Exemplo de Referência
  • 19. 19 Exemplo Original
  • 20. 20 Análise Crítica sobre a linguagem • Linguagem pode ser usada para várias finalidades • Legibilidade de expressões s-expression • Conhecer LISP • Paradigma OO & Funcional • Material disponível em Inglês
  • 21. 21 Conteúdo disponível na WEB 1. #LISP – irc.freenode.net
  • 22. 22 Conteúdo disponível na WEB 2. http://www.cliki.net/
  • 23. 23 Conteúdo disponível na WEB 3. http://cl-cookbook.sourceforge.net/
  • 24. 24 KEENE, Sonja. Object-Oriented Programming in Common Lisp Addison-Wesley Conteúdo disponível na WEB 3. E-Books
  • 25. 25 SEIBEL, Peter. Practical Common Lisp Apress Conteúdo disponível na WEB 3. E-Books
  • 26. 26 Massachusetts Institute of Technology. Lisp 1.5 Programmer's Manual Massachusetts Institute of Technology Conteúdo disponível na WEB 3. E-Books
  • 27. 27 TOURETZKY, David S. Common LISP : A Gentle Introduction to Symbolic Computation The Benjamin/Cummings Publishing Company, inc. Conteúdo disponível na WEB 3. E-Books
  • 28. 28 OBRIGADO! Fim

×