.:Публикации:. [www.karlson.ru]


Вперед: Литература Вверх: Приложение Б. Псевдокод системы Назад: Организация вызовов   Содержание

Вычисление аргументов

Когда динамический модуль вызывает метод getslot, происходит следующее:
  1. проверяется, был ли вызов осуществлен с ручным вычислением параметров (у объекта класса Module свойство _MANUAL выставлено в единицу), если с автоматическим, то происходит чтение из хеша с именем _SLOT и все,
  2. иначе требуется ручное вычисление. Тогда из стека вызовов извлекается ссылка на объект Module вызвавшего класса, и для этого объекта вызывается обработчик команд виртуальной машины. Как дополнительный аргумент ему передается номер аргумента в таблице. Полученный результат возвращается методом getslot,
  3. когда обработчик завершает вычислять аргумент, он записывает вычисленное значение в хеш с именем _SLOT (чтобы не вычислять аргумент повторно); в свою очередь, счетчик команд возвращается к вызову callm чтобы быть готовым обработать следующий запрос на вычисление аргумента


...домик на крыше...,поиск,гостевая книга,cv. Be free, use Linux!