first-class message
{{Short description|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.Shroff & Smith Smalltalk only support them in an untyped way.Shroff & Smith In Objective-C (Cocoa), you can use {{mono|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.Shroff & Smith
See also
Notes
{{reflist|2}}
References
- Susumu Nishimura (1998). "[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.53.7730&rep=rep1&type=pdf 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). "[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.14.3795&rep=rep1&type=pdf Type Inference for First-Class Messages with Feature Constraints]". International Journal of Foundations of Computer Science 11:1.
- François Pottier (2000). "[https://dl.acm.org/doi/abs/10.5555/763845.763849 A versatile Constraint-based Type Inference System]". Nordic Journal of Computing.
- Paritosh Shroff & Scott F. Smith. "[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.114.4468&rep=rep1&type=pdf Type Inference for First-Class Messages with Match-Functions]".
Category:Object-oriented programming
{{comp-sci-stub}}