Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
Как раз свой форт пишу. Так уже нескольких кривых мест нету А что с этим делать пока без понятия Касательно этого пункта стадия - "компиляция в уме" Цитата: Ну так и реализовал бы проще и выложил Ну, в СПФ реализовано проще некуда. А в его внутренности я лезу за вдохновением. И за тех.решениями. Вот мой набросок: Цитата: : VOC-ACCESS? \ addr u -- ?? -1| 0 S" ::" SPLIT ( A U s-A s-U -- A U 0 | A1 U1 A2 U2 -1 ) 0= IF 2DROP 0 EXIT THEN 2SWAP SFIND ( addr u -- addr u 0| ffa@ xt -1 ) 0= IF 2DROP 2DROP 0 EXIT THEN NIP DUP ['] VOC-CODE CALL-in-addr? ( addr xt -- -1|0 ) 0= IF DROP 2DROP 0 EXIT THEN \ это словарь? >param @ >R BEGIN \ теперь ищем не в контексте, а цепочечно R@ SFIND-IN-VOC ( addr u lfa -- addr u 0| ffa@ xt -1 ) IF RDROP STATE @ IF FFA-COMPILE, ELSE NIP EXECUTE THEN -1 EXIT ELSE S" ::" SPLIT 0= IF 2DROP RDROP 0 EXIT THEN 2SWAP R@ SFIND-IN-VOC 0= IF 2DROP 2DROP RDROP 0 EXIT THEN NIP DUP ['] VOC-CODE CALL-in-addr? ( addr xt -- -1|0 ) 0= IF DROP 2DROP RDROP 0 EXIT THEN >param @ RP@ ! AGAIN ;
Как можно заметить, код здесь немного повторяется. СПФ-ский вариант за парой моментов гораздо проще
Как раз свой форт пишу. Так уже нескольких кривых мест нету :) А что с этим делать пока без понятия :) Касательно этого пункта стадия - "компиляция в уме"
[quote]Ну так и реализовал бы проще и выложил[/quote] Ну, в СПФ реализовано проще некуда. А в его внутренности я лезу за вдохновением. И за тех.решениями.
Вот мой набросок: [quote] : VOC-ACCESS? \ addr u -- ?? -1| 0 S" ::" SPLIT ( A U s-A s-U -- A U 0 | A1 U1 A2 U2 -1 ) 0= IF 2DROP 0 EXIT THEN 2SWAP SFIND ( addr u -- addr u 0| ffa@ xt -1 ) 0= IF 2DROP 2DROP 0 EXIT THEN NIP DUP ['] VOC-CODE CALL-in-addr? ( addr xt -- -1|0 ) 0= IF DROP 2DROP 0 EXIT THEN \ это словарь? >param @ >R BEGIN \ теперь ищем не в контексте, а цепочечно R@ SFIND-IN-VOC ( addr u lfa -- addr u 0| ffa@ xt -1 ) IF RDROP STATE @ IF FFA-COMPILE, ELSE NIP EXECUTE THEN -1 EXIT ELSE S" ::" SPLIT 0= IF 2DROP RDROP 0 EXIT THEN 2SWAP R@ SFIND-IN-VOC 0= IF 2DROP 2DROP RDROP 0 EXIT THEN NIP DUP ['] VOC-CODE CALL-in-addr? ( addr xt -- -1|0 ) 0= IF DROP 2DROP RDROP 0 EXIT THEN >param @ RP@ ! AGAIN ; [/quote] Как можно заметить, код здесь немного повторяется. СПФ-ский вариант за парой моментов гораздо проще
|
|
|
|
Добавлено: Вс июл 09, 2017 11:10 |
|
|
|
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
Victor__v писал(а): Так реализовать просто гораздо проще. Извините за каламбур. Ну так и реализовал бы проще и выложил. Мол замените определение NOTFOUND на вот такую вот реализацию, перекомпилируйте и все будет корректно. Атвичаю. Просто я SPF 4 пользуюсь для скоростного написания не сложных консольных прикладных программ на коленке, но вот в его внутренностях копаться (хотя в SPF 2 копался ) ... я тогда лучше свой Форт напишу, это интереснее. А если уж ты копаешься, то тебе и флаг в руки. Показывай лучшие варианты реализации кривых мест и все.
[quote="Victor__v"]Так реализовать просто гораздо проще. Извините за каламбур.[/quote]Ну так и реализовал бы проще и выложил. Мол замените определение NOTFOUND на вот такую вот реализацию, перекомпилируйте и все будет корректно. Атвичаю. Просто я SPF 4 пользуюсь для скоростного написания не сложных консольных прикладных программ на коленке, но вот в его внутренностях копаться (хотя в SPF 2 копался :lol: ) ... я тогда лучше свой Форт напишу, это интереснее. А если уж ты копаешься, то тебе и флаг в руки. Показывай лучшие варианты реализации кривых мест и все.
|
|
|
|
Добавлено: Вс июл 09, 2017 05:46 |
|
|
|
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
Код: : NOTFOUND ( a u -- ) \ обращение к словам в словарях в виде vocname1::wordname \ или vocname1::vocname2::wordname и т.п. \ или vocname1:: wordname \ Слово wordname транслируется в модифицированном контексте (!)
2DUP 2>R ['] ?SLITERAL CATCH ?DUP IF NIP NIP 2R> 2DUP S" ::" SEARCH 0= IF 2DROP 2DROP THROW THEN \ Вообще есть :: ? 2DROP ROT DROP GET-ORDER N>R BEGIN ( a u ) 2DUP S" ::" SEARCH WHILE ( a1 u1 a3 u3 ) 2 -2 D+ ( пропуск разделителя :: ) 2>R R@ - 2 - SFIND IF SP@ >R ALSO EXECUTE SP@ R> - 0= IF CONTEXT ! THEN ELSE ( a1 u' ) RDROP RDROP NR> SET-ORDER -2011 THROW THEN 2R> REPEAT NIP 0= IF 2DROP PARSE-NAME THEN ['] EVAL-WORD CATCH NR> SET-ORDER THROW ELSE RDROP RDROP THEN ;
Вот и вся реализация. Цитата: Ибо раз префикс FORTH:: воздействует на order Так реализовать просто гораздо проще. Извините за каламбур. Можно сделать так, чтобы после поиска в контексте сразу искать в найденном словаре, а не перерыскивать весь контекст заново. Это лишает некоторых фич как FORTH::['] FORTH , но сразу даёт понять что в словаре нет искомого слова В СПФ данный пример работает Цитата: VOCABULARY TEST 10 FORTH::TEST::DUP \ a -- a a
Но по логике должен завершаться ошибкой
[code]: NOTFOUND ( a u -- ) \ обращение к словам в словарях в виде vocname1::wordname \ или vocname1::vocname2::wordname и т.п. \ или vocname1:: wordname \ Слово wordname транслируется в модифицированном контексте (!)
2DUP 2>R ['] ?SLITERAL CATCH ?DUP IF NIP NIP 2R> 2DUP S" ::" SEARCH 0= IF 2DROP 2DROP THROW THEN \ Вообще есть :: ? 2DROP ROT DROP GET-ORDER N>R BEGIN ( a u ) 2DUP S" ::" SEARCH WHILE ( a1 u1 a3 u3 ) 2 -2 D+ ( пропуск разделителя :: ) 2>R R@ - 2 - SFIND IF SP@ >R ALSO EXECUTE SP@ R> - 0= IF CONTEXT ! THEN ELSE ( a1 u' ) RDROP RDROP NR> SET-ORDER -2011 THROW THEN 2R> REPEAT NIP 0= IF 2DROP PARSE-NAME THEN ['] EVAL-WORD CATCH NR> SET-ORDER THROW ELSE RDROP RDROP THEN ; [/code]
Вот и вся реализация.
[quote]Ибо раз префикс FORTH:: воздействует на order[/quote] Так реализовать просто гораздо проще. Извините за каламбур. Можно сделать так, чтобы после поиска в контексте сразу искать в найденном словаре, а не перерыскивать весь контекст заново. Это лишает некоторых фич как FORTH::['] FORTH , но сразу даёт понять что в словаре нет искомого слова В СПФ данный пример работает [quote] VOCABULARY TEST 10 FORTH::TEST::DUP \ a -- a a [/quote] Но по логике должен завершаться ошибкой
|
|
|
|
Добавлено: Сб июл 08, 2017 13:39 |
|
|
|
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
Victor__v писал(а): Самый идиотский пример FORTH::GET-ORDER выведет не 1 а 2 словаря. Что уже ошибка. А как там это реализовано ? Если есть префикс vocab:: , то на время выполнения данного слова в цепочку поиска временно добавляется еще словарь vocab ? Тогда FORTH::GET-ORDER и должна выдавать на один словарь больше. Да и при любой другой реализации этого дела будет неопределенная ситуация. Ибо раз префикс FORTH:: воздействует на order , то GET-ORDER не может выдать то-же, что и без этого префикса. Даже и по смыслу.
[quote="Victor__v"]Самый идиотский пример FORTH::GET-ORDER выведет не 1 а 2 словаря. Что уже ошибка.[/quote]А как там это реализовано ? Если есть префикс vocab:: , то на время выполнения данного слова в цепочку поиска временно добавляется еще словарь vocab ? Тогда FORTH::GET-ORDER и должна выдавать на один словарь больше. Да и при любой другой реализации этого дела будет неопределенная ситуация. Ибо раз префикс FORTH:: воздействует на order , то GET-ORDER не может выдать то-же, что и без этого префикса. Даже и по смыслу.
|
|
|
|
Добавлено: Сб июл 08, 2017 07:05 |
|
|
|
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
В СПФ можно выполнить слово из другого словаря обратившись к нему через :: . И вот заметил в режиме интерпретации, операции со словарями через данное обращение работает некорректно. Самый идиотский пример FORTH::GET-ORDER выведет не 1 а 2 словаря. Что уже ошибка. Устраняется данная особенность одной строчкой, но из-за этого блокируется другая фича этого механизма. А именно компиляция адреса из словаря ( vocab::['] test ) Механизм доступа к слову из словаря полезен, но, на мой взгляд, не очень корректен в СПФ. Да и реализация тяжеловесная.
В СПФ можно выполнить слово из другого словаря обратившись к нему через :: . И вот заметил в режиме интерпретации, операции со словарями через данное обращение работает некорректно. Самый идиотский пример FORTH::GET-ORDER выведет не 1 а 2 словаря. Что уже ошибка. Устраняется данная особенность одной строчкой, но из-за этого блокируется другая фича этого механизма. А именно компиляция адреса из словаря ( vocab::['] test ) Механизм доступа к слову из словаря полезен, но, на мой взгляд, не очень корректен в СПФ. Да и реализация тяжеловесная.
|
|
|
|
Добавлено: Ср июл 05, 2017 19:56 |
|
|
|
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
Цитата: Но по вашему devel с ума сошел? Откуда такие выводы?
[quote]Но по вашему devel с ума сошел?[/quote] Откуда такие выводы?
|
|
|
|
Добавлено: Вт апр 25, 2017 09:20 |
|
|
|
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
Victor__v писал(а): Цитата: Многие используют СПФ, К примеру https://yadi.sk/d/xTBcf3_l39EnASВполне устраивает. Что бы предложили для улучшения.. Ая-яй Я думал там код в папку девел, а там целая программа Вопрос скорее не в том, что мы пишем на СПФ, а в том что делать, ежели механизмы СПФ-а "сходят с ума" Как notfound может при определённых условиях. Или here dp во временных словарях. см. на пред страницах. Если что и начать менять то эти вещи для начала. Как? уже сообщалось ранее. "Victor__v" О чем это то вы? Хищник свое мнение высказал.. в чем то согласен... Но по вашему devel с ума сошел?
[quote="Victor__v"][quote]Многие используют СПФ, К примеру https://yadi.sk/d/xTBcf3_l39EnAS Вполне устраивает. Что бы предложили для улучшения..[/quote] Ая-яй :D Я думал там код в папку девел, а там целая программа :)
Вопрос скорее не в том, что [i]мы пишем[/i] на СПФ, а в том что делать, ежели механизмы СПФ-а "сходят с ума" Как notfound может при определённых условиях. Или here dp во временных словарях. см. на пред страницах. Если что и начать менять то эти вещи для начала. Как? уже сообщалось ранее.[/quote] "Victor__v" О чем это то вы? Хищник свое мнение высказал.. в чем то согласен... Но по вашему devel с ума сошел?
|
|
|
|
Добавлено: Пн апр 24, 2017 19:56 |
|
|
|
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
Ilya писал(а): Странные тут нападки на SPF4, вроде ничего умеющего стабильно (более или менее) работать на двух ОС Win/Lin никто из местных не предоставил решения получше, но SPF4 "кака"!? Вот мне SPF4 служит верой и правдой со времён "виндузятничества" и теперь (под Линухом) вполне рабочие вещи получаются! Я бы не назвал это нападками. Да и к тому же, что такое "решение получше"? Более SPF, чем SPF? Вопрос тут совершенно в другом. Многие фортеры начинают искать идеальный Форт, и хотят видеть его в SPF. Однако потом начинаются претензии - почему там нет того или этого. Почему не развивается вместе с другими языками и не добавляет их возможности. А все очень просто - он был сделан Черезовым для себя. Потом Черезов перестал заниматься планированием и понадеялся на ANS. SPF4 делался уже группой разработчиков, и никто не ответил прямо на вопрос "куда идет SPF". Ну и ожидаемо получили мешанину частных решений.
[quote="Ilya"]Странные тут нападки на SPF4, вроде ничего умеющего стабильно (более или менее) работать на двух ОС Win/Lin никто из местных не предоставил решения получше, но SPF4 "кака"!? Вот мне SPF4 служит верой и правдой со времён "виндузятничества" и теперь (под Линухом) вполне рабочие вещи получаются![/quote] Я бы не назвал это нападками. Да и к тому же, что такое "решение получше"? Более SPF, чем SPF? Вопрос тут совершенно в другом. Многие фортеры начинают искать идеальный Форт, и хотят видеть его в SPF. Однако потом начинаются претензии - почему там нет того или этого. Почему не развивается вместе с другими языками и не добавляет их возможности. А все очень просто - он был сделан Черезовым для себя. Потом Черезов перестал заниматься планированием и понадеялся на ANS. SPF4 делался уже группой разработчиков, и никто не ответил прямо на вопрос "куда идет SPF". Ну и ожидаемо получили мешанину частных решений.
|
|
|
|
Добавлено: Пн апр 24, 2017 00:25 |
|
|
|
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
Ilya писал(а): Странные тут нападки на SPF4, вроде ничего умеющего стабильно (более или менее) работать на двух ОС Win/Lin никто из местных не предоставил решения получше Дело вкуса. Понадобилась мне Win-фича - написал на коленке Win-FOBOS. Под 'nix-ом, честно говоря не вижу ниши под классический FORTH. Понадобилось "нечто странное" - начал писать FORTH с "файловым стеком". Когда хочется совместимости, юзаю Win32Forth. Но гораздо чаще использую "'элементы FORTH" при писании на совершенно других языках... Удобство вижу именно в написании своего особого FORTH под свою особую задачу, а не в зацикливании на чьей-то попытке решить "ихние" задачи, пусть эта попытка и была удачной.
[quote="Ilya"]Странные тут нападки на SPF4, вроде ничего умеющего стабильно (более или менее) работать на двух ОС Win/Lin никто из местных не предоставил решения получше[/quote]Дело вкуса. Понадобилась мне Win-фича - написал на коленке Win-FOBOS. Под 'nix-ом, честно говоря не вижу ниши под классический FORTH. Понадобилось "нечто странное" - начал писать FORTH с "файловым стеком". Когда хочется совместимости, юзаю Win32Forth. Но гораздо чаще использую "'элементы FORTH" при писании на совершенно других языках... Удобство вижу именно в написании своего особого FORTH под свою особую задачу, а не в зацикливании на чьей-то попытке решить "ихние" задачи, пусть эта попытка и была удачной.
|
|
|
|
Добавлено: Пн апр 24, 2017 00:12 |
|
|
|
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
Странные тут нападки на SPF4, вроде ничего умеющего стабильно (более или менее) работать на двух ОС Win/Lin никто из местных не предоставил решения получше, но SPF4 "кака"!? Вот мне SPF4 служит верой и правдой со времён "виндузятничества" и теперь (под Линухом) вполне рабочие вещи получаются!
Странные тут нападки на SPF4, вроде ничего умеющего стабильно (более или менее) работать на двух ОС Win/Lin никто из местных не предоставил решения получше, но SPF4 "кака"!? :? Вот мне SPF4 служит верой и правдой со времён "виндузятничества" и теперь (под Линухом) вполне рабочие вещи получаются!
|
|
|
|
Добавлено: Вс апр 23, 2017 23:42 |
|
|
|
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
Victor__v писал(а): Кто-нть спасибки может скажет но навряд ли Фортеров, исправляющих ошибки чужих реализаций, гораздо больше, чем пишущих под эти реализации, тем более - под кем-то исправленные...
[quote="Victor__v"]Кто-нть спасибки может скажет :shuffle; но навряд ли[/quote]Фортеров, исправляющих ошибки чужих реализаций, гораздо больше, чем пишущих под эти реализации, тем более - под кем-то исправленные...
|
|
|
|
Добавлено: Вс апр 23, 2017 17:30 |
|
|
|
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
В принципе, нет ничего сверхсложного в том, чтоб перекомпилировать СПФ без некоторых лагов и заменить notfound Займусь на досуге. Кто-нть спасибки может скажет но навряд ли А вот что делать с оптимизатором внутри ума не приложу. И навряд ли это ситуация " не тронешь - не потонет"
В принципе, нет ничего сверхсложного в том, чтоб перекомпилировать СПФ без некоторых лагов и заменить notfound Займусь на досуге. Кто-нть спасибки может скажет :shuffle; но навряд ли А вот что делать с оптимизатором внутри ума не приложу. И навряд ли это ситуация " не тронешь - не потонет"
|
|
|
|
Добавлено: Вс апр 23, 2017 17:07 |
|
|
|
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
Черезов уже очень давно отказался от разработки SPF, а практику работы свел к реализации ANS-94. Без четкой формулировки, что и зачем делается, SPF превратился в набор разнородных библиотек, пытающихся воспроизводить функциональность "не хуже, чем у других". А это путь в никуда. За другими не угнаться, а собственный облик уже потерян.
Черезов уже очень давно отказался от разработки SPF, а практику работы свел к реализации ANS-94. Без четкой формулировки, что и зачем делается, SPF превратился в набор разнородных библиотек, пытающихся воспроизводить функциональность "не хуже, чем у других". А это путь в никуда. За другими не угнаться, а собственный облик уже потерян.
|
|
|
|
Добавлено: Вс апр 23, 2017 16:59 |
|
|
|
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
Цитата: Они не сходят с ума, они просто свое отработали или так
[quote]Они не сходят с ума, они просто свое отработали[/quote] или так
|
|
|
|
Добавлено: Вс апр 23, 2017 16:52 |
|
|
|
|
|
Заголовок сообщения: |
Re: Глюк SPF? |
|
|
Victor__v писал(а): механизмы СПФ-а "сходят с ума" Они не сходят с ума, они просто свое отработали.
[quote="Victor__v"]механизмы СПФ-а "сходят с ума"[/quote]Они не сходят с ума, они просто свое отработали.
|
|
|
|
Добавлено: Вс апр 23, 2017 16:51 |
|
|
|
|