First-class message
Object-oriented programming language feature
In object-oriented programming, a programming language is said to have first-class messages or dynamic messages if in a method call not only the receiving object and parameter list can be varied dynamically (i.e. bound to a variable or computed as an expression) but also the specific method invoked.
Typed object-oriented programming languages, such as Java and C++, often do not support first-class methods. Smalltalk only support them in an untyped way. In Objective-C (Cocoa), you can use NSInvocation to represent first-class messages in a way that is aware of the types at runtime; however, safe use still relies on the programmer.
Some theoretical progress has been made to support first-class messages in a type-safe manner, but none of the proposed systems has been implemented in a programming language, possibly due to their complexity.
Sources and credits
This article is adapted from the Wikipedia article “First-class message”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.