Artur Lira Diego Lemos Lucas Figueiredo Thiago Rocha

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.
Introdução a Programação Orientada a Objetos
C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:
Paulo Marques Hernâni Pedroso
JavaScript O JavaScript é uma linguagem de scripting, orientada a objectos e independente de plataformas Criada pela NetScape Código embebido em paginas.
PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma.
O Essencial sobre Linguagens de Programação Luís Caires Maio 2005.
PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena
Orientação a Objetos: Encapsulamento e Classificação
Orientação a Objetos: Encapsulamento e Classificação
Linguagens de Programação Orientadas a Objetos
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
Programação Básica em Java
Rafael Pinto Frederico Corrêa
Introdução ao paradigma de programação: Orientado a Objetos
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Introdução à Programação
Programação Orientada a Objetos
Programação orientada a objetos com Java
PROGRAMAÇÃO ou LINGUAGEM C?
PROGRAMAÇÃO ou LINGUAGEM C?
1 MAC 413/5715 – Seminário Prof. Fabio Kon Self: The Power of Simplicity David Ungar and Randall B. Smith OOPSLA 1987 Cristina Fang Eduardo Miyoshi Kasa.
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
TÉCNICAS DE PROGRAMAÇÃO II
Paradigmas de programação
Curso de extensão em Desenvolvimento Web
JAVA: Conceitos Iniciais
Polimorfismo em C#.
Introdução a linguagem Python
Unidade I: “Dê um mergulho rápido”
Aula prática - análise contextual
Programação Orientada a Objetos
Métodos de Construção de Software: Orientação a Objetos
Estudo dos Conceitos e Paradigmas de Programação
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Classes, Objetos, Atributos e Métodos JAVA
Ruby Viviane Souza (vess).
Artur Lira Diego Lemos Felipe Queiroga Lucas Figueiredo
Introdução à Programação Orientada a Objetos com Java Paulo Borba Centro de Informática Universidade Federal de Pernambuco Programação Imperativa (e Ponteiros.
Professor: Márcio Amador
Orientação a Objetos Parte I
Herança em POO Importante:
SISTEMAS DISTRIBUIDOS Aula 4
Aula Prática 1 Monitoria IP/CC (~if669). Verificação Dinâmica de Tipos Métodos de superclasses e subclasses: Uso de métodos de subclasses quando se é.
Aula prática 14 Orientação a Objetos – C++ Parte 2
PROGRAMAÇÃO ou LINGUAGEM C?
Smalltalk Grupo Anderson Bistafa Hugo Carlos
Aula 1 – Profª Danielle Costa
Linguagem I Strings.
SmallTalk Caio Cezar Rodrigues Quirino Daniel Mário Adamis Fabio Venicius Oliveira Rafael Barbosa Januzi Roger Wellington.
Ruby André Braga Patrícia Lustosa. Yukihiro Matsumoto (“Matz”), 1993 Perl Smalltalk Eiffel Ada Lisp “Natural, not simple” “More powerful than Perl and.
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Conceitos Básicos e Manipulação de Objetos
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Bruno Inojosa MCP .NET Framework
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
Linguagem JAVA Ariane Machado Lima.
Introdução ao C++ para programadores OO Instrutores: Francisco Carvalho, João Paulo do Monte, Renato Viana Ferreira {fcfl, jpsml,
Eliane Rufino Fernandes TRABALHO DE LINGUAGEM DE PROGRAMAÇÃO:
Introdução à Programação Orientada a Objeto
Smalltalk Artur Lira Diego Lemos Lucas Figueiredo Thiago Rocha.
Array e ArrayList LPOO – 01/09/14.
Influencias sobre o Projeto da Linguagem
Linguagem Java Programação II.
Raniere ferreira do prado
1. 2 Prof. Maurício Rodrigues de Morais Programação Orientada a Objetos II.
1.
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Transcrição da apresentação:

Artur Lira Diego Lemos Lucas Figueiredo Thiago Rocha 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 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);

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

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

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

Sintaxe Literais Variáveis Atribuições Mensagens Expressões

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

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

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 |

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

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

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

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

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]

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

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 ]

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

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

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

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

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.

Dúvidas?