Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср апр 26, 2017 10:02

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 87 ]  На страницу Пред.  1, 2, 3, 4, 5, 6
Автор Сообщение
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Сб апр 01, 2017 10:40 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 200
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Цитата:
Так проще всего обработать символы, появляющиеся задом-наперед

Проще, согласен
Но касательно преобразования числа в строку это выглядит как использование бектрекинга вместо begin again
Можно, но также можно сделать и проще.

Цитата:
Пока хватает этих оснований

Когда делаю примитивы для своего форт-асма, делаю всё в 2-й системе.
Но и это слишком много. Лучше тетрадами мыслить типа 0101t1100

Цитата:
Предположим, необходимо определить группу констант
Будет ли более приятной такая запись?

Будет, и уже есть кстати в СПФ :)
Не помню кто в devel имеет такую наработку.
Иногда ей пользуюсь.

Цитата:
IMMEDIATE-слова могут при компиляции производить любые действия

И? мне каждый раз писать
Код:
... >R [ cell local-depth +! ]
?
Ошибки, батенька, приумножатся.
И перегружать тоже не красиво.

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Сб апр 01, 2017 10:53 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 1866
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 30 раз.
Victor__v писал(а):
Можно, но также можно сделать и проще.
Например?
gudleifr писал(а):
И? мне каждый раз писать
Зачем? Определите какие-нибудь >>R или R>> . Если Вы делаете что-то новое - придумывайте новые слова! Не старайтесь заранее предугадать все возможные случаи применения Вашего кода!

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Сб апр 01, 2017 12:41 
Не в сети

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Цитата:
Будет, и уже есть кстати в СПФ :)
Не помню кто в devel имеет такую наработку.
Иногда ей пользуюсь.

Ага. Нашел. ~ygrek/lib/enum.f

У меня немножко отличается реализация
VARIABLES
Код:
VOCABULARY variables
    ALSO variables DEFINITIONS

    : NOTFOUND  (addr u -- )    CREATED 0 , ;
    : ;VARIABLES     PREVIOUS ;

    PREVIOUS DEFINITIONS

    : VARIABLES:     ALSO variables ;

Пример:
Код:
VARIABLES:  a b cdef   ;VARIABLES


VALUES инициализированные нулем
Код:
VOCABULARY values
ALSO values DEFINITIONS

: ;VALUES   PREVIOUS DROP ;
: NOTFOUND   VALUED 0 ;

PREVIOUS DEFINITIONS
 
: VALUES:  ALSO values 0 ;


Общий принцип: заводим новый контекст, в котором определяем слово закрывающий тег. В этом же контексте определяем NOTFOUND как определяющее слово.
И все происходит само. Числа кладутся на стек, слова определяют сами себя. Вычисления также доступны.
Можно в контекст добавить слово-паразит, которое может улучшить читаемость. Оно служит разделителем между вычисляемой частью определения (параметром) и именем определения. В таком случае переопределять NOTFOUND не нужно. Функция определяющего слова вешается на слово-паразит. В отличие от определяющего слова, слово-паразит очень короткое ( = ТО is -> и т.п ). И одно и тоже слово можно использовать в разных блоках определений.

Вариант со словом-паразитом.
Код:
VOCABULARY values
ALSO values DEFINITIONS

: ;VALUES    PREVIOUS ;
: is   VALUE ;

PREVIOUS DEFINITIONS
 
: VALUES:  ALSO values  ;


Примеры
Код:
VALUES:
       11    is aa   
  22 1980 *  is bb
  aa   bb +  is cc
;VALUES


Код:
CONSTANTS:
       11    is aa   
  22 1980 *  is bb
  aa   bb +  is cc
;CONSTANTS


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Сб апр 01, 2017 13:55 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 1866
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 30 раз.
vpn289 писал(а):
...
Добавлять в программу "структурность" путем использования запрещенного в структурном программировании приема? "Либо крестик снимите, либо трусы наденьте".

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Сб апр 01, 2017 14:25 
Не в сети

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Ха! Много раз. "Это Форт, кто мне запретит?"


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Сб апр 01, 2017 14:42 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 1866
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 30 раз.
vpn289 писал(а):
Ха! Много раз. "Это Форт, кто мне запретит?"
Никто, "мы живем в свободной стране".

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Вт апр 04, 2017 13:33 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 200
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Цитата:
Зачем? Определите какие-нибудь >>R или R>>

Опять расширение пространства для ошибок. Да ещё помнить, а есть ли здесь лок.переменные. Доп.нагрузка на память программиста, оно надо?

Цитата:
Если Вы делаете что-то новое - придумывайте новые слова

А тут не делание чего-то нового, тут совместимость нового с уже имеющимся. Немножко другой аспект.

И всё же интересно мнение участников форума по поводу навешивания обработчиков на слова.

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Вт апр 04, 2017 14:01 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 1866
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 30 раз.
Victor__v писал(а):
Опять расширение пространства для ошибок.
Наоборот. Вы реализуете никому не нужные локальные переменные. Затем - изобретаете механизм их сокрытия. Т.е. на момент написания пользовательской программы два мощных источника ошибок уже "на борту" без всякого желания (и даже уведомления) пользователя.

Victor__v писал(а):
А тут не делание чего-то нового, тут совместимость нового с уже имеющимся.
В FORTH не должно быть ничего имеющегося. Все должно писаться с нуля.

Victor__v писал(а):
И всё же интересно мнение участников форума по поводу навешивания обработчиков на слова.
Видимо, просто никто не понял, что имеется в виду.

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Вт апр 04, 2017 15:08 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 200
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Цитата:
Наоборот. Вы реализуете никому не нужные локальные переменные

Судя по кол-ву реализаций всё-таки нужные некоторым людям в т.ч. мне
Цитата:
Затем - изобретаете механизм их сокрытия

Сокрытия от чего? Это механизм для корректности операций.
Цитата:
без всякого желания (и даже уведомления) пользователя.

Зачем уведомлять пользователя об имеющихся механизмах?
Для понта?
Вот я такой крутой, у меня на С++ множественное наследование класса job?
Конечного пользователя вообще не интересует всё фичи и как написано. Лишь бы работало без сбоев.

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Вт апр 04, 2017 15:30 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 1866
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 30 раз.
Victor__v писал(а):
Судя по кол-ву реализаций...
... можно только констатировать детскую болезнь забивания гвоздей транзисторным приемником. Вам дали механизм для создания новых языков, а Вы стремитесь написать "еще один C++", чтобы на уже нем "писать всерьез". Как обычно: вместо писания того, что надо, пишем то, что легко написать. Кстати "количество реализаций" как раз и свидетельствует о низком уровне реализаторов.

Victor__v писал(а):
нужные некоторым людям в т.ч. мне
В том-то и дело, что еще никому здесь не удалось придумать полезное применение этой фигне. Все время находились более простые FORTH-способы.

Victor__v писал(а):
Это механизм для корректности операций.
В FORTH нет понятия корректности операции.

Victor__v писал(а):
Зачем уведомлять пользователя об имеющихся механизмах?
В смысле: нагадим в подъезде и вывернем лампочку?

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Вт апр 04, 2017 17:55 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 5966
Благодарил (а): 11 раз.
Поблагодарили: 95 раз.
Victor__v писал(а):
Зачем формировать строку из числа в паде если без этого можно обойтись?
Конечно, отладочные слова прорабатываются в последнюю очередь, но всё же...

Разумеется. К сожалению, "так у Мура" частенько принимается за признак какой-то элитарности и мистического тайного смысла. Алгоритмы печати чисел вполне известны, можно пользоваться любым.
Victor__v писал(а):
И ещё хочется обсудить идею навешивания обработчиков на слова.
Основной посыл таков: иногда требуется связать компиляцию слова с некоторым доп.действием. К примеру, поддержка лок.переменных при использовании операций >R R> 2>R 2R> и пр

Хорошее дело. Обработчики, как говорится, лежат и каши не просят. Хорош сам подход, когда то, что можно сделать средствами Форта (и при этом несложно), делается именно средствами Форта и потом, а то, что требует вмешательства в движок, предусматривается заранее.

Причем я не конкретно в защиту локальных переменных в таком качестве, а просто про факт обеспечения способа расширения функциональности.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Вт апр 04, 2017 18:11 
Не в сети
Аватара пользователя

Зарегистрирован: Чт дек 31, 2009 18:36
Сообщения: 1866
Откуда: Питер
Благодарил (а): 13 раз.
Поблагодарили: 30 раз.
Hishnik писал(а):
Разумеется. К сожалению, "так у Мура"...
А у кого иначе?

_________________
Когда я говорю "понимаю" - это не значит, что я согласен, не значит, что я понимаю и вообще не значит, что я слушаю тебя. /Чарли, "2 1/2 человека"/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 87 ]  На страницу Пред.  1, 2, 3, 4, 5, 6

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


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

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


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

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