Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вс июн 24, 2018 03:21

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 93 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7
Автор Сообщение
 Заголовок сообщения: Re: моя форт-система, которая потихоньку пишется
СообщениеДобавлено: Сб май 05, 2018 14:09 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 553
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Портировал библиотеку automate.f от ~yz на Нову
Портирована она почти полностью. Исключение: цикл FOREACH и расшифровка ошибок (будут вылезать кракозябры).
Работоспособность проверял бегло.

Как пользоваться СПФ-скими либами из Новы?

Надо подключить окружение: SPF/ENV+.F
Всё, портированные либы будут корректно подключаться.
Поскольку в Нове слов меньше, может потребоваться слой совместимости - файл WORDS.F (знаете, как назвать попонятней, предлагайте).

Как подключается automate

Код:
SPF/ENV+.F
WORDS.F
~YZ\LIB\AUTOMATE.F



Либу выложу позже. Когда ещё Нову и либы к ней пополню

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: моя форт-система, которая потихоньку пишется
СообщениеДобавлено: Ср май 09, 2018 14:08 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 553
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Нова 1.02, исходники, либы, портированный COM

Что изменилось?
TRANSLATE-FILE стал пользовательским вектором.
Пользовательские вектора тоже изменились. Т.к. они определяются почти на финишной прямой, то USER-VECT-CODE определяется на среднем уровне, что позволило вывести его из параметризации. Это слово уже само отвечает за компиляцию.

Добавлена возможность загружать файлы в форт-систему без обработки. В принципе, это и так делается одной строчкой, но Нова дополнительно позволяет для этих целей пользоваться стеком окружений и путём используемого файла.
Для этого указывайте в конце пути к файлу :BIN
К примеру, FILE-TEST.F:BIN
Пример использования можно посмотреть в ~er\float\code\include.f

Добавлена библиотека макросов ~er\macro\macro.f
Позволяет определять простые макросы и константы, которые нигде не отсвечивают. Вся служебка хранится в стеке возвратов и при окончании трансляции очищается откатом. Откаты решают всё! :D

Портирована работа с COM - automate.f от ~yz
Как я понял, эта либа писалась достаточно давно. Иначе как объяснить наличие BL WORD COUNT вместо PARSE-NAME :)

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: моя форт-система, которая потихоньку пишется
СообщениеДобавлено: Пт июн 22, 2018 14:19 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 553
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Нова 1.03

Изменения:
Нова может скомпилировать саму себя по исходникам.
В процессе переписал часть стекового манипулятора (в 5.1). Из-за различий версий код компилировался разный, что мешало проверить "правильность" системы. После этого живо были ликвидированы остальные несуразности.
Стоит отметить, что компиляция форт-образа ведётся Новой для работы с теми же абсолютными адресами, что и в используемом форте (т.е c 0x00402000).

Добавлена возможность сохранить наработанную форт-систему. Для этого добавлена библиотека (компилируется во врем. словарь, в форт-образ не идёт).

Добавлены слова:
MIN
MAX
SSET? \ a1 a2 ... an n b --- a1 a2 ... an n flag проверить элемент b на вхождение в множество, вернуть флаг (-1 да, 0 нет).

Думаю, пора портировать на 64 бита.
У меня тут как раз fasm с дизассемблером завалялись :)
Обкатаю пару примитивов в фасме для работы с виндой (там fastcall), допишу форт-ассемблер, подготовлю стек. манипулятор и пр. Всё дело проверю в дизассемблере (не очень мне нравится 64бита в интеле, инструкцию порезали гады :dmad; )

По идеям:

Добавить возможность использовать дополнительные таблицы предкомпиляции в словарях. Т.е. сначала шерстятся некие куски памяти в словарях, а потом основная таблица.
Зачем: есть либы (к примеру лок. переменные), существующие в временных словарях. Они ест-но пишут обработчики в основную таблицу. Но стоит врем. словарь освободить, то может случиться ошибка (запрещённый адрес, "не то" значение и проч.
Плюсы: надёжность, легко реализуется (освежил память, потребуется изменить только одно слово).
Минусы: завязка на словарь (чего не хочется).

Компилировать параметрические слова через таблицу предкомпиляции.
Плюсы: логичность, расширяемость (хотя не думаю, что кому-то понадобится определять новое параметрическое слово)
Минусы: ?
А так ли оно надо? Сейчас обработка параметрических слов хоть и кастрирована по сути, но проста. Да и опр. новых парам. слов маловероятно.

По либам:
JSON основная часть работы сделана. Уже может транслировать JSON-файлы, и просто отрезки на этом языке.
Добавлено слово DUMP

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 93 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB