Bioworm писал(а):
А есть варианты?
можно использовать Фортовый байт-код -- есть фиксированный набор слов, каждому ставится
в соответствие свой байт (опкод команды). выполняется с помощью интерпретатора.
по необходимости набор команд расширяется.
плюсы:
- код не зависит от платформы, поэтому программы выполняются на любой железке с несколькими Кб памяти
- можно использовать самую навороченную отладку при выполнеии программ, аналогично решается многозадачность на системах, которые аппаратно ее не поддерживают
- если повязать несколько разнотипных компов в сеть (например кольцо RS232 или обычная
шина RS-485), на каждом узле сети можно запустить сервер выполняющий пакеты-задания в виде байт-кода
- интерпретатор элементарно пишется для любой системы на любом языке за пару часов, при этом элементарно цепляются любые внешние библиотеки (у Форта особенно с этим была традиционная жопа)
- на целевой системе не нужен полноценный Форт, а только маленький модуль-интерпретатор байт-кода, для 8086 у меня сейчас .exe занимает 25 Кб вместе с отладочной информацией, на асме вообще думаю можно утоптать килобайта в 4
минусы:
- естественно скорость (при необходимости часть критичного кода можно переписать в виде специализированных команд интерпретирующего ядра на асме)
- в текущей версии нет традиционной форт-системы, только кросс-компилятор для SP-FORTH, причем написан криво -- использую не словари, а мелкие/большие буквы
- для изменения набора команд ядра его нужно перекомпилировать, есть вариант грязного хака -- инлайнить машинный код, запуская его на выполнение с помощью специализированного опкода-префикса
подробнее см.
http://akps.ssau.ru[/url]