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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 197 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12, 13, 14  След.
Автор Сообщение
 Заголовок сообщения: Re: Каллисто 1.0 для «Электроники МК-161»
СообщениеДобавлено: Вт сен 18, 2018 11:34 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1287
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
DUP \ D: a -- a a
ALSO \ Voc: a -- a a
Действия аналогичны, только стеки разные.

В поставке СПФ в разделе devel есть слова для этого
Кажется от ~yz
>ORDER и ORDER> вроде бы
Но насколько эти слова востребованы?
Да и определить их проще пареной репы
Код:
: >ORDER ALSO CONTEXT ! ;
: ORDER> CONTEXT @ PREVIOUS ;

можно и на асме.

Вот только зачем эти слова?
Вполне просто обходится связкой
ALSO/PREVIOUS

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Каллисто 1.0 для «Электроники МК-161»
СообщениеДобавлено: Вт сен 18, 2018 13:24 
Просто смотрю, как написанные для Форт-2012 программы кладут на стек поиска без VOCABULARY

ORDER> и >ORDER там нет, ALSO/PREVIOUS есть. CONTEXT тоже нестандартное слово. Зато есть SET-ORDER и GET-ORDER

Но если дело ограничивается SET-ORDER , тогда ALSO бесполезное слово.

(поискал немножко) В стандарте есть часть Annex E: Reference Implementations. Там определяется context , как необязательные «потроха» эталонной реализации. Обычные программы, использующие списки слов, не должны зависеть от context :

Код:
E.16.6.1.1647 GET-ORDER
Here is a very simple search order implementation:
VARIABLE #order

CREATE context 16 ( wordlists ) CELLS ALLOT

: GET-ORDER ( -- wid1 ... widn n )
   #order @ 0 ?DO
     #order @ I - 1- CELLS context + @
   LOOP
   #order @
;


Самое же странное, что слово ORDER должно распечатывать обсуждаемый стек:
http://forth-standard.org/standard/search/ORDER

В то время, как WORDLIST создаёт безымянные списки слов. Что же будет выводить на экран ORDER , непонятные числовые значения wid ?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Каллисто 1.0 для «Электроники МК-161»
СообщениеДобавлено: Вт сен 18, 2018 14:36 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1287
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Ну, SET-ORDER и GET-ORDER полезные слова.
Только нужны они либо для сохранения контекста, либо для сложных операций с порядком поиска, что редкость.
Для более интересных манипуляций потребуются слова для работы со множествами.

Зачем выкидывать ALSO при наличии SET-ORDER и GET-ORDER ?
Это разные операции, созданные, внезапно, для разных целей.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Каллисто 1.0 для «Электроники МК-161»
СообщениеДобавлено: Вт сен 18, 2018 14:43 
ALSO имеет смысл при наличии операции замены верхушки стека поиска (контекста) — так делали словари, созданные устаревшим VOCABULARY

Если единственный стандартный способ записать что-то в этот стек это SET-ORDER (изменить его содержимое целиком), тонкие операции вроде ALSO лишаются всякого смысла.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Каллисто 1.0 для «Электроники МК-161»
СообщениеДобавлено: Вт сен 18, 2018 15:40 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1287
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
ALSO это простая операция. примитив.
Если следовать стандарту, как это сделали в СПФ, к примеру, то может получиться тот ещё треш и угар.

Спс. поправил :D
Как сделано в СПФ:
Код:
: ALSO GET-ORDER >R DUP R> 1+ SET-ORDER ;

:^) Шедевр, одним словом
И всё это из-за реализации контекста в виде списка.

SET-ORDER требуется очень редко.
ALSO гораздо чаще используется в словарных форт-системах. Сошлюсь я тут на свою девочку (Nova), СПФ и Fork от mOlega (последнее, возможно не точно)

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


Последний раз редактировалось Victor__v Вт сен 18, 2018 17:13, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Каллисто 1.0 для «Электроники МК-161»
СообщениеДобавлено: Вт сен 18, 2018 16:23 
Это всё понятно. Вот эталон из стандарта:
Код:
: ALSO ( -- )
   GET-ORDER OVER SWAP 1+ SET-ORDER
;


Но, повторюсь в третий раз, для ALSO должен быть механизм включения списков слов в контекст. А его в стандарте я пока не нашёл, кроме громоздкого SET-ORDER

Видимо, вопрос надо авторам Форта-2012 задавать, а не здесь. Что новый подход предлагает взамен VOCABULARY ? Сделал запрос, подождём ответа.
http://forth-standard.org/standard/search/ALSO

Я прекрасно понимаю, почему вы и СПФ сохранили это слово. Но не понял, как Форт-2012 предлагает от него избавиться.


Последний раз редактировалось ath Вт сен 18, 2018 18:01, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Каллисто 1.0 для «Электроники МК-161»
СообщениеДобавлено: Вт сен 18, 2018 17:49 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1287
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Да, без неявного использования контекста можно обойтись ( ALSO VOCABULARY и пр.)
Слова навскидку тогда
>ORDER
ORDER>
ORDER-DROP \ аналог PREVIOUS без вариантов
CONTEXT
SET-ORDER
GET-ORDER
WORDLIST
TEMP-WORDLIST
CURRENT
DEFINITIONS

Создание словаря в ново-только-что-придуманном стандарте будет просто
Код:
: VOCABULARY WORDLIST CONSTANT ;


Соот-но
VOCABULARY TEST-VOC
TEST-VOC >ORDER
WORDLIST >ORDER
DEFINITIONS

Посоветовал бы просто принять стандарт к сведению, а не следовать ему.
У всех же разные хотелки.

Аккуратнее :)
Стандарты могут превратить Калисто в сферического коня в вакууме пополам с чайником Рассела

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Каллисто 1.0 для «Электроники МК-161»
СообщениеДобавлено: Вт сен 18, 2018 17:59 
Можно и так, конечно. Но если игнорировать стандарт, я бы предпочёл оставить VOCABULARY для совместимости с 1.0 — добавив к вашему определению DOES> CONTEXT ! или вроде того.

Но сперва подожду и посмотрю, что стандарт имеет нам предложить. Полностью его реализовать на МК-161 не получится. Как минимум это уберёт совместимость с Б3-34. Но что там есть хорошего и полезного, утащить к себе хочется. :D


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Каллисто 1.0 для «Электроники МК-161»
СообщениеДобавлено: Вт сен 18, 2018 18:54 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
ath писал(а):
Для меня пока есть. В частности, там есть обсуждавшиеся ALSO/ONLY и THROW/CATCH

первое не очень интересно и совсем просто.
второе может быть реализовано интереснее, например DEMAND REJECT и другие варианты.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Каллисто 1.0 для «Электроники МК-161»
СообщениеДобавлено: Вт сен 18, 2018 19:04 
Не в сети
Moderator
Moderator
Аватара пользователя

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

не верно, там не так.

Victor__v писал(а):
Вот только зачем эти слова?
Вполне просто обходится связкой
ALSO/PREVIOUS

они как раз определяются через >ORDER и ORDER>
вообще, я так понимаю, все заморочки из-за необходимости работать с контекстом в параллельных потоках
(а я не знаю, имеет ли многозадачность сабж)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Мнение о форте и стандартах
СообщениеДобавлено: Вт сен 18, 2018 19:05 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1287
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
У каждого форта свои особенности.
Можно сказать, что каждая форт-система это ребёнок некоей полигамной семьи с Демиургом во главе, где жёны это форт-системы из которых Демиург-создатель черпал вдохновение для своего детища.
Тут подходят слова развитие, эволюция, генетика.
А тут стандарты со своей генеральной линией партии.
А почему у вашего ребёнка глаза голубые? По стандарту должны быть зелёные.
Почему не курит? Говорите устарело, толку нет? По стандарту должен.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Каллисто 1.0 для «Электроники МК-161»
СообщениеДобавлено: Вт сен 18, 2018 19:10 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1287
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
mOleg писал(а):
Victor__v писал(а):
Да и определить их проще пареной репы
Код:
: >ORDER ALSO CONTEXT ! ;
: ORDER> CONTEXT @ PREVIOUS ;

не верно, там не так.

Victor__v писал(а):
Вот только зачем эти слова?
Вполне просто обходится связкой
ALSO/PREVIOUS

они как раз определяются через >ORDER и ORDER>
вообще, я так понимаю, все заморочки из-за необходимости работать с контекстом в параллельных потоках
(а я не знаю, имеет ли многозадачность сабж)


Видимо мы говорим о разном.
Я привёл пример из СПФ.
И я-таки угадал, прошу заметить.
Код:
\ Упрощенное управление словарями
\ Ю. Жиловец, 17.07.2004

: >ORDER ( wid -- ) ALSO CONTEXT ! ;
: ORDER@ ( -- wid) CONTEXT @ ;
: ORDER> ( -- wid) ORDER@ PREVIOUS ;


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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Каллисто 1.0 для «Электроники МК-161»
СообщениеДобавлено: Вт сен 18, 2018 19:38 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Victor__v писал(а):
Видимо мы говорим о разном.
Я привёл пример из СПФ.
И я-таки угадал, прошу заметить.
Код:
\ Упрощенное управление словарями
\ Ю. Жиловец, 17.07.2004

: >ORDER ( wid -- ) ALSO CONTEXT ! ;
: ORDER@ ( -- wid) CONTEXT @ ;
: ORDER> ( -- wid) ORDER@ PREVIOUS ;

да, немного о разном, ( но ALSO и PREVIOUS реализованы через GET-ORDER и SET-ORDER)

Victor__v писал(а):
У каждого форта свои особенности.

это к сожалению не совсем так,
особенности не интересны в большинстве случаев, что-то действительно интересное встречается очень редко.

Ну, а вообще, есть и более интересные варианты управления контекстом:
Unit-ы и понравившийся мне пример
и вообще, все ограничивает фантазия 8)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Каллисто 1.0 для «Электроники МК-161»
СообщениеДобавлено: Вт сен 18, 2018 21:28 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1287
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Лично у меня ALSO и PREVIOUS сделаны на асме.
Нафиг список контекста. Это прихвостни лиспа сделали. Да будет стек контекста! :D

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Каллисто 1.0 для «Электроники МК-161»
СообщениеДобавлено: Вт сен 18, 2018 22:33 
mOleg
В 1.0 многозадачности нет. В 2.0 пока не планируется.

Идея стека контекста мне нравится. Стандарту она не противоречит. Вообще стандарт не диктует реализацию. Он призван объединять различные уже существующие реализации. Жаль авторы отечественных Фортов практически не участвуют в работе международного комитета по стандартизации. :(


Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 197 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12, 13, 14  След.

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


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

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


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

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