A Block represents a lexical closure, that is, a piece of compiled code that can be run on demand and need not be associated with a message in any class. Instances of Block support two messages, whileTrue: and whileFalse:, which are used to construct while loops. Additional Block protocol is defined in Exception handling classes, Block evaluation methods, and Process-related block methods.