Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: "Бессловарный" форт? |
|
|
Ilya писал(а): ТС спрашивал пример сабжа, таки есть пример http://mecrisp.sourceforge.net/Хм, а разве там нет словаря?
[quote="Ilya"]ТС спрашивал пример сабжа, таки есть пример [url]http://mecrisp.sourceforge.net/[/url][/quote]Хм, а разве там нет словаря?
|
|
|
|
Добавлено: Вт дек 14, 2021 12:11 |
|
|
|
|
|
Заголовок сообщения: |
Re: "Бессловарный" форт? |
|
|
ТС спрашивал пример сабжа, таки есть пример http://mecrisp.sourceforge.net/
ТС спрашивал пример сабжа, таки есть пример [url]http://mecrisp.sourceforge.net/[/url]
|
|
|
|
Добавлено: Сб дек 11, 2021 12:16 |
|
|
|
|
|
Заголовок сообщения: |
Re: "Бессловарный" форт? |
|
|
Ну если не так, то как ещё без словаря? Иначе без словаря и не возможно, как по мне.
Ну если не так, то как ещё без словаря? Иначе без словаря и не возможно, как по мне.
|
|
|
|
Добавлено: Чт дек 09, 2021 16:58 |
|
|
|
|
|
Заголовок сообщения: |
Re: "Бессловарный" форт? |
|
|
KPG писал(а): ... А ассоциативный массив special чем не словарь? gregorbednov писал(а): ... Словарик в Форте - это некая сущность, в которую можно добавлять слова, чтобы когда-нибудь потом их же в ней же искать... При этом организован он может быть как традиционным способом (список), так и любым другим, начиная от более-менее привычных (те же ассоциативные массивы) и заканчивая абсолютно экзотическими (например, сам исходный текст программы на Форте вполне может считаться словарем, если имеется набор слов для поиска определений в тексте исходника, или, допустим, куча файлов в каталоге - чем не словарь?), здесь фантазия фортостроителя ничем не ограничивается... Совсем без словаря можно, когда поиск не нужен... Например, при кросс-трансляции с подмножества Форт в asm/си/и т.д... Допустим, : abcd ... ; можно транслировать в _61626364: ... ret или в void _61626364() { ... } (здесь 61-64 - ascii-коды букв a-d), а потом вызывать при помощи call _61626364 или _61626364(); А если поиск нужен и реализован, значит без вариантов словарь есть, хотя, повторюсь, физически его как отдельного места для хранения словарных статей может и не быть (как в случае с интерпретацией текста исходника)... KPG писал(а): "кажется" Бессловарный написано без ошибок, проверил по словарю... KPG писал(а): консольного Форт тетриса Почему-то нигде не встречал компактную реализацию тетриса на Форте, а те реализации, что попадались - очень громоздкие... Эх, придется свою версию писать...
[quote="KPG"]...[/quote]А ассоциативный массив special чем не словарь? :D [quote="gregorbednov"]...[/quote]Словарик в Форте - это некая сущность, в которую можно добавлять слова, чтобы когда-нибудь потом их же в ней же искать... При этом организован он может быть как традиционным способом (список), так и любым другим, начиная от более-менее привычных (те же ассоциативные массивы) и заканчивая абсолютно экзотическими (например, сам исходный текст программы на Форте вполне может считаться словарем, если имеется набор слов для поиска определений в тексте исходника, или, допустим, куча файлов в каталоге - чем не словарь?), здесь фантазия фортостроителя ничем не ограничивается... :) Совсем без словаря можно, когда поиск не нужен... Например, при кросс-трансляции с подмножества Форт в asm/си/и т.д... Допустим, : abcd ... ; можно транслировать в _61626364: ... ret или в void _61626364() { ... } (здесь 61-64 - ascii-коды букв a-d), а потом вызывать при помощи call _61626364 или _61626364(); А если поиск нужен и реализован, значит без вариантов словарь есть, хотя, повторюсь, физически его как отдельного места для хранения словарных статей может и не быть (как в случае с интерпретацией текста исходника)... :D [quote="KPG"]"кажется"[/quote]Бессловарный написано без ошибок, проверил по словарю... :D [quote="KPG"]консольного Форт тетриса[/quote]Почему-то нигде не встречал компактную реализацию тетриса на Форте, а те реализации, что попадались - очень громоздкие... Эх, придется свою версию писать... :D :D
|
|
|
|
Добавлено: Вт дек 07, 2021 11:05 |
|
|
|
|
|
Заголовок сообщения: |
Re: "Бессловарный" форт? |
|
|
Это, конечно, не безсловарный Форт (т.к. до полноценного Форта в этом варианте ещё шагать и шагать) но если принять во внимание кросс компиляцию Форт подобного языка, то где то рядом. т.е. по материалу статьи Cи в роли промежуточного языканемного расширил возможности стекового языка представленного в данной статье (добавил IF ELSE THEN и некоторые слова по работе с стеком + некоторый вариант ввода/вывода с клавиатуры данных KEY в примере это на данный момент аналог Бейсиковского INPUT Изменённые файлы Forth2c.py Код: #!/usr/bin/python
import sys special = { ':':'data* ', ';':'return s; }', '.':'PRINT();', 'key':'KEY();', 'wkey':'WKEY();', 'emit':'EMIT();', 'begin':'do {', 'until':'} while(!*s++);', 'repeat':'} while(1);', 'while':'if(!*s++) break;', 'if':'if((*s++)!=0) {', 'else':'} else {', 'then':'};',
#!'for':'do { if((*s++)!=0) {--rs, rs[0]=s[-1],' #!'next':'--s, s[0]=rs[0], rs+1 } while (!*s++) break;',
#!'?dup':'if((*s++)!=0) {--s, s[0]=s[1];}', }
binops='+ - * / = < > <> mod <= >= and xor or lshift rshift'.split() op2c={ 'lshift':'<<', 'rshift':'>>', '=':'==', '<>':'!=', 'and':'&', 'xor':'^', 'or':'|', 'mod':'%'}
def forth2c(inf,out): n = 0 for line in inf: n += 1 #!ddkjdkjdkljdkljd print >> out,'\n#line',n,'"%s"'%infile for token in line.lower().strip().split(): if token in special: print >> out,special[token], else: try: num = int(token) print >> out, 'PUSH(%d);'%num, except ValueError: if token in binops: print >> out,'OP2(%s);'%op2c.get(token,token), else: if defining: print >> out,token+'(data* s) {', else: # call print >> out,'s=%s(s);'%token, defining = token == ':'
out = open('forth_program.c','w') print >> out, '#include "forth_runtime.h"' for infile in sys.argv[1:]: forth2c(open(infile),out)
forth_runtime.h Код: #include <stdio.h> #include <wchar.h>
typedef long data;
#define PUSH(item) (--s, *s = (item)) #define OP2(op) (s[1] = s[1] op s[0], ++s) #define PRINT() (printf("%ld ", s[0]), ++s) #define cr(s) (printf("\n"), s) #define drop(s) (s+1) #define dup(s) (--s, s[0]=s[1], s) #define tuck(s) (--s, s[0]=s[1], s[1]=s[2], s[2]=s[0], s) #define swap(s) (--s, s[0]=s[1], s[1]=s[2], s[2]=s[0], s+1) #define over(s) (--s, s[0]=s[2], s)
#define EMIT() ( putc(s[0],stdout), ++s) #define KEY() (--s, s[0]=getc(stdin), s) #define WKEY() (--s, s[0]=getwchar(), s)
#define put(s) (s[*s+1]=s[1], s+2) #define pick(s) (s[0]=s[*s], s)
#define sp0(s) (--s, s[0]=sp, s) #define rp0(s) (--s, s[0]=rs, s) #define mem0(s)(--s, s[0]=mem,s)
#define poke(s) (mem[s[0]]=s[1], s+2) #define pike(s) (s[0]=mem[s[0]], s)
#define to_r(s) (--rs, rs[0]=s[0], s+1) #define r_to(s) (--s, s[0]=rs[0], rs+1, s)
#define to2_r(s) (--rs, rs[0]=s[0], --rs, rs[0]=s[0], s+2) #define r2_to(s) (--s, s[0]=rs[0], rs+1, s[0]=rs[0], rs+1)
//#define loop(s)( //#define ?dup(s) (if((!*s++)!=0) {--s, s[0]=s[1], s};) #define init(s) (rs=stack, s)
#define MAX_DEPTH 8192 //произвольно #define RSP 1024 #define SPC 2048
data mem[MAX_DEPTH]; data* stack=mem; data* rs=mem+RSP; data* sp=mem+SPC;
data* forth_main(data*); int main() { forth_main(mem+MAX_DEPTH); return 0; }
Проверочные файлы gcd.4th Код: : gcd begin dup while tuck mod repeat drop ; main.4th Код: : forth_main 5 init rp0 . 6 10 put 10 pick . 11 20 poke 20 pike . 55 to_r r_to . 5 2 / . begin key dup 10 <> while emit repeat drop cr countdown cr 10 6 gcd . 35 75 gcd . 12856 3248 gcd . cr ; contdown.4th Код: : COUNTDOWN -123 0 <> IF 1 . ELSE 0 . THEN
BEGIN DUP . 1 - DUP 0 = UNTIL DROP ; Ну и скрипт для запуска Питон скрипта в Linux Script.sh Код: #!/bin/sh ./forth2c.py countdown.4th gcd.4th main.4th #!gcc -g -static -Wall -o forth_program forth_program.c gcc -Wall -o forth_program forth_program.c ./forth_program
В этом тестовом примере результирующий бинарный файл получился ~7.5 Кб Вроде ничего не пропустил P.S. Можно попробовать дальше раскрутить Форт с этого базисного построения по примеру eForth. Добавление циклов сходу не получилось, а также задумался как результирующему получаемому Си файлу для запуска, к примеру, добавить обработку слов u< и подобных, а также других слов + элементы конструктива построения полноценного Форт. Наверное, добавлениe ассемблера с уровня Форт может тоже понадобиться. Может у кого то будут интересные решения по развитию такого варианта раскрутки Форт системы. Как начальную демо-программу можно, вероятно, доделать кросс до запуска, к примеру, консольного Форт тетриса. Мне одному "кажется", что название топика написано с ошибкой?
Это, конечно, не безсловарный Форт (т.к. до полноценного Форта в этом варианте ещё шагать и шагать) но если принять во внимание кросс компиляцию Форт подобного языка, то где то рядом. :)
т.е. по материалу статьи [url=https://habr.com/ru/company/ruvds/blog/589839/]Cи в роли промежуточного языка[/url] немного расширил возможности стекового языка представленного в данной статье (добавил IF ELSE THEN и некоторые слова по работе с стеком + некоторый вариант ввода/вывода с клавиатуры данных KEY в примере это на данный момент аналог Бейсиковского INPUT :)
Изменённые файлы
Forth2c.py [code] #!/usr/bin/python
import sys special = { ':':'data* ', ';':'return s; }', '.':'PRINT();', 'key':'KEY();', 'wkey':'WKEY();', 'emit':'EMIT();', 'begin':'do {', 'until':'} while(!*s++);', 'repeat':'} while(1);', 'while':'if(!*s++) break;', 'if':'if((*s++)!=0) {', 'else':'} else {', 'then':'};',
#!'for':'do { if((*s++)!=0) {--rs, rs[0]=s[-1],' #!'next':'--s, s[0]=rs[0], rs+1 } while (!*s++) break;',
#!'?dup':'if((*s++)!=0) {--s, s[0]=s[1];}', }
binops='+ - * / = < > <> mod <= >= and xor or lshift rshift'.split() op2c={ 'lshift':'<<', 'rshift':'>>', '=':'==', '<>':'!=', 'and':'&', 'xor':'^', 'or':'|', 'mod':'%'}
def forth2c(inf,out): n = 0 for line in inf: n += 1 #!ddkjdkjdkljdkljd print >> out,'\n#line',n,'"%s"'%infile for token in line.lower().strip().split(): if token in special: print >> out,special[token], else: try: num = int(token) print >> out, 'PUSH(%d);'%num, except ValueError: if token in binops: print >> out,'OP2(%s);'%op2c.get(token,token), else: if defining: print >> out,token+'(data* s) {', else: # call print >> out,'s=%s(s);'%token, defining = token == ':'
out = open('forth_program.c','w') print >> out, '#include "forth_runtime.h"' for infile in sys.argv[1:]: forth2c(open(infile),out) [/code]
forth_runtime.h [code] #include <stdio.h> #include <wchar.h>
typedef long data;
#define PUSH(item) (--s, *s = (item)) #define OP2(op) (s[1] = s[1] op s[0], ++s) #define PRINT() (printf("%ld ", s[0]), ++s) #define cr(s) (printf("\n"), s) #define drop(s) (s+1) #define dup(s) (--s, s[0]=s[1], s) #define tuck(s) (--s, s[0]=s[1], s[1]=s[2], s[2]=s[0], s) #define swap(s) (--s, s[0]=s[1], s[1]=s[2], s[2]=s[0], s+1) #define over(s) (--s, s[0]=s[2], s)
#define EMIT() ( putc(s[0],stdout), ++s) #define KEY() (--s, s[0]=getc(stdin), s) #define WKEY() (--s, s[0]=getwchar(), s)
#define put(s) (s[*s+1]=s[1], s+2) #define pick(s) (s[0]=s[*s], s)
#define sp0(s) (--s, s[0]=sp, s) #define rp0(s) (--s, s[0]=rs, s) #define mem0(s)(--s, s[0]=mem,s)
#define poke(s) (mem[s[0]]=s[1], s+2) #define pike(s) (s[0]=mem[s[0]], s)
#define to_r(s) (--rs, rs[0]=s[0], s+1) #define r_to(s) (--s, s[0]=rs[0], rs+1, s)
#define to2_r(s) (--rs, rs[0]=s[0], --rs, rs[0]=s[0], s+2) #define r2_to(s) (--s, s[0]=rs[0], rs+1, s[0]=rs[0], rs+1)
//#define loop(s)( //#define ?dup(s) (if((!*s++)!=0) {--s, s[0]=s[1], s};) #define init(s) (rs=stack, s)
#define MAX_DEPTH 8192 //произвольно #define RSP 1024 #define SPC 2048
data mem[MAX_DEPTH]; data* stack=mem; data* rs=mem+RSP; data* sp=mem+SPC;
data* forth_main(data*); int main() { forth_main(mem+MAX_DEPTH); return 0; } [/code]
Проверочные файлы gcd.4th [code]: gcd begin dup while tuck mod repeat drop ;[/code] main.4th [code]: forth_main 5 init rp0 . 6 10 put 10 pick . 11 20 poke 20 pike . 55 to_r r_to . 5 2 / . begin key dup 10 <> while emit repeat drop cr countdown cr 10 6 gcd . 35 75 gcd . 12856 3248 gcd . cr ;[/code] contdown.4th [code]: COUNTDOWN -123 0 <> IF 1 . ELSE 0 . THEN
BEGIN DUP . 1 - DUP 0 = UNTIL DROP ;[/code] Ну и скрипт для запуска Питон скрипта в Linux
Script.sh [code]#!/bin/sh ./forth2c.py countdown.4th gcd.4th main.4th #!gcc -g -static -Wall -o forth_program forth_program.c gcc -Wall -o forth_program forth_program.c ./forth_program [/code] В этом тестовом примере результирующий бинарный файл получился ~7.5 Кб
Вроде ничего не пропустил
P.S. Можно попробовать дальше раскрутить Форт с этого базисного построения по примеру eForth. Добавление циклов сходу не получилось, а также задумался как результирующему получаемому Си файлу для запуска, к примеру, добавить обработку слов u< и подобных, а также других слов + элементы конструктива построения полноценного Форт. Наверное, добавлениe ассемблера с уровня Форт может тоже понадобиться.
Может у кого то будут интересные решения по развитию такого варианта раскрутки Форт системы. Как начальную демо-программу можно, вероятно, доделать кросс до запуска, к примеру, консольного Форт тетриса.
[color=#BF80FF]Мне одному "кажется", что название топика написано с ошибкой?[/color]
|
|
|
|
Добавлено: Вт дек 07, 2021 00:17 |
|
|
|
|
|
Заголовок сообщения: |
Re: "Бессловарный" форт? |
|
|
Victor__v писал(а): Интересно) Никогда не думал что списком будет считаться просто набор безсвязных структур :D Еще раз, нет словаря - нет Форта. Устройство словаря совершенно не важно, вид идентификаторов в принципе тоже не важен, это могут быть и иконки и музыкальные фразы и все, что придумаете. Я показал, что Словари могут распознавать вообще несчетные множества.
[quote="Victor__v"]Интересно) Никогда не думал что списком будет считаться просто набор безсвязных структур :D[/quote] Еще раз, нет словаря - нет Форта. Устройство словаря совершенно не важно, вид идентификаторов в принципе тоже не важен, это могут быть и иконки и музыкальные фразы и все, что придумаете. Я показал, что Словари могут распознавать вообще несчетные множества.
|
|
|
|
Добавлено: Пн ноя 22, 2021 15:13 |
|
|
|
|
|
Заголовок сообщения: |
Re: "Бессловарный" форт? |
|
|
mOleg писал(а): А это не важно, список слов всеравно будет, и поиск будет, а, значит будет интерфейс(слова для добавления и поиска лексем и связанных с ними кода и данных). Интересно) Никогда не думал что списком будет считаться просто набор безсвязных структур Еще одна идея для безсловарного форта: Сделать а-ля объектный файл. Сама форт-система просто EXE со скомпилированными словами. А указатели на код, имена, флаги и прочая находятся в каком-то отдельной текстовом файле (json, например). Только нужна программа-компилятор, которая будет это все женить и создавать программу)
[quote="mOleg"] А это не важно, список слов всеравно будет, и поиск будет, а, значит будет интерфейс(слова для добавления и поиска лексем и связанных с ними кода и данных).[/quote]
Интересно) Никогда не думал что списком будет считаться просто набор [b]безсвязных[/b] структур :D
Еще одна идея для безсловарного форта: Сделать а-ля объектный файл. Сама форт-система просто EXE со скомпилированными словами. А указатели на код, имена, флаги и прочая находятся в каком-то отдельной текстовом файле (json, например).
Только нужна программа-компилятор, которая будет это все женить и создавать программу)
|
|
|
|
Добавлено: Пн ноя 22, 2021 09:39 |
|
|
|
|
|
Заголовок сообщения: |
Re: "Бессловарный" форт? |
|
|
pk-fr-76-2 писал(а): Будет ли это считаться за бессловарный форт? Языковая среда программированияСначала было слово
[quote="pk-fr-76-2"]Будет ли это считаться за бессловарный форт?[/quote] [url=http://fforum.winglion.ru/viewtopic.php?f=34&t=2089]Языковая среда программирования[/url] [url=http://fforum.winglion.ru/viewtopic.php?f=34&t=1560]Сначала было слово[/url]
|
|
|
|
Добавлено: Вс ноя 21, 2021 18:58 |
|
|
|
|
|
Заголовок сообщения: |
Re: "Бессловарный" форт? |
|
|
pk-fr-76-2 писал(а): и одно слово, которое будет проверять, что находится на стеке и в зависимости от этого выполняет что-либо. В Форте для такого используется слово EXECUTE. Это уже про внутренний движок Форта, когда мы запустили программу. А словари - про способ компиляции кода. В целом можно же и другие структуры данных использовать. Словари используют связанный список, который в числе прочего дает экономное размещение данных в памяти. Для 70-х годов это было крайне актуально - не давать же словам фиксированные поля в 32 символа (тогда) для размещения имени. А сегодня - ну пусть даже 256 байт на имя и 10 тыс. записей в статической структуре данных. Потерю 2,5 Мбайт современные ПК и смартфоны просто не заметят.
[quote="pk-fr-76-2"]и одно слово, которое будет проверять, что находится на стеке и в зависимости от этого выполняет что-либо.[/quote] В Форте для такого используется слово EXECUTE. Это уже про внутренний движок Форта, когда мы запустили программу. А словари - про способ компиляции кода.
В целом можно же и другие структуры данных использовать. Словари используют связанный список, который в числе прочего дает экономное размещение данных в памяти. Для 70-х годов это было крайне актуально - не давать же словам фиксированные поля в 32 символа (тогда) для размещения имени. А сегодня - ну пусть даже 256 байт на имя и 10 тыс. записей в статической структуре данных. Потерю 2,5 Мбайт современные ПК и смартфоны просто не заметят.
|
|
|
|
Добавлено: Вс ноя 21, 2021 16:00 |
|
|
|
|
|
Заголовок сообщения: |
Re: "Бессловарный" форт? |
|
|
А если в системе просто будет стек, куда можно будет класть значения, и одно слово, которое будет проверять, что находится на стеке и в зависимости от этого выполняет что-либо. Будет ли это считаться за бессловарный форт?
А если в системе просто будет стек, куда можно будет класть значения, и одно слово, которое будет проверять, что находится на стеке и в зависимости от этого выполняет что-либо. Будет ли это считаться за бессловарный форт?
|
|
|
|
Добавлено: Вс ноя 21, 2021 09:23 |
|
|
|
|
|
Заголовок сообщения: |
Re: "Бессловарный" форт? |
|
|
Victor__v писал(а): Если поизвращаться, то имея HERE и зная адрес начала форт-системы, можно для поиска слов использовать обычное слово SEARCH А это не важно, список слов всеравно будет, и поиск будет, а, значит будет интерфейс(слова для добавления и поиска лексем и связанных с ними кода и данных). Другое дело, что написанная на форте программа может не содержать имен слов и всей словарной структуры, что тоже делалось как минимум в нескольких системах (это при условии, что в программе рабочей не будет поиска имен слов)
[quote="Victor__v"]Если поизвращаться, то имея HERE и зная адрес начала форт-системы, можно для поиска слов использовать обычное слово SEARCH[/quote]
А это не важно, список слов всеравно будет, и поиск будет, а, значит будет интерфейс(слова для добавления и поиска лексем и связанных с ними кода и данных). Другое дело, что написанная на форте программа может не содержать имен слов и всей словарной структуры, что тоже делалось как минимум в нескольких системах (это при условии, что в программе рабочей не будет поиска имен слов)
|
|
|
|
Добавлено: Вс ноя 21, 2021 08:06 |
|
|
|
|
|
Заголовок сообщения: |
Re: "Бессловарный" форт? |
|
|
Ну, может. Однако как-то определения искать надо) Тут еще вопрос, а что считать словарём? Будет ли считаться словарём отдельно взятая таблица со служебными данными? Или словарь это только односвязный список определений?
Но можно и вообще без этого) Если поизвращаться, то имея HERE и зная адрес начала форт-системы, можно для поиска слов использовать обычное слово SEARCH
Медленно, ненадёжно и прикольно.
Ну, может. Однако как-то определения искать надо) Тут еще вопрос, а что считать словарём? Будет ли считаться словарём отдельно взятая таблица со служебными данными? Или словарь это только односвязный список определений?
Но можно и вообще без этого) Если поизвращаться, то имея HERE и зная адрес начала форт-системы, можно для поиска слов использовать обычное слово SEARCH
Медленно, ненадёжно и прикольно.
|
|
|
|
Добавлено: Пт ноя 19, 2021 23:44 |
|
|
|
|
|
Заголовок сообщения: |
Re: "Бессловарный" форт? |
|
|
gregorbednov писал(а): В ходе обсуждений видел мнение, что, возможно, форт может работать без словарей так, можно, и есть такие системы, Но, это не означает, что нет списка слов (то есть грубо говоря есть только словарь FORTH, единственный словарь, который нельзя переключать) gregorbednov писал(а): В конце концов, за исключением аппаратно-диктуемых различий между фортами, именно устройство словаря чаще всего отличается в различных реализациях. я такого не заметил. Отличия в основном не принципиальные (даже в моем случае интерфейс более-менее стандартный, хотя словари устроены значительно сложнее и позволяют больше)
[quote="gregorbednov"]В ходе обсуждений видел мнение, что, возможно, форт может работать без словарей[/quote] так, можно, и есть такие системы, Но, это не означает, что нет списка слов (то есть грубо говоря есть только словарь FORTH, единственный словарь, который нельзя переключать)
[quote="gregorbednov"] В конце концов, за исключением аппаратно-диктуемых различий между фортами, именно устройство словаря чаще всего отличается в различных реализациях.[/quote] я такого не заметил. Отличия в основном не принципиальные (даже в моем случае интерфейс более-менее стандартный, хотя словари устроены значительно сложнее и позволяют больше)
|
|
|
|
Добавлено: Пт ноя 19, 2021 20:21 |
|
|
|
|
|
Заголовок сообщения: |
"Бессловарный" форт? |
|
|
В ходе обсуждений видел мнение, что, возможно, форт может работать без словарей - естественно, речь не идёт о "просто наборе команд", упрощении до некоего "ассемблера", ведь в этом случае форт перестанет быть фортом, даже если сохранит двухстековую архитектуру, а именно о каком-то другом способе организации. В конце концов, за исключением аппаратно-диктуемых различий между фортами, именно устройство словаря чаще всего отличается в различных реализациях.
Не нашлось ли примеров, когда форт действительно организован не через словари?
В ходе обсуждений видел мнение, что, [i]возможно[/i], форт может работать без словарей - естественно, речь не идёт о "просто наборе команд", упрощении до некоего "ассемблера", ведь в этом случае форт перестанет быть фортом, даже если сохранит двухстековую архитектуру, а именно о каком-то другом способе организации. В конце концов, за исключением аппаратно-диктуемых различий между фортами, именно устройство словаря чаще всего отличается в различных реализациях.
Не нашлось ли примеров, когда форт действительно организован не через словари?
|
|
|
|
Добавлено: Пт ноя 19, 2021 16:12 |
|
|
|
|