Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 01:23

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Особенности системы
Автор Сообщение
  Заголовок сообщения:  Re: Особенности системы  Ответить с цитатой
Не туда написал :)
Сообщение Добавлено: Пн мар 11, 2019 16:11
  Заголовок сообщения:  Re: Особенности системы  Ответить с цитатой
mOleg писал(а):
не понял, что вы хотели сказать, поясните.

Даже не знаю как пояснить-то.

Вот у нас был код
Код:
100000 VALUE TEMP-WL-SIZE

: TEMP-WORDLIST TEMP-WL-SIZE ALLOCATE THROW >R ....

;

Недостаток этого кода: изменяя переменную TEMP-WL-SIZE , можно в последствии сломать себе врем. словарь со всем фортом в придачу (недостаток хипа, слишком мелкий кодофайл и пр.). Но это в теории.
На практике же значение переменной TEMP-WL-SIZE изменяется очень редко (я вообще делал это 1 раз). Следовательно, зачем нужна эта переменная?
Но убрать её слишком просто. А вдруг расширяемость временного кодофайла понадобится?
Поэтому можно2020.06.12 так
Код:
CREATE TEMP-WORDLIST
100000 , \ та самая переменная
DOES:    \ аналог DOES> для режима интерпретации
@ ALLOCATE THROW >R
....
;

В результате значение переменной скрыто в единственной функции, которая её использует.
При этом мы можем "подменить" значение-переменную функции, если потребуется.
как-то так
Код:

10000 ( значение для "подмены")
SP@ ( указатель на значение)
' TEMP-WORDLIST >param ( пропускаем вызов слова CREATE)
@  ( получаем указатель на код DOES)
EXECUTE


Итог:
Из ядра убирается переменная, тем самым ненамного повышается понятность Новы
TEMP-WORDLIST становится словом, значение которого можно "подменять" без риска завалить все остальные словари.

В принципе, тут нет ничего особенного. В других языках тоже при определении функции можно задать значения по умолчанию.
Сообщение Добавлено: Ср мар 06, 2019 17:56
  Заголовок сообщения:  Re: Особенности системы  Ответить с цитатой
Victor__v писал(а):
Изменять размер врем. словаря требуется редко, а махинации с этой переменной могут сильно увеличить веселье :dmad; , если в форте сильная завязка на врем. словари, а у Новы сильная.

не понял, что вы хотели сказать, поясните.
Сообщение Добавлено: Ср мар 06, 2019 16:12
  Заголовок сообщения:  Re: Особенности системы  Ответить с цитатой
mOleg писал(а):
Ну, и, вопросы были таки не про ядро СПФ, а про ваше видение рудиментов (что ими является).

То, что не работает в ядре или работает отсюда и до обеда.
Так ведут себя некоторые переменные. Что в Нове (поправлено), что в СПФ слово TEMP-WL-SIZE.
Изменять размер врем. словаря требуется редко, а махинации с этой переменной могут сильно увеличить веселье :dmad; , если в форте сильная завязка на врем. словари, а у Новы сильная.

....
Часть текста убрана, как неактуальная
Сообщение Добавлено: Вт мар 05, 2019 11:02
  Заголовок сообщения:  Re: Особенности системы  Ответить с цитатой
Victor__v писал(а):
"Вкус" в переносном смысле. И хватит обсуждать ядро СПФ, тема не про него.

Я не про СПФ ради СПФ, а лишь потому, что вы знаете только СПФ 8)
Ну, и, вопросы были таки не про ядро СПФ, а про ваше видение рудиментов (что ими является).

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

понятно.
мне просто интересно было получить ответы на мои вопросы.
Сообщение Добавлено: Вт мар 05, 2019 09:24
  Заголовок сообщения:  Re: Особенности системы  Ответить с цитатой
Неплохо. Так же сделал бы… если бы не заглянул в исходники Test Suite. :)
Сообщение Добавлено: Вт мар 05, 2019 03:12
  Заголовок сообщения:  Re: Особенности системы  Ответить с цитатой
ath писал(а):
...

Транслятор файлов читает файл частями, разграничивая его по последнему найденному переводу строки.
Перезагрузка транслятора осуществляется вектором REFILL.

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

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

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

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

Не знаю, как сейчас в Нове. Если вы сделали интерпретацию файлов через проекцию в память, Test Suite придётся переписывать. По меньшей мере определение ERROR1
Сообщение Добавлено: Вт мар 05, 2019 00:29
  Заголовок сообщения:  Re: Особенности системы  Ответить с цитатой
mOleg писал(а):
про PAD

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


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

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


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

Захватить весь мир и вести его к процветанию, естественно, через форт :))
Я вообще хотел изначально сделать более простую и логичную систему по сравнению с СПФ, сохранив и приумножив все его понравившиеся мне плюшки и добавить свои.
Полученным результатом я доволен.
Сообщение Добавлено: Пн мар 04, 2019 23:33
  Заголовок сообщения:  Re: Особенности системы  Ответить с цитатой
мне очень интересен этот вопрос, т.к. в ряде случаев заявляющий о рудиментах не понимает почему механизмы появились, почему сделаны именно так, а не иначе, и, возможно, просто не умеют пользоваться ими. Форматное преобразование строк в Форте сделано шикарно 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)
Сообщение Добавлено: Пн мар 04, 2019 23:17
  Заголовок сообщения:  Re: Особенности системы  Ответить с цитатой
Спасибо. А в СПФ это из ANS:
http://forth.sourceforge.net/standard/d ... 1.6.1.2218

Видимо, для переносимой реализации INCLUDE-FILE
Сообщение Добавлено: Пн мар 04, 2019 23:17
  Заголовок сообщения:  Re: Особенности системы  Ответить с цитатой
ath писал(а):
А вот про SOURCE очень интересно. Какие альтернативы вы считаете лучше?

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

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

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

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

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

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

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

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

В Нове уже есть и юзается некоторыми либами :)
P. S. сделал об этом пометку в первом сообщении
Сообщение Добавлено: Пн мар 04, 2019 21:56
  Заголовок сообщения:  Re: Особенности системы  Ответить с цитатой
Victor__v писал(а):
Просто убираю из ядра рудименты.

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

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

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

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

Я вообще взял отпотолочный пример для иллюстрации :D
Сообщение Добавлено: Пн мар 04, 2019 21:38

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


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