Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 07:06

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 159 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11
Автор Сообщение
 Заголовок сообщения: Re: 3-х стековая виртуальная машина. размышления.
СообщениеДобавлено: Пт мар 09, 2018 14:17 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
_KROL писал(а):
Олег, если тебя смущает AD+ (видишь как суммму адреса и двойной ячейки), то вот ещё варианты: A+D A:D
Последний вроде точно по смыслу подходит.

меня устраивает A+

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 3-х стековая виртуальная машина. размышления.
СообщениеДобавлено: Пт мар 09, 2018 14:54 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
mOleg писал(а):
_KROL писал(а):
Олег, если тебя смущает AD+ (видишь как суммму адреса и двойной ячейки), то вот ещё варианты: A+D A:D
Последний вроде точно по смыслу подходит.

меня устраивает A+

Вполне по Фортовски для различения разных сущностей вводить свои лексиконы слов. :)

P.S. До этого была мысль, например, добавить к системе дублирование верхнего элемента стэка в регистре A вводимому в некоторых системах, но тогда >R R> слова отчасти уйдут из употребления в коде, что тоже не лучший вариант (т.к. будет использован 'неявный' контекст создания кода в Форт системе)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 3-х стековая виртуальная машина. размышления.
СообщениеДобавлено: Пт мар 09, 2018 18:03 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
_KROL писал(а):
Не вижу проблемы
Код:
: VARIABLE ( -- \\ -- a:addr ) CREATE 0 , DOES> ;
: CONSTANT ( d: x -- \\ -- d: x) CREATE , DOES> @ ;

Оно вобщем-то именно так обычно и реализуется. Вопрос в том, что с отдельным стеком адресов слово CREATE должно и число класть на стек адресов. А это значит, что подходы, рассчитанные на "создали и проверили, где выделена память" тоже надо переориентировать.

_KROL писал(а):
Я как-то не понимаю, в чём сложность держать два стека в голове? Не привычно? Да.

Почему не три? Не четыре? В качестве модели "почему бы и не так" оно имеет право на существование. В конце концов, можно много чего написать, в том числе и реализовать совершенно постороннюю вычислительную модель на Форте. Другое дело, что это имеет мало шансов стать мейнстримом, потому что существует рабочий подход, основанный на единственном стеке. А раз стек адресов можно не делать, то он и не будет сделан. Просто по принципу экономии сил.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 3-х стековая виртуальная машина. размышления.
СообщениеДобавлено: Пт мар 09, 2018 18:13 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
mOleg писал(а):
ээм, а совместимости с чем? странно слышать именно это утверждение от тебя 8)

Совместимость существует методологическая. Читаем книги и нарабатываем код. К моменту завершения чтения книг и статей у программиста уже что-то в голове отложилось. Можно попытаться впихнуть ему что-то свое, но практика показывает, что лишнее и ненужное отваливается за ненадобностью. Вот в рамках привыкания к Форту программист вполне может привыкнуть к постфиксу и словам DUP DROP SWAP OVER ROT.
mOleg писал(а):
нет, размер - это размер.
пример не засчитан 8(

Размер это именно размер. Это и данные, потому что с ними надо сравнивать координату (которая тоже данные), и он же используется для вычисления размера массива.

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

Так это и есть тот самый практически вырабатываемый шаблон программирования, образующийся, пока человек изучает основы. Слова ! @ в целом дань традициям. Можно заменить на SET и GET или STORE и FETCH. Можно, конечно, пользуясь отдаленной аналогией, пойти в детский сад и там рассказывать, что Земля плоская, но сколько у детей продержится такое знание на практике? Вон и стековые комбинаторы что-то не показывают победного шествия. Я не имею в виду примеры кода, "которые работают же!". Я имею в виду объективную статистику, когда при сравнении подходов совершенно посторонние программисты говорят "да, с комбинаторами-то проще, изучу я их, пожалуй". Вот и с адресным стеком (и заодно со стеком строк, стеком словарей и прочими) точно так же. Для себя - сколько угодно. Рассчитывать, что все сейчас бросят наработанные подходы и станут все переписывать - большой вопрос. Который и решается не дискуссиями, а наблюдением за реально складывающейся картиной, которую формируют независимые программисты.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 3-х стековая виртуальная машина. размышления.
СообщениеДобавлено: Вс мар 11, 2018 18:35 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
_KROL писал(а):
Как я понял, вы хотели сказать, что стек удобен зачастую удобен для конечного решения определённой задачи, но не для программиста, который во время процесса решения продумывает, что у него лежит в каждом стеке.


Вспоминаем комбинаторику.
2 стека - 2 варианта взаимодействия (2!=2) , 3 стека 6 вариантов взаимодействий (3!=6) и т. д.

А ежели в форте постоянно, непрерывно, используются более 2-х стеков?
Нагрузка на фортера больше, а выхлопа нет почти.

Создать новый стек для сущностей? Запросто, но зачем они должны захватывать форт-систему, аки вирус организм? Пусть тусуются в рамках своей задачи.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 3-х стековая виртуальная машина. размышления.
СообщениеДобавлено: Вс мар 11, 2018 18:46 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Hishnik писал(а):
Вон и стековые комбинаторы что-то не показывают победного шествия. Я не имею в виду примеры кода, "которые работают же!". Я имею в виду объективную статистику, когда при сравнении подходов совершенно посторонние программисты говорят "да, с комбинаторами-то проще, изучу я их, пожалуй".


Шо? Кто против стековых комбинаторов?
Это DSL для более эффективного (в плане быстродействия) по сравнению с фортом кода. К примеру, нужно сделать в одном месте какое-то действие (лень лезть в свои исходники в поисках примера). На форте это вылилось бы в лишнее стекомахание, а тут тишь да гладь.

Насчёт попроще, это явно диверсия. Они посложнее форта, особенно в моей реализации.

P.S.
На счёт стекомахания. Бывают просто такие ситуации.
В обычной практике далее связки SWAP ROT заходить не приходится

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 3-х стековая виртуальная машина. размышления.
СообщениеДобавлено: Вс мар 11, 2018 20:57 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Victor__v писал(а):
Шо? Кто против стековых комбинаторов?
Это DSL для более эффективного (в плане быстродействия) по сравнению с фортом кода. К примеру, нужно сделать в одном месте какое-то действие (лень лезть в свои исходники в поисках примера). На форте это вылилось бы в лишнее стекомахание, а тут тишь да гладь.

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

Именно. И раз нет явной волны запросов на стековые комбинаторы, автоматически встает вопрос, а нужно ли добавлять вещь, обязательную к реализации. Для меня резко снижается привлекательность наработок, если я знаю, что их автор может заявить "а вот тут я поставлю слово, которое мне нравится, и без него делать не буду, а слово мне нужно, чтобы обосновать редкую вещь, которая не во всяком Форте есть". Из той же серии совсем уже бредовые заявления Максимова "отдам библиотеки только за криптовалюту". Может еще в Oriflame торговым представителем надо зарегистрироваться? :D


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 3-х стековая виртуальная машина. размышления.
СообщениеДобавлено: Вс мар 11, 2018 21:05 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Victor__v писал(а):
Вспоминаем комбинаторику.
2 стека - 2 варианта взаимодействия (2!=2) , 3 стека 6 вариантов взаимодействий (3!=6) и т. д.

И тут не совсем верно. Т.к. появляются запрещенные перемещения и операции.
И, все-таки, говорить что-то, стоит сначала разобравшись 8)

Victor__v писал(а):
А ежели в форте постоянно, непрерывно, используются более 2-х стеков?

не поверишь, их таки больше двух.
У меня постоянно используется 4-е низкоуровневых(определенных на асме) и два и более, ээ, других в общем.
И я не путаюсь, т.к. они совсем разные.

Victor__v писал(а):
Шо? Кто против стековых комбинаторов?

я против 8)
дичайшая вещь.

Victor__v писал(а):
На счёт стекомахания. Бывают просто такие ситуации.
В обычной практике далее связки SWAP ROT заходить не приходится

и это говорит о том, что работу на стеке (обычную, нормальную) вы просто не освоили 8(
и стиль у вас неудачный. имхо.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 3-х стековая виртуальная машина. размышления.
СообщениеДобавлено: Вс мар 11, 2018 23:29 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Цитата:
не поверишь, их таки больше двух.
У меня постоянно используется 4-е низкоуровневых(определенных на асме) и два и более, ээ, других в общем.


Поверю, в Нове их 5: данные, возвраты, плав.точка, контекст, окружение. Разговор о том, что тяжелей их использовать совместно в одном зрительном пространстве.

Навряд ли встречается что-то вроде:
DUP >R ALSO CONTEXT ! R@ >A F@ EXECUTE SWAP A>

Короче, смешение с потерей смысла.
Цитата:
и это говорит о том, что работу на стеке (обычную, нормальную) вы просто не освоили 8(
и стиль у вас неудачный. имхо.


Вот залез и посмотрел в свои наработки. Всё пучком. :D

Цитата:
Я пока придерживаюсь мнения, что по мере освоения Форта стековых манипуляций у программистов становится все меньше и меньше. Поэтому и потребность в упрощении стековых манипуляций уменьшается естественным путем.

Ну, так оно и есть. Насчёт стековых манипуляторов.
вот 0/1#11&<1^ это аналогично R> @ >R , только в первом случае стек данных не участвует. Вот и меньше трогаем стек данных.
Вот резервирование места в стеке возвратов под, хм, дострой строки 0/3#R0-3^
аналог на форте примерный: DUP R> OVER RP@ - RP! >R
А здесь снятие этого выделения и смещения указателя в стеке окружений на новую строку 1/2#R0+2^0i01+0
Что-то по общеупотребительней, хм: 3/B1&3..?(1&2..<)1i0dU код для замены одного символа другим в строке
И асм не напрягаем.

Короче, это инструмент для оптимизации по скорости и по наглядности (да-да, надо учиться) кода. Только и всего и нужен он, естественно, не везде, а лишь в отдельных случаях.

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


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

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


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

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


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

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