Устроил полный рефакторинг. Почти готова возможность подключения внешних библиотек.
Сразу после запуска доступно 525 команд — вышло много комбинаторных взрывов с типизированными командами. В этом деле M4 очень помогает избежать копипаста.
Устроил полный рефакторинг. Почти готова возможность подключения внешних библиотек.
Сразу после запуска доступно 525 команд — вышло много комбинаторных взрывов с типизированными командами. В этом деле M4 очень помогает избежать копипаста.
2 комментария:
Интересно, тоже как-то давно пробовал реализовывать форт, но не смог сделать ветвление, которое меня бы устраивало)
У тебя типизированный стек? Имхо он не очень удобен, придется сильно расширять набор слов. Самое интересное - дать возможность "интерпретатору" полный контроль над памятью(организовать работу со строками/массивами на форте), но к сожалению теряется безопасность и пригодность для встраивания.
Если интересно, то тут есть всё, что готово
http://code.google.com/p/igrodelica/wiki/DForth
Да, стек типизированный, я всё делаю очень низкоуровневым — работа с низкоуровневыми типами, доступ к памяти. Всё это необходимо для совместимости с программами на других языках, под что собственно его и делаю. Но, может быть, напишу библиотеку, при подключении которой будет появляться динамическая типизация.
На безопасность я полностью забил — в форте трудно делать какие бы то ни было проверки :) Я сделаю отладочный режим, в котором будет отслеживаться происходящее и выдаваться варинги.
Строки я частично реализовал — pchar и строки с автоматическим подсчётом ссылок на себя.
Вообще, планирую сделать гибкую систему создания своих структур аля массивы, struct, классы и т.д.
Отправить комментарий