Blocks can group related expressions together, be treated as an unit and be called with or without parameters. Blocks provide all of Smalltalk's control structures. Parameter objects are defined in a section after the opening brace. A definition is terminated by a vertical line. Arguments are passed by reference.
Object based languages allow dynamic allocation.
However, all Prolog programs are stored as data structures which can be represented as trees, subprograms or subtrees are therefore handled in the same fashion as full-sized programs. The only difference in the level of data in relation to the entire program. Everything is an object with specific characteristics and behaviors. Objects use messages to communicate to each other. The only thing that an object knows about another object is the other object' s interface.