SlideServe
Menu
Préférences
© SlideServe · v2026

Smalltalk

aden avatar
23 diapositives · 434 Views · Aug 29, 2014

Smalltalk. Artur Lira Diego Lemos Lucas Figueiredo Thiago Rocha. Introdução. Surgiu em meados da década de 70 Visava atingir grande número de pessoas de faixas etárias distintas Orientada a objetos Fracamente tipada Simples implementação Não há tipos primitivos. História.

Smalltalk - slide 1
01 / 23Smalltalk
1 / 17

Télécharger la présentation

Smalltalk
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Smalltalk Artur Lira Diego Lemos Lucas Figueiredo Thiago Rocha

  2. Introdução • Surgiu em meados da década de 70 • Visava atingir grande número de pessoas de faixas etárias distintas • Orientada a objetos • Fracamente tipada • Simples implementação • Não há tipos primitivos

  3. História • Começou a ser desenvolvida no final dos anos 60 por um grupo de pesquisa da Xerox • Várias evoluções: - Smalltalk-71 ( parecido com o Logo) - Smalltalk-72 (adicionadas funcionalidades multimídia) - Smalltalk-76 (versão mais robusta) - Smalltalk-80 (estável) - Squeak(pra crianças); Strongtalk(Sun); GNU Smalltalk(Script);

  4. História • Smalltalk-80 • Voltado para o mercado ( HP,IBM, Apple) • Programas rodam sobre uma Máquina Virtual • Tornou-se padrão para as diversas versões do Smalltalk

  5. Paradigma de Programação • Paradigma Orientado a Objetos • Classes definem os objetos • Comportamento (definido nos métodos) • Estados Possíveis(atributos) • Instâncias (objetos) • Envio de mensagens a objetos • Objetos responderão a mensagens conhecidas por ele • Fim de programa  todas as mensagens enviadas foram respondidas

  6. Utilização • Simulação de modelos de sistemas • Automação de escritórios • Animação Gráfica • Informática Educativa • Instrumentos Musicais Virtuais • Editores de Texto • Bancos de Dados Genéricos

  7. Sintaxe • Literais • Variáveis • Atribuições • Mensagens • Expressões

  8. Sintaxe: Literais 42 -42 123.45 1.2345e2 2r10010010 16rA000 36rSMALLTALK = 80738163270632

  9. Sintaxe: Literais • Caracteres: $A • Strings: ‘Hello, world!’ • Symbols: #foo • Array de Symbols: #(1 2 3 4) • Blocos: [... Escopo ...]

  10. Sintaxe: Variáveis • Variáveis temporárias: • No topo dos métodos • Escritas entre barras verticais • Uma ou mais variáveis por espaço. | indice | | indice vogais |

  11. Sintaxe: Atribuições • Operador := • vogais := 'aeiou‘ A string ‘aeiou’ é criada na etapa de compilação e armazenada na variável vogais.

  12. Sintaxe: Mensagens • Receiver • Selector • Arguments • receptor := 42 fatorial • 2 raisedTo: 4 • 'hello world' indexOf: $o startingAt: 6 • 3 + 4

  13. Sintaxe: Expresões • 3 fatorial + 4 fatorial between: 10 and: 100 • 3 recebe a mensagem "fatorial" e retorna 6 • 4 recebe a mensagem "fatorial" e retorna 24 • 6 recebe a mensagem "+" e 24 como argumento e por fim retorna 30 • 30 recebe a mensagem "between:and:" com 10 e 100 como argumentos e retorna true. • 3 fatorial fatorial log • 3 + 4 * 5 = (3 + 4) * 5 ...?

  14. Sintaxe: Expresões | window | window := Window new. window label: 'Hello'. window open.

  15. Estruturas de Controle • Seleção condicional • C++: if((numero % 2) == 0) paridade = 1; else paridade = 0; • paridade = ((numero % 2) == 0))?1:0; • Smalltalk: • (numero \\ 2) = 0 ifTrue: [ • paridade :=1 • ] ifFalse: [ • paridade := 0 • ] • paridade := numero \\ 2 = 0 ifTrue: [1] ifFalse: [0]

  16. Estruturas de Controle • Repetição • C++: for(int i = 0; i < 3; i++) n *= n; • Smalltalk: 3 timesRepeat: [n := n * n]

  17. Estruturas de Controle • Repetição • C++: • int i = 0; while(i < tamanhoArray){ array[i++] = 0; } • Smalltalk: i := 1. [i <= array size] whileTrue: [ array at: i put: 0. i := i + 1 ]

  18. Métodos • Definição de método publico publish Transcript show: 'Hello, World!' • Objeto recebe mensagem  método com nome da mensagem é invocado • Objetos determinam em tempo de execução qual método a ser executado

  19. Implementação • Modificações em tempo de execução(interpretada) • Utilização de classes já existentes, na própria linguagem(reuso) • Tudo é modificável

  20. Vantagens • Puramente orientada a objetos • Polimorfismo e binding dinâmico • Flexibilidade • Reutilização • Dados abstratos e encapsulamento • Modificabilidade • Confiabilidade • Herança • Facilmente extensível

  21. Desvantagens • Não possui ordem de precedência para operações binárias • Devido a “fraca tipagem” pode ocorrer erros em tempo de execução, já que existe o risco de um objeto não entender uma mensagem

  22. Referências [1] SHARP, A. Smalltalk by Example: the Developer’s Guide.McGraw Hill Text, 1997. Disponível em: http://www.iam.unibe.ch/~ducasse/FreeBooks/ByExample/ . Acesso em: 26 mai 2007. [2] Smalltalk: site oficial. Disponível em: http://www.smalltalk.org/. Acesso em: 26 mai 2007. [3] Wikipedia Smalltalk. Disponível em: http://en.wikipedia.org/wiki/Smalltalk. Acesso em: 23 mai 2007. [4] Vista Smalltalk. Disponivel em: http://vistascript.net/vistascript/docuwiki/doku.php. Acesso em: 26 mai 2007.

  23. Dúvidas?