Сабж в первом приближении работает.
В нынешнем, совершенно неоптимизированном виде, на чистой математике и вызовах функций (рекурсивное вычисление чисел Фибоначчи) сейчас в 60 раз медленнее, чем нативный код C++.
Думаю, при оптимизации можно будет быстродействие несколько поднять.
Впрочем, ИМХО, и такая скорость тоже ничего.
Время вычисления 40-го числа Фибоначчи, сек:
code text
C++ (VC7) - 3.7
JBForth - 224.4
Perl 5.8.4 - 736.8
Это более 300 млн. функциональных вызовов. Т.е. JBForth сейчас обеспечивает порядка 5 млн. операций в секунду на 3ГГц машине. Вполне достаточно, ИМХО, для чистого программирования на нём разовых немассовых операций l2j (атака, использование скиллов, телепорты и т.п...)
В общем, даже на нынешнем уровне имеем более чем трёхкратное превосходство в скорости над Perl
(И, соответственно, до десятикратного - над PHP, но это уже лениво считать)
Реализован пока только базовый набор слов для создания своих определений и самый минимум операторов. В ближайших планах - оптимизация, забивка основных слов ядра и интеграция с l2j
Основные отличия от классического Форта:
- И основной стек и стек данных по умолчанию хранят Java-объекты
- Парсер входного потока написан на Java
- Полностью изменена идеология Форт-системы. Не больше непрерывного HERE, каждое слово компилируется в отдельную область.
- Работы со словарями пока не предвидется за ненадобностью
- Поиск слов при компиляции и интерпретации происходит средствами Java - HashMap.
- Движок шитого кода реализован на Java.
В остальном - постараюсь соблюсти совместимость со стандартом ANS-94.