Автор |
Сообщение |
|
|
Заголовок сообщения: |
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 становится словом, значение которого можно "подменять" без риска завалить все остальные словари. В принципе, тут нет ничего особенного. В других языках тоже при определении функции можно задать значения по умолчанию.
[quote="mOleg"]не понял, что вы хотели сказать, поясните.[/quote] Даже не знаю как пояснить-то.
Вот у нас был код [code] 100000 VALUE TEMP-WL-SIZE
: TEMP-WORDLIST TEMP-WL-SIZE ALLOCATE THROW >R ....
; [/code] Недостаток этого кода: изменяя переменную TEMP-WL-SIZE , можно в последствии сломать себе врем. словарь со всем фортом в придачу (недостаток хипа, слишком мелкий кодофайл и пр.). Но это в теории. На практике же значение переменной TEMP-WL-SIZE изменяется очень редко (я вообще делал это 1 раз). Следовательно, зачем нужна эта переменная? Но убрать её слишком просто. А вдруг расширяемость временного кодофайла понадобится? Поэтому [b][i]можно[sup]2020.06.12[/sup][/i][/b] так [code] CREATE TEMP-WORDLIST 100000 , \ та самая переменная DOES: \ аналог DOES> для режима интерпретации @ ALLOCATE THROW >R .... ; [/code] В результате значение переменной скрыто в единственной функции, которая её использует. При этом мы можем "подменить" значение-переменную функции, если потребуется. как-то так [code] 10000 ( значение для "подмены") SP@ ( указатель на значение) ' TEMP-WORDLIST >param ( пропускаем вызов слова CREATE) @ ( получаем указатель на код DOES) EXECUTE [/code]
Итог: Из ядра убирается переменная, тем самым ненамного повышается понятность Новы TEMP-WORDLIST становится словом, значение которого можно "подменять" без риска завалить все остальные словари.
В принципе, тут нет ничего особенного. В других языках тоже при определении функции можно задать значения по умолчанию.
|
|
|
|
Добавлено: Ср мар 06, 2019 17:56 |
|
|
|
|
|
Заголовок сообщения: |
Re: Особенности системы |
|
|
Victor__v писал(а): Изменять размер врем. словаря требуется редко, а махинации с этой переменной могут сильно увеличить веселье :dmad; , если в форте сильная завязка на врем. словари, а у Новы сильная. не понял, что вы хотели сказать, поясните.
[quote="Victor__v"]Изменять размер врем. словаря требуется редко, а махинации с этой переменной могут сильно увеличить веселье :dmad; , если в форте сильная завязка на врем. словари, а у Новы сильная.[/quote] не понял, что вы хотели сказать, поясните.
|
|
|
|
Добавлено: Ср мар 06, 2019 16:12 |
|
|
|
|
|
Заголовок сообщения: |
Re: Особенности системы |
|
|
mOleg писал(а): Ну, и, вопросы были таки не про ядро СПФ, а про ваше видение рудиментов (что ими является). То, что не работает в ядре или работает отсюда и до обеда. Так ведут себя некоторые переменные. Что в Нове (поправлено), что в СПФ слово TEMP-WL-SIZE. Изменять размер врем. словаря требуется редко, а махинации с этой переменной могут сильно увеличить веселье , если в форте сильная завязка на врем. словари, а у Новы сильная. .... Часть текста убрана, как неактуальная
[quote="mOleg"]Ну, и, вопросы были таки не про ядро СПФ, а про ваше видение рудиментов (что ими является).[/quote] То, что не работает в ядре или работает отсюда и до обеда. Так ведут себя некоторые переменные. Что в Нове (поправлено), что в СПФ слово TEMP-WL-SIZE. Изменять размер врем. словаря требуется редко, а махинации с этой переменной могут сильно увеличить веселье :dmad; , если в форте сильная завязка на врем. словари, а у Новы сильная.
.... Часть текста убрана, как неактуальная
|
|
|
|
Добавлено: Вт мар 05, 2019 11:02 |
|
|
|
|
|
Заголовок сообщения: |
Re: Особенности системы |
|
|
Victor__v писал(а): "Вкус" в переносном смысле. И хватит обсуждать ядро СПФ, тема не про него. Я не про СПФ ради СПФ, а лишь потому, что вы знаете только СПФ 8) Ну, и, вопросы были таки не про ядро СПФ, а про ваше видение рудиментов (что ими является). Victor__v писал(а): Я вообще хотел изначально сделать более простую и логичную систему по сравнению с СПФ, сохранив и приумножив все его понравившиеся мне плюшки и добавить свои. Полученным результатом я доволен. понятно. мне просто интересно было получить ответы на мои вопросы.
[quote="Victor__v"]"Вкус" в переносном смысле. И хватит обсуждать ядро СПФ, тема не про него.[/quote] Я не про СПФ ради СПФ, а лишь потому, что вы знаете только СПФ 8) Ну, и, вопросы были таки не про ядро СПФ, а про ваше видение рудиментов (что ими является).
[quote="Victor__v"]Я вообще хотел изначально сделать более простую и логичную систему по сравнению с СПФ, сохранив и приумножив все его понравившиеся мне плюшки и добавить свои. Полученным результатом я доволен.[/quote] понятно. мне просто интересно было получить ответы на мои вопросы.
|
|
|
|
Добавлено: Вт мар 05, 2019 09:24 |
|
|
|
|
|
Заголовок сообщения: |
Re: Особенности системы |
|
|
Неплохо. Так же сделал бы… если бы не заглянул в исходники Test Suite.
Неплохо. Так же сделал бы… если бы не заглянул в исходники Test Suite. :)
|
|
|
|
Добавлено: Вт мар 05, 2019 03:12 |
|
|
|
|
|
Заголовок сообщения: |
Re: Особенности системы |
|
|
ath писал(а): ... Транслятор файлов читает файл частями, разграничивая его по последнему найденному переводу строки. Перезагрузка транслятора осуществляется вектором REFILL. другие подробности можно найти в папке DOCS поставки Новы
[quote="ath"] ... [/quote] Транслятор файлов читает файл частями, разграничивая его по последнему найденному переводу строки. Перезагрузка транслятора осуществляется вектором 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
[quote="Victor__v"]SOURCE SOURCE-ID и пр. совершенно лишние. Достаточно трёх переменных (указатель на буфер, тек. позиция, кол-во символов в буфере) и функцию обновлению источника (REFILL). Набор исчерпывающий. Зачем было в СПФ городить дополнительный огород вокруг этого мне непонятно.[/quote] Погуглил немножко.
Похоже, что в стандарте 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 писал(а): просто интересно чего вы хотите добиться в итоге. )) Захватить весь мир и вести его к процветанию, естественно, через форт Я вообще хотел изначально сделать более простую и логичную систему по сравнению с СПФ, сохранив и приумножив все его понравившиеся мне плюшки и добавить свои. Полученным результатом я доволен.
[quote="mOleg"]про PAD[/quote] прокладку нафиг. Очередная флеймогонная тема, замнём для ясности
[quote="mOleg"]а вот вкус тут не должен влиять, тут должна быть построена логичная цепочка рассуждений и предложены альтернативные варианты на мой взгляд. Тогда будет более-менее корректно.[/quote] "Вкус" в переносном смысле. И хватит обсуждать ядро СПФ, тема не про него.
[quote="mOleg"]просто интересно чего вы хотите добиться в итоге. 8)))[/quote] Захватить весь мир и вести его к процветанию, естественно, через форт :)) Я вообще хотел изначально сделать более простую и логичную систему по сравнению с СПФ, сохранив и приумножив все его понравившиеся мне плюшки и добавить свои. Полученным результатом я доволен.
|
|
|
|
Добавлено: Пн мар 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)
мне очень интересен этот вопрос, т.к. в ряде случаев заявляющий о рудиментах не понимает почему механизмы появились, почему сделаны именно так, а не иначе, и, возможно, просто не умеют пользоваться ими. Форматное преобразование строк в Форте сделано шикарно 8) [quote="Victor__v"]PAD и всё, что с этим связано.[/quote] тут я с вами не соглашусь никак.
[quote="Victor__v"]Трансляция чисел двойной длины через точку[/quote] Тут, кстати, тоже интересный момент. А вы пользовались арифметикой с фиксированной точкой когда-нибудь? хотя я согласен, что вариант не удобный
[quote="Victor__v"]Всё остальное может быть или не быть. по вкусу так сказать.[/quote] а вот вкус тут не должен влиять, тут должна быть построена логичная цепочка рассуждений и предложены альтернативные варианты на мой взгляд. Тогда будет более-менее корректно.
?Почему я об этом пишу: написание нового Форта интересно и полезно для других в ряде случаев: - когда опробуется новая концепция (поиск развития языка); - когда происходит вдумчивое изучения языка; - когда пишется обучающий материал (ну, например, как можно реализовать Форт на другом языке); - когда пишется реализация под конкретную задачу(Тот же СПФ). В общем, что-то сколько-нибудь амбициозное 8) Может и еще что-то, но не, just for fun, потому что это польза только для вас 8) (так вижу я)
[quote="Victor__v"]Только причём Нова и ядро СПФ? Когда писал форт, на СПФ сильно не заглядывался.[/quote] просто интересно чего вы хотите добиться в итоге. 8)))
[quote="Victor__v"]А вот про SOURCE очень интересно. Какие альтернативы вы считаете лучше?
Никакие. SOURCE SOURCE-ID и пр. совершенно лишние.[/quote] о ужас, ведь у меня все еще сложнее реализовано 8) аж 3 с лишним кБ(правда с комментариями) 8)
|
|
|
|
Добавлено: Пн мар 04, 2019 23:17 |
|
|
|
|
|
Заголовок сообщения: |
Re: Особенности системы |
|
|
Спасибо. А в СПФ это из ANS: http://forth.sourceforge.net/standard/d ... 1.6.1.2218Видимо, для переносимой реализации INCLUDE-FILE
Спасибо. А в СПФ это из ANS: http://forth.sourceforge.net/standard/dpans/dpans11.htm#11.6.1.2218
Видимо, для переносимой реализации INCLUDE-FILE
|
|
|
|
Добавлено: Пн мар 04, 2019 23:17 |
|
|
|
|
|
Заголовок сообщения: |
Re: Особенности системы |
|
|
ath писал(а): А вот про SOURCE очень интересно. Какие альтернативы вы считаете лучше? Никакие. SOURCE SOURCE-ID и пр. совершенно лишние. Достаточно трёх переменных (указатель на буфер, тек. позиция, кол-во символов в буфере) и функцию обновлению источника (REFILL). Набор исчерпывающий. Зачем было в СПФ городить дополнительный огород вокруг этого мне непонятно.
[quote="ath"]А вот про SOURCE очень интересно. Какие альтернативы вы считаете лучше?[/quote] Никакие. SOURCE SOURCE-ID и пр. совершенно лишние. Достаточно трёх переменных (указатель на буфер, тек. позиция, кол-во символов в буфере) и функцию обновлению источника (REFILL). Набор исчерпывающий. Зачем было в СПФ городить дополнительный огород вокруг этого мне непонятно.
|
|
|
|
Добавлено: Пн мар 04, 2019 22:50 |
|
|
|
|
|
Заголовок сообщения: |
Re: Особенности системы |
|
|
Victor__v писал(а): mOleg писал(а): Интересно, а что по-вашему в ядре СПФа является рудиментом (можно примеры?) PAD и всё, что с этим связано. Трансляция чисел двойной длины через точку SOURCE и всё, что с этим связано. Про PAD мы, наверное, никогда не сойдёмся. Влюблён в него. А вот про SOURCE очень интересно. Какие альтернативы вы считаете лучше?
[quote="Victor__v"] [quote="mOleg"]Интересно, а что по-вашему в ядре СПФа является рудиментом (можно примеры?)[/quote] PAD и всё, что с этим связано. Трансляция чисел двойной длины через точку SOURCE и всё, что с этим связано. [/quote] Про PAD мы, наверное, никогда не сойдёмся. Влюблён в него. :shuffle;
А вот про SOURCE очень интересно. Какие альтернативы вы считаете лучше?
|
|
|
|
Добавлено: Пн мар 04, 2019 22:38 |
|
|
|
|
|
Заголовок сообщения: |
Re: Особенности системы |
|
|
mOleg писал(а): Интересно, а что по-вашему в ядре СПФа является рудиментом (можно примеры?) PAD и всё, что с этим связано. Трансляция чисел двойной длины через точку SOURCE и всё, что с этим связано. Всё остальное может быть или не быть. по вкусу так сказать. Только причём Нова и ядро СПФ? Когда писал форт, на СПФ сильно не заглядывался. mOleg писал(а): Т.е. вопрос в том, когда вам надоест. Наверно, никогда. Совершенство, оно знаете ли, требует вечности mOleg писал(а): Я вообще взял отпотолочный пример для иллюстрации В Нове уже есть и юзается некоторыми либами P. S. сделал об этом пометку в первом сообщении
[quote="mOleg"]Интересно, а что по-вашему в ядре СПФа является рудиментом (можно примеры?)[/quote] PAD и всё, что с этим связано. Трансляция чисел двойной длины через точку SOURCE и всё, что с этим связано. Всё остальное может быть или не быть. по вкусу так сказать. Только причём Нова и ядро СПФ? Когда писал форт, на СПФ сильно не заглядывался.
[quote="mOleg"]Т.е. вопрос в том, когда вам надоест.[/quote] Наверно, никогда. Совершенство, оно знаете ли, требует вечности :)
[quote="mOleg"] Я вообще взял отпотолочный пример для иллюстрации :D[/quote] В Нове уже есть и юзается некоторыми либами :) P. S. сделал об этом пометку в первом сообщении
|
|
|
|
Добавлено: Пн мар 04, 2019 21:56 |
|
|
|
|
|
Заголовок сообщения: |
Re: Особенности системы |
|
|
Victor__v писал(а): Просто убираю из ядра рудименты. Интересно, а что по-вашему в ядре СПФа является рудиментом (можно примеры?) Victor__v писал(а): Хм, ну не знаю. В ядре вроде бы ошибок нет. Последний баг был аж в конце 2018-го. Дальше странностей всплывало. я не про ошибки, а про заявленную цель, и, как следствие ограничение перспектив разарботки. Т.е. вопрос в том, когда вам надоест. Victor__v писал(а): Возможность того, чтобы каждый словарь мог влиять на процесс компиляции кода. Сразу вытекают такие плюшки, как возможность простой оптимизации, поддержка корректности лок. переменных, возможность пост. определения слов. И всё это без переопределения уже существующих слов. Я вообще взял отпотолочный пример для иллюстрации :D
[quote="Victor__v"]Просто убираю из ядра рудименты. [/quote] Интересно, а что по-вашему в ядре СПФа является рудиментом (можно примеры?)
[quote="Victor__v"]Хм, ну не знаю. В ядре вроде бы ошибок нет. Последний баг был аж в конце 2018-го. Дальше странностей всплывало.[/quote] я не про ошибки, а про заявленную цель, и, как следствие ограничение перспектив разарботки. Т.е. вопрос в том, когда вам надоест.
[quote="Victor__v"]Возможность того, чтобы каждый словарь мог влиять на процесс компиляции кода. Сразу вытекают такие плюшки, как возможность простой оптимизации, поддержка корректности лок. переменных, возможность пост. определения слов. И всё это без переопределения уже существующих слов.[/quote] Я вообще взял отпотолочный пример для иллюстрации :D
|
|
|
|
Добавлено: Пн мар 04, 2019 21:38 |
|
|
|
|