ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
paradigma de linguagens de programação - clos/lisp
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
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
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
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