29 lines
1.7 KiB
Markdown
29 lines
1.7 KiB
Markdown
---
|
|
title: "First-class message"
|
|
chunk: 1/1
|
|
source: "https://en.wikipedia.org/wiki/First-class_message"
|
|
category: "reference"
|
|
tags: "science, encyclopedia"
|
|
date_saved: "2026-05-05T11:33:49.088591+00:00"
|
|
instance: "kb-cron"
|
|
---
|
|
|
|
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.
|
|
|
|
|
|
== See also ==
|
|
Delegate (object-oriented programming)
|
|
First-class function
|
|
|
|
|
|
== Notes ==
|
|
|
|
|
|
== 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". |