Este artigo não cita fontes confiáveis. Ajude a inserir referências. Conteúdo não verificável pode ser removido.—Encontre fontes: ABW • CAPES • Google (N • L • A) (Março de 2011) |
Smalltalk | |
---|---|
Paradigma | Orientação a Objetos |
Surgido em | Início em 1969, tornou-se público em 1980 |
Criado por | Alan Kay, Dan Ingalls, Adele Goldberg |
Estilo de tipagem | dinâmica |
Principais implementações | Squeak, GNU Smalltalk, VisualWorks |
Dialetos: | Squeak |
Influenciada por | Lisp, Simula, Logo, Sketchpad |
Influenciou | Objective-C, Self, Java, Dylan, AppleScript, Lisaac, D, NewtonScript, Python, Ruby, Scala, Perl 6, CLOS, Falcon, Io, Ioke |
Extensão do arquivo: | .st |
Smalltalk-80, ou simplesmente Smalltalk, é uma linguagem de programação orientada a objeto dinamicamente tipada.
Em Smalltalk tudo é objeto: os números, as classes, os métodos, blocos de código, etc. Não há tipos primitivos, ao contrário de outras linguagens orientadas a objeto; strings, números e caracteres são implementados como classes em Smalltalk, por isso esta linguagem é considerada puramente orientada a objetos. Tecnicamente, todo elemento de Smalltalk é um objeto de primeira ordem.
Os programadores definem classes de objetos em suas aplicações para imitar (ou simular) o mundo real. Estas classes de objeto são organizadas hierarquicamente, de modo que seja possível fazer novos objetos com características de outros objetos, com poucas mudanças.
Smalltalk é relativamente fácil de aprender comparado a linguagens como C++ e ADA. O código-fonte Smalltalk é fácil de ler, o que o torna a linguagem de programação ideal para iniciantes.
O Smalltalk evoluiu através de várias iterações. Do Smalltalk-71 (que parecia um pouco com o Logo) e Smalltalk-72 (na qual muitas das funcionalidades de mídia foram implementadas, da capacidade de desenhar até programas de música e linguagens de programação icônicas) para chegar no Smalltalk-76, que foi o primeiro Smalltalk moderno. Dan Ingalls foi o principal implementador nessa época, e o criador do Smalltalk-76. Ted Kaehler foi outro implementador do equipe original do Learning Research Group, desenvolvendo o sistema de música para o Smalltalk-72, uma versão da tartaruga do Logo para Smalltalk, além da estrutura de memória orientada a objetos.
O Smalltalk-80 foi lançado para computadores de diversas companhias (Hewlett-Packard, DEC, Apple, IBM, Tektronix) como um teste de portabilidade do ambiente. Ele foi implementado como um compilador de bytecode. O código era de fato compilado, porém não para a linguagem de máquina nativa do computador que executava aplicação e, sim, compilado para uma linguagem de máquina de um computador que não existia: a máquina virtual. A vantagem desse esquema que foi criado com o Smalltalk-80 é que ele tornou-se extremamente portável.
O Smalltalk-80 tornou-se um padrão para as diversas versões de Smalltalk. Depois disso, a Xerox resolveu criar uma empresa chamada ParcPlace para cuidar do desenvolvimento do Smalltalk, gerando novas versões como ObjectWorks e, posteriormente, VisualWorks. Outras versões foram criadas por outras companhias, tais como: Smalltalk/V da Digitalk e o SmalltalkAgents da Quasar; todos com sintaxe e estruturas semelhantes, porém o código da interface gráfica era radicalmente diferente.
A sintaxe de Smalltalk-80 é bastante diferente das linguagens tradicionais.
Ao invés do que é usado na maioria das linguagens tradicionais, em Smalltalk utiliza-se sempre a ordem <objeto recebedor> <mensagem>.
No exemplo abaixo, o método publish é formado de uma linha, onde se envia a mensagem show para o objeto Transcript, com o parâmetro Hello, world (que é um objeto).
publish Transcript show: 'Hello, world!'Em Smalltalk não há o Polimorfismo Universal Paramétrico nem o Ad-Hoc por Coerção. Sendo assim só há implementado o Universal por Inclusão e o Ad-Hoc por Sobrecarga. Exemplos:
Linguagens de programação | |
---|---|
Esotéricas · Comparação · História · Turing completude · Programa Olá Mundo · Algoritmo TPK · Quine | |
Categoria · Lista |