smalltalk presentation

15
Uma linguagem de programação “puramente orientada a objetos”. Componentes : Alisson Tenório Pinto Natália Julieta Soares de Souza Michel Alves dos Santos

Upload: michel-alves

Post on 21-Jun-2015

203 views

Category:

Education


3 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: Smalltalk Presentation

Uma linguagem de programação “puramente orientada a objetos”.

Componentes :Alisson Tenório Pinto Natália Julieta Soares de Souza Michel Alves dos Santos

Page 2: Smalltalk Presentation

HISTÓRICOHISTÓ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

Page 3: Smalltalk Presentation

HISTÓRICOHISTÓRICO

Adele Goldberg.Dan Ingalls.Alan Curtis Kay.

Adele Goldberg Dan Ingalls Alan Kay

Page 4: Smalltalk Presentation

HISTÓRICOHISTÓ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.

Page 5: Smalltalk Presentation

Fonte :

HISTÓRICOHISTÓRICO

Genealogia

Fortran Cobol

Simula

Eiffel

Algol

Smalltalk

Actor

C++

C#

C

Java

Objective C

Object Pascal

Pascal

Modula-2 ADA

Figura retirada do livro: “UML Metodologias e Ferramentas CASE”, Alberto Silva e Carlos Videira.

Page 6: Smalltalk Presentation

HISTÓRICOHISTÓRICO

Xerox Alto executando Smalltalk.

XEROX Alto com Interface XeroxStar executando uma das primeiras versões de Smalltalk.

Page 7: Smalltalk Presentation

O que é Smalltalk ?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.

Page 8: Smalltalk Presentation

RECEIVER

CARACTERÍSTICASCARACTERÍ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.

SENDER

Mensagem

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

Page 9: Smalltalk Presentation

SINTAXESINTAXE

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-chaveAté mesmo blocos de código são considerados objetos.

Impressão dos quadrados dos números de 1 a 12.

Page 10: Smalltalk Presentation

SINTAXESINTAXE

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.

Page 11: Smalltalk Presentation

SINTAXESINTAXE

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'].

Page 12: Smalltalk Presentation

SINTAXESINTAXE

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.

Page 13: Smalltalk Presentation

SINTAXESINTAXE

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.

Page 14: Smalltalk Presentation

FerramentasFerramentas

Desenvolvimento Web : Seaside.Ensino : Squeak Etoys, SqueakBot.Multimídia : Plopp.Persistência : Glorp e GemStone.

Janela do Squeak e sessão do Plopp.

Page 15: Smalltalk Presentation

CONCLUSÕESCONCLUSÕES

Marco na história das linguagensContribuiu 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.