Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 08:00

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Особенности системы
СообщениеДобавлено: Пн июл 23, 2018 23:42 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Поправлено от 12.06.2020

Разрядность: 32 бита
ОС: Windows 7, 8 (остальные не тестировал)
Код: нативный
Память: отдельное хранение кода, данных и словарных статей
ЦК форт-системы: Nova
Поиск слов в системе: по 4-байтному хешу определяется нить и по ней осуществляется поиск в контексте.

При написании слова можно делать дополнительные точки входа, что позволяет расширить функциональность слов (например, реализовать слова со значениями по умолчанию).

Каждый словарь может влиять на компиляцию слов (потом сделать справку, ибо сам путаюсь)

Файлы транслируются частями и при этом стек возвратов не пляшет. Что позволяет задать вначале файла требуемые значения переменных и откатить их при конце трансляции, а также выполнить код на обратном ходу.
К примеру, 0x10 BASE KEEP! ALSO ' PREVIOUS >R

Можно задать свои собственные инлайн-примитивы, пометив созданное слово флагом INLINE
Константы и переменные (VARIABLE) это инлайн-слова.

Каждый словарь может иметь свой обработчик нераспознанных строк.
Если в контексте слово не найдено, перебираются обработчики этих словарей.

Обработчик слов словаря FORTH умеет:

  • транслировать числа: 123 -123 0x123 -0x123
  • транслировать символы: 'a' 'b' 'C'
  • загружать файлы
  • адресовать файлы от ранее использованной (последней) директории.
  • загружать файлы без обработки, указав в конце пути к файлу :BIN .К примеру, DOCS/HELP.TXT:BIN
  • вызывать слова из других словарей: VOC1::VOC2::WORD

Связь с внешним миром:
стандартные вызовы Stdcall: и WINAPI:
си-вызовы Cdecl: N-Cdecl:
обратные вызовы CALLBACK:
создание потока TASK> START

_________________
Цель: сделать 64-битную Нову под Винду


Последний раз редактировалось Victor__v Пт июн 12, 2020 18:47, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности системы
СообщениеДобавлено: Вс мар 03, 2019 20:43 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
У меня вопросы:
сколько систем вы сколько-нибудь изучили до написания проекта?
для какой цели служит проект?
собираетесь ли вы писать документацию к системе?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности системы
СообщениеДобавлено: Вс мар 03, 2019 21:45 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
mOleg писал(а):
У меня вопросы:
сколько систем вы сколько-нибудь изучили до написания проекта?
для какой цели служит проект?
собираетесь ли вы писать документацию к системе?

Одну, СПФ. Форк не осилил.
just for fun
Собираюсь потихоньку.

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности системы
СообщениеДобавлено: Пн мар 04, 2019 18:03 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Victor__v писал(а):
Одну, СПФ. Форк не осилил.

Жалко, т.к. СПФ не самая интересная система.
(а форк, таки форк СПФа, и, как бы не совсем другая, хотя и во многом отличная система)

Victor__v писал(а):
just for fun

спасибо, все остальные вопросы отпали

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности системы
СообщениеДобавлено: Пн мар 04, 2019 19:20 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
mOleg писал(а):
Жалко, т.к. СПФ не самая интересная система.

Не надо расстраиваться :D В конечном итоге получилось что-то среднее между Форком и СПФ :))

mOleg писал(а):
(а форк, таки форк СПФа, и, как бы не совсем другая, хотя и во многом отличная система)

Знаем, видели, пытались понять исходники. Однако из либ ничего не приглянулось :weep;

mOleg писал(а):
Victor__v писал(а):
just for fun

спасибо, все остальные вопросы отпали

А что? Таки-есть, что предложить?

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности системы
СообщениеДобавлено: Пн мар 04, 2019 20:23 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Victor__v писал(а):
Не надо расстраиваться :D В конечном итоге получилось что-то среднее между Форком и СПФ :))

Я рассматривал практически все системы, к исходникам которых можно дотянуться в поисках интересного для форка.

Victor__v писал(а):
Знаем, видели, пытались понять исходники. Однако из либ ничего не приглянулось :weep;

В либах главное то, что все не нужное в ядре находится в них(либах), т.е. ядро максимально усушено.
Я так понимаю, вы пытаетесь идти по тому же пути.

Victor__v писал(а):
спасибо, все остальные вопросы отпали
А что? Таки-есть, что предложить?

подход just for fun не предполагает методичной продолжительной работы, исправления ошибок, создания интересных целостных концепций, чего Форту таки не хватает. Одна из проблем Форта- внесение инородных приглянувшихся механизмов без попыток адаптации их(или с минимальными попытками адаптации) к стилю(духу\методики) языка, в результате чего появляется перетяжеленная часто конфликтующая с другими механизмами "куча мала". И еще есть вопрос(важный для меня), где усложнять систему? Ну, к примеру, ускорение поиска в словарях может производиться налету, а не за счет компиляции структуры в хранилище кода\данных.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности системы
СообщениеДобавлено: Пн мар 04, 2019 21:23 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
mOleg писал(а):
Я так понимаю, вы пытаетесь идти по тому же пути.

Не совсем. Просто убираю из ядра рудименты. Не всегда сначала видны лучшие моменты как написать то или иное слово (основной критерий понятность). Это приходит с опытом.

mOleg писал(а):
подход just for fun не предполагает методичной продолжительной работы, исправления ошибок, создания интересных целостных концепций, чего Форту таки не хватает.

Хм, ну не знаю. В ядре вроде бы ошибок нет. Последний баг был аж в конце 2018-го. Дальше странностей всплывало.

mOleg писал(а):
И еще есть вопрос(важный для меня), где усложнять систему? Ну, к примеру, ускорение поиска в словарях может производиться налету, а не за счет компиляции структуры в хранилище кода\данных.


Возможность того, чтобы каждый словарь мог влиять на процесс компиляции кода.
Сразу вытекают такие плюшки, как возможность простой оптимизации, поддержка корректности лок. переменных, возможность пост. определения слов.
И всё это без переопределения уже существующих слов.

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности системы
СообщениеДобавлено: Пн мар 04, 2019 21:38 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Victor__v писал(а):
Просто убираю из ядра рудименты.

Интересно, а что по-вашему в ядре СПФа является рудиментом (можно примеры?)

Victor__v писал(а):
Хм, ну не знаю. В ядре вроде бы ошибок нет. Последний баг был аж в конце 2018-го. Дальше странностей всплывало.

я не про ошибки, а про заявленную цель, и, как следствие ограничение перспектив разарботки.
Т.е. вопрос в том, когда вам надоест.

Victor__v писал(а):
Возможность того, чтобы каждый словарь мог влиять на процесс компиляции кода.
Сразу вытекают такие плюшки, как возможность простой оптимизации, поддержка корректности лок. переменных, возможность пост. определения слов. И всё это без переопределения уже существующих слов.

Я вообще взял отпотолочный пример для иллюстрации :D

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности системы
СообщениеДобавлено: Пн мар 04, 2019 21:56 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
mOleg писал(а):
Интересно, а что по-вашему в ядре СПФа является рудиментом (можно примеры?)

PAD и всё, что с этим связано.
Трансляция чисел двойной длины через точку
SOURCE и всё, что с этим связано.
Всё остальное может быть или не быть. по вкусу так сказать.
Только причём Нова и ядро СПФ?
Когда писал форт, на СПФ сильно не заглядывался.

mOleg писал(а):
Т.е. вопрос в том, когда вам надоест.

Наверно, никогда. Совершенство, оно знаете ли, требует вечности :)

mOleg писал(а):
Я вообще взял отпотолочный пример для иллюстрации :D

В Нове уже есть и юзается некоторыми либами :)
P. S. сделал об этом пометку в первом сообщении

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности системы
СообщениеДобавлено: Пн мар 04, 2019 22:38 
Victor__v писал(а):
mOleg писал(а):
Интересно, а что по-вашему в ядре СПФа является рудиментом (можно примеры?)

PAD и всё, что с этим связано.
Трансляция чисел двойной длины через точку
SOURCE и всё, что с этим связано.

Про PAD мы, наверное, никогда не сойдёмся. Влюблён в него. :shuffle;

А вот про SOURCE очень интересно. Какие альтернативы вы считаете лучше?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности системы
СообщениеДобавлено: Пн мар 04, 2019 22:50 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
ath писал(а):
А вот про SOURCE очень интересно. Какие альтернативы вы считаете лучше?

Никакие.
SOURCE SOURCE-ID и пр. совершенно лишние.
Достаточно трёх переменных (указатель на буфер, тек. позиция, кол-во символов в буфере) и функцию обновлению источника (REFILL).
Набор исчерпывающий. Зачем было в СПФ городить дополнительный огород вокруг этого мне непонятно.

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности системы
СообщениеДобавлено: Пн мар 04, 2019 23:17 
Спасибо. А в СПФ это из ANS:
http://forth.sourceforge.net/standard/d ... 1.6.1.2218

Видимо, для переносимой реализации INCLUDE-FILE


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности системы
СообщениеДобавлено: Пн мар 04, 2019 23:17 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
мне очень интересен этот вопрос, т.к. в ряде случаев заявляющий о рудиментах не понимает почему механизмы появились, почему сделаны именно так, а не иначе, и, возможно, просто не умеют пользоваться ими. Форматное преобразование строк в Форте сделано шикарно 8)
Victor__v писал(а):
PAD и всё, что с этим связано.

тут я с вами не соглашусь никак.

Victor__v писал(а):
Трансляция чисел двойной длины через точку

Тут, кстати, тоже интересный момент.
А вы пользовались арифметикой с фиксированной точкой когда-нибудь?
хотя я согласен, что вариант не удобный

Victor__v писал(а):
Всё остальное может быть или не быть. по вкусу так сказать.

а вот вкус тут не должен влиять, тут должна быть построена логичная цепочка рассуждений и предложены альтернативные варианты на мой взгляд. Тогда будет более-менее корректно.

?Почему я об этом пишу: написание нового Форта интересно и полезно для других в ряде случаев:
- когда опробуется новая концепция (поиск развития языка);
- когда происходит вдумчивое изучения языка;
- когда пишется обучающий материал (ну, например, как можно реализовать Форт на другом языке);
- когда пишется реализация под конкретную задачу(Тот же СПФ).
В общем, что-то сколько-нибудь амбициозное 8)
Может и еще что-то, но не, just for fun, потому что это польза только для вас 8) (так вижу я)

Victor__v писал(а):
Только причём Нова и ядро СПФ?
Когда писал форт, на СПФ сильно не заглядывался.

просто интересно чего вы хотите добиться в итоге. 8)))

Victor__v писал(а):
А вот про SOURCE очень интересно. Какие альтернативы вы считаете лучше?

Никакие.
SOURCE SOURCE-ID и пр. совершенно лишние.

о ужас, ведь у меня все еще сложнее реализовано 8) аж 3 с лишним кБ(правда с комментариями)
8)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности системы
СообщениеДобавлено: Пн мар 04, 2019 23:33 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
mOleg писал(а):
про PAD

прокладку нафиг. Очередная флеймогонная тема, замнём для ясности


mOleg писал(а):
а вот вкус тут не должен влиять, тут должна быть построена логичная цепочка рассуждений и предложены альтернативные варианты на мой взгляд. Тогда будет более-менее корректно.

"Вкус" в переносном смысле. И хватит обсуждать ядро СПФ, тема не про него.


mOleg писал(а):
просто интересно чего вы хотите добиться в итоге. 8)))

Захватить весь мир и вести его к процветанию, естественно, через форт :))
Я вообще хотел изначально сделать более простую и логичную систему по сравнению с СПФ, сохранив и приумножив все его понравившиеся мне плюшки и добавить свои.
Полученным результатом я доволен.

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Особенности системы
СообщениеДобавлено: Вт мар 05, 2019 00:29 
Victor__v писал(а):
SOURCE SOURCE-ID и пр. совершенно лишние.
Достаточно трёх переменных (указатель на буфер, тек. позиция, кол-во символов в буфере) и функцию обновлению источника (REFILL).
Набор исчерпывающий. Зачем было в СПФ городить дополнительный огород вокруг этого мне непонятно.

Погуглил немножко.

Похоже, что в стандарте SOURCE буферизует файл построчно. Также SOURCE используется в автоматических тестах транслятора, очень полезная вещь:
http://www.forth200x.org/documents/html/testsuite.html

Конечно, там можно SOURCE заменить на что-то вроде TIB #TIB — если интерпретация файлов реализована построчно, через TIB

Не знаю, как сейчас в Нове. Если вы сделали интерпретацию файлов через проекцию в память, Test Suite придётся переписывать. По меньшей мере определение ERROR1


Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB