Dispatch table explained

In computer science, a dispatch table is a table of pointers or memory addresses to functions or methods.[1] Use of such a table is a common technique when implementing late binding in object-oriented programming.

Perl implementation

The following shows one way to implement a dispatch table in Perl, using a hash to store references to code (also known as function pointers).

  1. Define the table using one anonymous code-ref and one named code-ref

my %dispatch = ("-h" => sub, "-g" => \&say_goodbye); sub say_goodbye

  1. Fetch the code ref from the table, and invoke it

my $sub = $dispatch;print $sub ? $sub-> : "unknown argument\n";

Running this Perl program as perl greet -h will produce "hello", and running it as perl greet -g will produce "goodbye".

JavaScript implementation

Following is a demo of implementing dispatch table in JavaScript:var thingsWeCanDo = ;

var doSomething = function(doWhat)

Virtual method tables

See main article: Virtual method table. In object-oriented programming languages that support virtual methods, the compiler will automatically create a dispatch table for each object of a class containing virtual methods. This table is called a virtual method table or vtable, and every call to a virtual method is dispatched through the vtable.

See also

References

Notes and References

  1. Web site: Goldfuss . Alice . Function Dispatch Tables in C . alicegoldfuss.com . 23 January 2021.