Article · Wikipedia archive · Last revised Jun 10, 2026

First-class message

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 but also the specific method invoked.

Last revised
Jun 10, 2026
Read time
≈ 1 min
Length
223 w
Citations
3
Source

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.1 Smalltalk only support them in an untyped way.2 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.3

See also

See also

Notes

Notes

  1. Shroff & Smith
  2. Shroff & Smith
  3. Shroff & Smith
References

References