Reference articles on history, science, culture and more
Encyclopedia

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.

Watch videos about First-class messageExplainers and documentaries on YouTube (opens in a new tab)

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.