ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
265397 Топик полностью
Evgeny_CD, Архитектор (04.08.2011 14:19, просмотров: 124) ответил Evgeny_CD на Кстати, сюда в тему будет одна моя очень старая идея по «компилирующему симулятору».
Так можно избежать проблемы библиотек. Которые сильно разные на разных платформах. Делаем для каждой либы "виртуализирующий вызов" и делаем массив ловушк для адресов. Есть функция, которая берет некие данные из памяти, передает их либе, и потом кладет обратно результат. Делаем большоооой big loop с метками. инклюдим все либы, какие только есть, и пишем такие обертки. В начале лупа стоимт перехватчик, который отдает управление отдельному потоку управления. Тот, в свою очередь, ждет команд от "виртуальной исполняемой среды". В C++ суперкоде родился кусок данных, которые я хочу обработать в библиотеке на целевом проце (чтобы либных клюков не возникло). Я даю этот кусок данных потоку управления и передаю упарвление ему. Он кладет эти данные (преобрахования индианности и пр) в область данных функции в компилирующем симуляторе и выставляет значенние переменной - куда идти от начала лупа. И отдает управление потока "процессору". Тот выполняет переход на фукнцию, отрабатывает ее, снова возвращяется на луп. Луп замирает, поток управления берет обработанные данные, трансформирует и отдает С++ суперпотоку! Бинго!!! Так можно многие глюки побороть...