SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Uma linguagem de programação
“puramente orientada a objetos”.

Componentes :
Alisson Tenório Pinto
Natália Julieta Soares de Souza
Michel Alves dos Santos
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
HISTÓRICO
Adele Goldberg.
Dan Ingalls.
Alan Curtis Kay.

Adele Goldberg

Dan Ingalls

Alan Kay
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.
HISTÓRICO
Genealogia
Fortran

Cobol

Algol

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

Pascal

Simula

C

Modula-2

Objective C
Smalltalk
C++
Eiffel

Object Pascal
Actor

Java

C#

ADA
HISTÓRICO
Xerox Alto executando Smalltalk.

XEROX Alto com Interface XeroxStar executando uma das primeiras versões de 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.
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).
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.
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.
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'].
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.
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.
Ferramentas
Desenvolvimento Web : Seaside.
Ensino : Squeak Etoys, SqueakBot.
Multimídia : Plopp.
Persistência : Glorp e GemStone.

Janela do Squeak e sessão do Plopp.
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.

Mais conteúdo relacionado

Mais procurados

Programando em python funcoes
Programando em python   funcoesProgramando em python   funcoes
Programando em python funcoes
samuelthiago
 

Mais procurados (20)

Apresentação dev ios
Apresentação dev iosApresentação dev ios
Apresentação dev ios
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadores
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Segurança da informação
Segurança da informaçãoSegurança da informação
Segurança da informação
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Atividade 1 - ufcd 9958
Atividade 1 - ufcd 9958Atividade 1 - ufcd 9958
Atividade 1 - ufcd 9958
 
Scratch cap-1
Scratch cap-1Scratch cap-1
Scratch cap-1
 
Diagramas de pacotes
Diagramas de pacotesDiagramas de pacotes
Diagramas de pacotes
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
 
Camada de transporte
Camada de transporteCamada de transporte
Camada de transporte
 
Aula 5 - Modelo de Entidade e Relacionamento - MER
Aula 5 - Modelo de Entidade e Relacionamento - MER Aula 5 - Modelo de Entidade e Relacionamento - MER
Aula 5 - Modelo de Entidade e Relacionamento - MER
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos Básicos
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
Programando em python funcoes
Programando em python   funcoesProgramando em python   funcoes
Programando em python funcoes
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de uso
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 
Linguagem Assembly
Linguagem AssemblyLinguagem Assembly
Linguagem Assembly
 
Banco de Dados - Conceitos Básicos
Banco de Dados - Conceitos BásicosBanco de Dados - Conceitos Básicos
Banco de Dados - Conceitos Básicos
 

Semelhante a Smalltalk Presentation

Introdução a programação em python d2
Introdução a programação em python d2Introdução a programação em python d2
Introdução a programação em python d2
Moises de Paula
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo Tutorial
Fabio Spanhol
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
Infogenius
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
Christian Perone
 

Semelhante a Smalltalk Presentation (20)

Tutorial Python - 1
Tutorial Python - 1Tutorial Python - 1
Tutorial Python - 1
 
Python: programação divertida novamente
Python: programação divertida novamentePython: programação divertida novamente
Python: programação divertida novamente
 
Introdução a programação em python d2
Introdução a programação em python d2Introdução a programação em python d2
Introdução a programação em python d2
 
Tutorial Python ed. #2
Tutorial Python ed. #2Tutorial Python ed. #2
Tutorial Python ed. #2
 
Criando sua própria linguagem de programação
Criando sua própria linguagem de programaçãoCriando sua própria linguagem de programação
Criando sua própria linguagem de programação
 
Python Training #1 - ed4
Python Training #1 - ed4Python Training #1 - ed4
Python Training #1 - ed4
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo Tutorial
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Python tutorial-ed3
Python tutorial-ed3Python tutorial-ed3
Python tutorial-ed3
 
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
 
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
 
Clean Coder
Clean CoderClean Coder
Clean Coder
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Linguagem Java- Iniciação à programação Java
Linguagem Java- Iniciação à programação JavaLinguagem Java- Iniciação à programação Java
Linguagem Java- Iniciação à programação Java
 
Aspectos Teóricos da Linguagem de Programação Smalltalk
Aspectos Teóricos da Linguagem de Programação SmalltalkAspectos Teóricos da Linguagem de Programação Smalltalk
Aspectos Teóricos da Linguagem de Programação Smalltalk
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
 
Microsoft S2B - C# ASP.NET
Microsoft S2B - C# ASP.NETMicrosoft S2B - C# ASP.NET
Microsoft S2B - C# ASP.NET
 
TDC 2011 Goiânia: Evolução da linguagem de programação C#
TDC 2011 Goiânia: Evolução da linguagem de programação C#TDC 2011 Goiânia: Evolução da linguagem de programação C#
TDC 2011 Goiânia: Evolução da linguagem de programação C#
 
Python2.5.ppt
Python2.5.pptPython2.5.ppt
Python2.5.ppt
 

Mais de Michel Alves

Mais de Michel Alves (20)

Texture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseTexture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU Use
 
Intelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesIntelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color Palettes
 
A Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresA Framework for Harmonic Color Measures
A Framework for Harmonic Color Measures
 
Effectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesEffectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment Indexes
 
Introduction to Kernel Functions
Introduction to Kernel FunctionsIntroduction to Kernel Functions
Introduction to Kernel Functions
 
About Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceAbout Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV Space
 
Color Harmonization - Results
Color Harmonization - ResultsColor Harmonization - Results
Color Harmonization - Results
 
Wave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseWave Simulation Using Perlin Noise
Wave Simulation Using Perlin Noise
 
Similarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexSimilarity Maps Using SSIM Index
Similarity Maps Using SSIM Index
 
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationQualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and Reports
 
Month Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMonth Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJ
 
Color Palettes in R
Color Palettes in RColor Palettes in R
Color Palettes in R
 
Sigmoid Curve Erf
Sigmoid Curve ErfSigmoid Curve Erf
Sigmoid Curve Erf
 
Hue Wheel Prototype
Hue Wheel PrototypeHue Wheel Prototype
Hue Wheel Prototype
 
Cosine Curve
Cosine CurveCosine Curve
Cosine Curve
 
Triangle Mesh Plot
Triangle Mesh PlotTriangle Mesh Plot
Triangle Mesh Plot
 
Triangle Plot
Triangle PlotTriangle Plot
Triangle Plot
 
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesCapacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video Slides
 
Capacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogCapacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function Catalog
 

Último

Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
lenapinto
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 

Último (20)

O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
 
Poesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptxPoesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptx
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxCópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 

Smalltalk Presentation

  • 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
  • 3. HISTÓRICO Adele Goldberg. Dan Ingalls. Alan Curtis Kay. Adele Goldberg Dan Ingalls Alan Kay
  • 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.
  • 5. HISTÓRICO Genealogia Fortran Cobol Algol Fonte : Figura retirada do livro: “UML Metodologias e Ferramentas CASE”, Alberto Silva e Carlos Videira. Pascal Simula C Modula-2 Objective C Smalltalk C++ Eiffel Object Pascal Actor Java C# ADA
  • 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.