First-class message

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Spoon! (talk | contribs) at 07:05, 24 September 2014. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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

Notes

  1. ^ Shroff & Smith
  2. ^ Shroff & Smith
  3. ^ Shroff & Smith

References

  • Susumu Nishimura (1998). "Static Typing for Dynamic Messages". POPL '98.
  • Michelle Bugliesi & Silvia Crafa (1999). "Object Calculi for Dynamic Messages". FOOL 6.
  • Martin Müller & Susumu Nishimura (2000). "Type Inference for First-Class Messages with Feature Constraints". International Journal of Foundations of Computer Science 11:1.
  • François Pottier (2000). "A versatile Constraint-based Type Inference System". Nordic Journal of Computing.
  • Paritosh Shroff & Scott F. Smith. "Type Inference for First-Class Messages with Match-Functions".