Frage

Ich plane, über eine dynamische Verknüpfung zu meinen smalltalk Dialekt umzusetzen. Das Problem ist, über Meldung zu erhalten vorbei mit dynamischer Verknüpfung zu arbeiten.

Nachricht vorbei sich als dies so einfach ist: eine Nachricht mit einem Wähler an das Objekt gesendet wird, wählt das Ziel, ein Verfahren Anpassung mit dem Wähler oben aus ihm Protokolls, verarbeiten dann die Daten mit der Meldung gebündelt und gibt ein Ergebnis zurück.

In der bildbasierten Implementierungen kann eine Nachricht implementieren in sehr einfacher Weise vorbei - Ihre Nachricht Selektoren nur ganze Zahlen aus der globalen Symboltabelle übersetzt werden kann, können Sie Ihre Protokolle werden nur Hash-Tabellen mit Zahlen und Adressen in ihnen. es ist alles in ein ein großes Bild mit dieser globalen Symboltabelle zusammengestellt angenommen wird.

Bei der dynamischen Verknüpfung, können Sie nicht eine Symboltabelle auf einen korrekten Selektor zeigt nehmen. Sie können mit der Verwendung von Zeichenketten als Selektoren, um das Problem drehen, aber die Sprache Verhängnis langsamer zu sein.

Es gibt einen Weg, und es beinhaltet die Protokolle zu kopieren und eine Tabelle der Wähler für den Prozess, sie richtig zu verlegen. Aber es klingt wie ein ziemlich viel Arbeit.

Gibt es bessere Möglichkeiten, dieses Problem zu lösen? Auch ist die dynamische Verknüpfung wert? Wie kann ich die Verlagerung für die Wähler und Protokolle implementieren?

War es hilfreich?

Lösung

Sicher, dass Sie eine globale Symboltabelle übernehmen können, müssen Sie nur noch aktualisieren und zu Verbindungszeitpunkt sicherzustellen, dass die Codes nur Symbolinstanzen aus dieser Tabelle verwendet. Haben Sie einen Blick auf Squeak? Der Ladecode ist auf Image-Ebene (nicht VM) so ist es einfach von jedem Quietschen Bild zu sehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top