title: What are reasonable underlying implementations of virtual or dynamic dispatch?
body: <p>The most popular way (or so I heard) seems to be a virtual table, but what other alternatives are there?</p>
  
  <p><a href="https://stackoverflow.com/questions/4352032/a-question-about-virtual-mechanism-in-c">This question</a>'s answers provide a few examples, like walking the hierarchy at runtime or a mapping the addresses of objects to some larger information table, but the question is pretty C++ specific, although the answers are mostly not.</p>
  
  <p>So, here is a language-agnostic (or so I hope) question:</p>
  
  <p><strong>What other ways of implementing virtual / dynamic dispatch are there other than vtables?</strong></p>
  
  <p>Note that this is <em>not</em> about trade-offs between speed, ease of implementation, code size, etc, though those would be very nice to have in the answers.</p>