L'envoi de message est un appel de méthode d'un objet. L'objet destinataire de l'envoi de message est appelé receveur . On parle de sélection simple car il n'y a qu'un seul receveur. Syntaxiquement, l'envoi de message s'écrit différemment selon le nombre de paramètres. Chaque paramètre est introduit par un mot-clé suffixé par ':'.
méthode unaire receveur sélecteurméthode binaire receveur sélecteur: argument
méthode n-aire receveur sélecteur: argument ... sélecteur: argument
Le sélecteur est l'union des mots-clés sélecteur = sélecteur:... sélecteur. Exemple :
corner: aPoint "Answer a new Rectangle whose origin is the receiver and whose corner is aPoint. This is one of the infix ways of expressing the creation of a rectangle." ^Rectangle origin: self corner: aPoint
La seule structure de contrôle est l'envoi de message. Deux envois de message sont séparés par un '.'. Deux envois de messages consécutifs au même receveur sont séparés par un ';'(cascade). Les structures de contrôle habituelles (alternatives,itérations) sont donc implantées par des envois de message. Plus précisément ce sont des méthodes de la classe Boolean pour les alternatives et de la classe Collection pour les itérations.