эхехех.
yug писал(а):
Идеология интел-процов, начиная с 8086 и кончая современными многоядерными 4-ми пеньками с гипертрейдингом базируется как известно на работе с сегментами (в защищённом режиме их называют также секциями). В то же время идеология форт-компилятора - это весьма вульгарно понятый принцип фон Неймана - "вали код и данные в общую кучу - там разберёмся". Противоречие, однако.
И ещё один моментик. В защищённом режиме в секцию кода запрещено не только писать, но и читать оттуда иначе как через EIP/IP. Короче, каменюка сыграет исключение, и префикс CS: не прокатит, как в реальном.
вы не правы по той причине, что все (практически без исключений) форты работают с той моделью памяти, которую предлагает ОС (либо наиболее простую из моделей). Многосегментных форт-систем было много под досом, а вот под виндой это не удобно 8( с другой стороны, приведенная вами проблема достаточно просто обойдена в DSFORTH(который по мативам СПФа сделан). Да и вариантов разрешения проблем почти всегда несколько.
yug писал(а):
Вопрос: как при таких драконовских условиях форт-система может работать, причём и с сохранением традиционной "идеологии кучи"? Ведь она должна и компилировать новый код, и выполнять его.
не верно с идеалогией кучи. Не редко Форт-системы держат код, данные, имена в различных местах, просто сейчас времена виндов, и так получается проще. Впрочем и у линухов память "плоская".
yug писал(а):
Была такая задумка: спроектировать форт-систему специально под архитектуру Пентиума-4/Атлона с разделением ресурсов по сегментам. Но даст ли это какой-нибудь выигрыш?
скорее проигрыш по скорости и проигрыш в простоте.
yug писал(а):
Прямой шитый код уже не катит - в нём "идеология кучи" выражена сильнее всего. Косвенный шитый... О его независимости от платформы можно слагать легенды. Да и для разделения ресурсов он приспособлен как нельзя кстати:
1. машкод присутствует только в низкоуровневых словах;
2. в самой форт-системе он представлен всего одной ячейкой, правда используемой нерационально: она ссылается на следующую ячейку, с которой код и начинается.
про следующую ячейку не понял 8( поясните.
есть еще более красивая, но пока не реализованная модель, которая позволяет безнаказанно тягать код по памяти:)
один у нее недостаток - скорость низкая.
про то, что создать "защищенную форт-систему" только с косвенным ШК я говорил все время, правда Михаил меня так и не понял 8(
yug писал(а):
Но что мешает перенести этот самый код в другое место, не трогая ничего в высокоуровневых словах? Правда, есть одно "но", этакая ложечка дёгтя: структура < CREATE ... DOES> ... >. Её невозможно сделать традиционными форт-средствами без фокусов с машинным кодом. Есть древнее решение этой проблемы - фиговское < <BUILDS ... DOES> ... >, но оно было "при царе Горохе, когда людей было трохи" и сейчас не используется.
утверждение не верно. Все можно. Только обычно проще сделать использовав трюк. Причем проще не потому, что проще, а потому что лень прикинуть несколько вариантов и выбрать лучший. В моем форке
http://fforum.winglion.ru/viewtopic.php?t=531 DOES> высокоуровневый, например.
насчет builds не помню, да и не прижилось.