Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis.". The language was first generally released as Smalltalk-80. Smalltalk-like languages are in continuing active development, and have gathered loyal communities of users around them. ANSI Smalltalk was ratified in 1998 and represents the standard version of Smalltalk. Smalltalk was the product of research led by Alan Kay at Xerox Palo Alto Research Center (PARC); Alan Kay designed most of the early Smalltalk versions, which Dan Ingalls implemented.
1. Uma linguagem de programação
“puramente orientada a objetos”.
Componentes :
Alisson Tenório Pinto
Natália Julieta Soares de Souza
Michel Alves dos Santos
2. HISTÓRICO
Local de Nascimento e Período.
Genitores/Criadores/Projetistas.
Genealogia/Pedigree/Ancestralidades.
Motivação.
Centro de Pesquisa da XEROX em Palo Alto (Califórnia) – XEROX PARC
4. HISTÓRICO
Alan Curtis Kay.
Springfield, Massachusetts, 17 de maio de 1940;
Um dos inventores da linguagem de programação Smalltalk;
Um dos pais do conceito de programação orientada a objetos;
Influenciado pelas idéias de Seymour Papert;
Concebeu a idéia de laptop através do projeto Dynabook;
Concebeu também o conceito das modernas GUI´s;
Consultor na Xerox PARC em 1970, em 71 passa a ser pesquisador;
Após dez anos na Xerox PARC, Kay tornou-se cientista chefe da
Atari por três anos.
1984 - Kay associou-se a Apple Computer [criando o ATG].
Logo após associou-se a Walt Disney Imagineering.
2001 - Após a Disney, ele fundou Viewpoints Research Institute.
Posteriormente, trabalhou com um time da Applied Minds .
Torna-se Professor Visitante da Kyoto University, e Adjunto no MIT.
Atualmente está profundamente envolvido com projetos como o
Squeak, OLPC e OpenCroquet.
6. HISTÓRICO
Xerox Alto executando Smalltalk.
XEROX Alto com Interface XeroxStar executando uma das primeiras versões de Smalltalk.
7. O que é Smalltalk ?
Compilador
+
Interface Gráfica do Usuário
Máquina Virtual
+
+
Biblioteca De Classes
+
Navegador de Classes e Métodos
+
.
Recursos usuais de um Sistema Operacional
Janela de codificação em Smalltalk.
8. CARACTERÍSTICAS
“Puramente orientada a objetos”.
Conjunto simplificado de regras.
Todo objeto é a instância de alguma classe.
Quase todas as expressões são da forma <recebedor> <mensagem>.
Mensagens fazem com que métodos sejam executados.
Toda classe possui uma classe mãe, exceto Object.
Herança simples.
Garbage Collector “Automático”.
Ambiente de desenvolvimento integrado.
Mensagem
SENDER
RECEIVER
Valor de Retorno
Um método de objeto sendo invocado por outro objeto enviando uma mensagem para ele.
(Retirado de The Art and Science of Smalltalk).
9. SINTAXE
Por padrão possui apenas 6 palavras reservadas:
super, self, true, false, thisContext, nil.
Caracteres reservados: := ^ || $a #( ) . ; [] “” ‘’
Envio de mensagem ; unária, binária, de palavra-chave
Até mesmo blocos de código são considerados objetos.
Impressão dos quadrados dos números de 1 a 12.
10. SINTAXE
Mensagem unária: não possuem argumentos.
Array := Array new.
Array size.
Mensagem binária: possuem apenas um argumento.
São chamadas por um símbolo e normalmente usadas
para expressões matemáticas.
3 + 4
‘Hello’, ‘World’.
Mensagem de palavra-chave: Podem ter um ou mais
argumentos.
Smalltalk allButFirst: 5.
2 to: 10 by: 2.
11. SINTAXE
Seleção Condicional:
Provê uma mensagem especial cujos
argumentos são ambos da classe Bloco. Essa mensagem faz parte do
protocolo da classe Boolean, cujas duas únicas instâncias são os objetos
true e false.
O código acima poderia ser substituído por :
paridade := numero 2 = 0 ifTrue: ['par'] ifFalse: ['impar'].
12. SINTAXE
Repetição Simples:
Para repetir um número determinado de vezes
uma seqüência de expressões, o mecanismo usado em Smalltalk consiste em
enviar a um Inteiro, cujo valor é o número desejado de repetições, a
mensagem timesRepeat:, onde o argumento é um bloco que contém a seqüência
de expressões a repetir.
Exemplo de repetição simples.
13. SINTAXE
Repetição Condicional:
Smalltalk implementa a repetição
condicional de um bloco de expressões através do envio da mensagem
whileTrue: (ou whileFalse:) a outro bloco, cujo valor retornado deve ser
um Booleano. O argumento da mensagem é o bloco que contém a seqüência de
expressões a serem repetidas..
Exemplo de repetição condicional.
14. Ferramentas
Desenvolvimento Web : Seaside.
Ensino : Squeak Etoys, SqueakBot.
Multimídia : Plopp.
Persistência : Glorp e GemStone.
Janela do Squeak e sessão do Plopp.
15. CONCLUSÕES
Marco na história das linguagens
Contribuiu com a evolução das GUI´s.
Impulsionou um novo modo de pensar.
Influencia até hoje outras linguagens.
Serve de base atualmente para projetos
de educação como o OLPC, OpenCroquet, etc.
OLPC – One Laptop Per Child.