Benutzer-Werkzeuge

Webseiten-Werkzeuge


ru:projects:nova-forth

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ru:projects:nova-forth [2019-01-19 15:55]
victor [Особенности системы]
ru:projects:nova-forth [2019-02-05 16:19] (aktuell)
victor [Особенности системы]
Zeile 10: Zeile 10:
   * Имеется стек окружений, который используется для поиска подключаемых файлов.   * Имеется стек окружений, который используется для поиска подключаемых файлов.
  
-Родоначальником Nova-Forth является другой русский форт [[ru:projects:sp-forth|SP-Forth]]. Но от последнего Nova отличается прежде всего частым использованием откатных операций и более активным использованием словарей. +Родоначальником Nova-Forth является другой российский форт [[ru:projects:sp-forth|SP-Forth]]. Но от последнего Nova отличается прежде всего частым использованием откатных операций и более активным использованием словарей. 
  
-Также Nova-Forth не придерживается стандартов, поэтому в ней хватает нестандартных слов.+Также Nova-Forth не придерживается стандартов, поэтому в ней хватает нестандартных слов. В частности для работы со стеком возвратов.
 Некоторые из них: Некоторые из них:
   * RALLOT ''byte -- addr'' выделить память в байтах на стеке возвратов и дать указатель на неё, на стеке возвратов также имеется метка для отката памяти (можно сделать, к примеру ''R> RP!''   * RALLOT ''byte -- addr'' выделить память в байтах на стеке возвратов и дать указатель на неё, на стеке возвратов также имеется метка для отката памяти (можно сделать, к примеру ''R> RP!''
   * RPICK ''n -- b'' положить на стек данных значение отстающее от вершины стека возвратов на **n** ячеек   * RPICK ''n -- b'' положить на стек данных значение отстающее от вершины стека возвратов на **n** ячеек
-  * MOVE->R ''addr u -- Raddr u'' выделить память на стеке возвратов под строку и перенести её туда, положить на стек данных аказатель на строку и её длину. На стеке возвратов также имеется метка для отката памяти+  * MOVE->R ''addr u -- Raddr u'' выделить память на стеке возвратов под строку и перенести её туда, положить на стек данных указатель на строку и её длину. На стеке возвратов также имеется метка для отката памяти
   * 2MOVE->R ''addr1 u1 addr2 u2 -- Raddr u1+u2'' выделить память на стеке возвратов, чтобы туда поместились 2 строки, и в выделенной памяти "сложить" эти строки. Положить на стек данных указатель на новую строку и её длину. На стеке возвратов также имеется метка для отката памяти     * 2MOVE->R ''addr1 u1 addr2 u2 -- Raddr u1+u2'' выделить память на стеке возвратов, чтобы туда поместились 2 строки, и в выделенной памяти "сложить" эти строки. Положить на стек данных указатель на новую строку и её длину. На стеке возвратов также имеется метка для отката памяти  
  
ru/projects/nova-forth.1547909705.txt.gz · Zuletzt geändert: 2019-01-19 15:55 von victor