Expressões de mensagem

Uma expressão de mensagem representa o envio de uma solicitação a um objeto receptor para realizar uma determinada operação. A cada expressão de mensagem corresponde uma resposta do receptor.

As expressões de mensagem em Smalltalk equivalem à chamada de procedimento ou função em linguagens convencionais, onde o receptor é um parâmetro privilegiado. O seletor da expressão especifica qual a operação a ser realizada e permite localizar o método que implementa a operação. Uma expressão de mensagem pode conter zero ou mais argumentos. A sintaxe de uma expressão de mensagem é

<receptor> <mensagem>

Existem 3 tipos básicos de expressão de mensagem, a saber, unárias, binárias e mensagens com palavras-chave.

Por meio de prefixos de atribuição é possível associar o objeto resultado da expressão a uma variável , como na expressão abaixo:

list := Array new: 3

Nesse caso, após a criação da instância de Array, a variável list passará a referenciá-la.

Conhecidas os diferentes tipos de expressões, cabe agora ver o mecanismo de "parsing "das expressões de mensagem, ou seja, as regras de precedência.