WingLion писал(а):
вопрос писал(а):
Кстати, возможно, очень хорошо ложится на "редуцированный форт"
Возможно. Если я правильно понял:
А@ B@ OPERATION C! \ взять две переменные провести операцию, сохранить в третьей.
DP@+ DP@+ ADD DP-! \ взять два элемента верхнего стека, сложить положить обратно в верхний стек
Да, приблизительно так, хотя можно и (немного) по другому - тут уместно говорить "злосчастная свобода".
Мне кажется, для любого неоформившегося проекта основное - избавиться от некоторых ... иллюзий. Т.е. для данного случая нужно, пожалуй, решить - можно ли достичь, что будет только
1 форт с хитро пересекающимися стеками или всё же 2, думается, нужно смириться, что это 2 форта. Это, по крайней мере, избавляет от необходимости подстраивать взаимодействие стеков под каждую стадию развития проекта; то есть, тут нежелательно сохранять неявную надежду на то, что это всё-таки один форт, только из 2 слоёв.
Альтернатива - подгрузка и свопинг - тогда стек один, немного сложнее железо.
Ничего, видимо, не мешает сделать "форт-процессор со стеком в памяти". Тогда стоит всё-таки задаться вопросом, а нужен ли при этом второй, "железный" стек. Если от него избавиться, форт вновь только один
Перебрав эти три варианта, можно найти хорошее решение.
Я всё-таки рекомендую "редуцированный" форт. Он оставляет больше возможностей и вариантов, в том числе позволяя, если вдруг что-то со скоростью, реализовать некоторые свои части в железе, не меняя принципиально алгоритм и не трогая другие куски