Инструменты пользователя

Инструменты сайта


ru:projects:nova-forth

Это старая версия документа!


Nova-Forth

32-битная нативная форт-система для ОС Windows.

Особенности системы

  • Система генерирует машинный (native) код.
  • Каждый словарь может иметь свой обработчик нераспознанных строк.
  • В словарях используется хешированный поиск, дополнительно поиск ведётся по 4 цепочкам вместо 1.
  • Можно задать свои собственные инлайн-примитивы, пометив созданное слово флагом INLINE.
  • В поставку форт-системы входят оптимизатор и препроцессор (подключаются отдельно).
  • Имеется стек окружений, который используется для поиска подключаемых файлов.

Родоначальником Nova-Forth является другой русский форт SP-Forth. Но от последнего Nova отличается прежде всего частым использованием откатных операций и более активным использованием словарей.

Также Nova-Forth не придерживается стандартов, поэтому в ней хватает нестандартных слов. Некоторые из них:

  • RALLOT byte – addr выделить память в байтах на стеке возвратов и дать указатель на неё, на стеке возвратов также имеется метка для отката памяти (можно сделать, к примеру R> RP! )
  • RPICK n – b положить на стек данных значение отстающее от вершины стека возвратов на n ячеек
  • MOVE→R addr u – Raddr u выделить память на стеке возвратов под строку и перенести её туда, положить на стек данных аказатель на строку и её длину. На стеке возвратов также имеется метка для отката памяти
  • 2MOVE→R addr1 u1 addr2 u2 – Raddr u1+u2 выделить память на стеке возвратов, чтобы туда поместились 2 строки, и в выделенной памяти «сложить» эти строки. Положить на стек данных указатель на новую строку и её длину. На стеке возвратов также имеется метка для отката памяти
ru/projects/nova-forth.1547909705.txt.gz · Последнее изменение: 2019-01-19 15:55 — victor