Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 20:55

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - Глюк SPF?
Автор Сообщение
  Заголовок сообщения:  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
;

Как можно заметить, код здесь немного повторяется.
СПФ-ский вариант за парой моментов гораздо проще
Сообщение Добавлено: Вс июл 09, 2017 11:10
  Заголовок сообщения:  Re: Глюк SPF?  Ответить с цитатой
Victor__v писал(а):
Так реализовать просто гораздо проще. Извините за каламбур.
Ну так и реализовал бы проще и выложил. Мол замените определение 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

Но по логике должен завершаться ошибкой
Сообщение Добавлено: Сб июл 08, 2017 13:39
  Заголовок сообщения:  Re: Глюк SPF?  Ответить с цитатой
Victor__v писал(а):
Самый идиотский пример FORTH::GET-ORDER выведет не 1 а 2 словаря. Что уже ошибка.
А как там это реализовано ? Если есть префикс vocab:: , то на время выполнения данного слова в цепочку поиска временно добавляется еще словарь vocab ? Тогда FORTH::GET-ORDER и должна выдавать на один словарь больше.
Да и при любой другой реализации этого дела будет неопределенная ситуация. Ибо раз префикс FORTH:: воздействует на order , то GET-ORDER не может выдать то-же, что и без этого префикса. Даже и по смыслу.
Сообщение Добавлено: Сб июл 08, 2017 07:05
  Заголовок сообщения:  Re: Глюк SPF?  Ответить с цитатой
В СПФ можно выполнить слово из другого словаря обратившись к нему через :: .
И вот заметил в режиме интерпретации, операции со словарями через данное обращение работает некорректно.
Самый идиотский пример FORTH::GET-ORDER выведет не 1 а 2 словаря. Что уже ошибка.
Устраняется данная особенность одной строчкой, но из-за этого блокируется другая фича этого механизма.
А именно компиляция адреса из словаря ( vocab::['] test )
Механизм доступа к слову из словаря полезен, но, на мой взгляд, не очень корректен в СПФ.
Да и реализация тяжеловесная.
Сообщение Добавлено: Ср июл 05, 2017 19:56
  Заголовок сообщения:  Re: Глюк SPF?  Ответить с цитатой
Цитата:
Но по вашему devel с ума сошел?

Откуда такие выводы?
Сообщение Добавлено: Вт апр 25, 2017 09:20
  Заголовок сообщения:  Re: Глюк SPF?  Ответить с цитатой
Victor__v писал(а):
Цитата:
Многие используют СПФ, К примеру https://yadi.sk/d/xTBcf3_l39EnAS
Вполне устраивает. Что бы предложили для улучшения..

Ая-яй :D Я думал там код в папку девел, а там целая программа :)

Вопрос скорее не в том, что мы пишем на СПФ, а в том что делать, ежели механизмы СПФ-а "сходят с ума"
Как notfound может при определённых условиях. Или here dp во временных словарях. см. на пред страницах.
Если что и начать менять то эти вещи для начала.
Как? уже сообщалось ранее.

"Victor__v" О чем это то вы? Хищник свое мнение высказал.. в чем то согласен... Но по вашему devel с ума сошел?
Сообщение Добавлено: Пн апр 24, 2017 19:56
  Заголовок сообщения:  Re: Глюк SPF?  Ответить с цитатой
Ilya писал(а):
Странные тут нападки на SPF4, вроде ничего умеющего стабильно (более или менее) работать на двух ОС Win/Lin никто из местных не предоставил решения получше, но SPF4 "кака"!?
Вот мне SPF4 служит верой и правдой со времён "виндузятничества" и теперь (под Линухом) вполне рабочие вещи получаются!

Я бы не назвал это нападками. Да и к тому же, что такое "решение получше"? Более 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 под свою особую задачу, а не в зацикливании на чьей-то попытке решить "ихние" задачи, пусть эта попытка и была удачной.
Сообщение Добавлено: Пн апр 24, 2017 00:12
  Заголовок сообщения:  Re: Глюк SPF?  Ответить с цитатой
Странные тут нападки на SPF4, вроде ничего умеющего стабильно (более или менее) работать на двух ОС Win/Lin никто из местных не предоставил решения получше, но SPF4 "кака"!? :?
Вот мне SPF4 служит верой и правдой со времён "виндузятничества" и теперь (под Линухом) вполне рабочие вещи получаются!
Сообщение Добавлено: Вс апр 23, 2017 23:42
  Заголовок сообщения:  Re: Глюк SPF?  Ответить с цитатой
Victor__v писал(а):
Кто-нть спасибки может скажет :shuffle; но навряд ли
Фортеров, исправляющих ошибки чужих реализаций, гораздо больше, чем пишущих под эти реализации, тем более - под кем-то исправленные...
Сообщение Добавлено: Вс апр 23, 2017 17:30
  Заголовок сообщения:  Re: Глюк SPF?  Ответить с цитатой
В принципе, нет ничего сверхсложного в том, чтоб перекомпилировать СПФ без некоторых лагов и заменить notfound
Займусь на досуге.
Кто-нть спасибки может скажет :shuffle; но навряд ли
А вот что делать с оптимизатором внутри ума не приложу. И навряд ли это ситуация " не тронешь - не потонет"
Сообщение Добавлено: Вс апр 23, 2017 17:07
  Заголовок сообщения:  Re: Глюк SPF?  Ответить с цитатой
Черезов уже очень давно отказался от разработки SPF, а практику работы свел к реализации ANS-94. Без четкой формулировки, что и зачем делается, SPF превратился в набор разнородных библиотек, пытающихся воспроизводить функциональность "не хуже, чем у других". А это путь в никуда. За другими не угнаться, а собственный облик уже потерян.
Сообщение Добавлено: Вс апр 23, 2017 16:59
  Заголовок сообщения:  Re: Глюк SPF?  Ответить с цитатой
Цитата:
Они не сходят с ума, они просто свое отработали

или так
Сообщение Добавлено: Вс апр 23, 2017 16:52
  Заголовок сообщения:  Re: Глюк SPF?  Ответить с цитатой
Victor__v писал(а):
механизмы СПФ-а "сходят с ума"
Они не сходят с ума, они просто свое отработали.
Сообщение Добавлено: Вс апр 23, 2017 16:51

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


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