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

...
Google Search
Forth-FAQ Spy Grafic

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




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

Зарегистрирован: Сб янв 26, 2008 18:23
Сообщения: 71
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
всем привет !

когда то довольно полезное в практическом применении -- для меня -- было такое создающее слово как "M:"

синтаксис примерно такой:
M: NewWord текстовая строка на языке Форт"

а реализация примерно такая :
: М: Create Immediate C" " Word C, Does> Execute ; \ где Execute - интерпретировать строку заданную адресом


слова образованные M: имели флажок Immediate
и в процессе компиляции просто вставляли вместо себя во входной поток заданную строку ( Макрос)
особенно удобно было при отладке..


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Jelsay писал(а):
где Execute - интерпретировать строку заданную адресом

А не EVALUATE? Execute передает управление на адрес, взятый со стека.

Идея интересная. Это практически векторное слово, только каждый раз интерпретирует строку. Я еще вводил слово FROM, которое забирало данные из векторного слова вместо его выполнения, оно будет работать и с таким вариантом. Это чтобы можно было задать новую строку. Ну и при создании такого слова размер буфера с запасом.

Может быть, сразу и назвать его MACRO?


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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1287
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Цитата:
когда то довольно полезное в практическом применении

Вещь полезная. Но если строка достаточно большая, то надо как-то маневрировать.
У меня похожим, пусть и весьма отдалённо, образом макросы сделаны для препроцессора

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


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


или такой: http://fforum.winglion.ru/viewtopic.php?p=42033#p42033

А лучше - BLOCK


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

Зарегистрирован: Сб янв 26, 2008 18:23
Сообщения: 71
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Hishnik писал(а):
А не EVALUATE? Execute передает управление на адрес, взятый со стека.

давно было - не всё хорошо помню. 8)
Цитата:
назвать его MACRO?
дак ведь много букв :))

gudleifr писал(а):

круто наворочено - надо разбираться :)

Цитата:
А лучше - BLOCK

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Вс янв 08, 2017 13:18 
Jelsay писал(а):
поэтому использовал эту структуру обычно только для отладочных работ
Все работы в FORTH - отладочные. FORTH - сам по себе отладчик.
Картинку
Изображение
надо применять не к "программе", а к каждому слову.

Так, что вопрос - философский. В конце концов сводящийся к: "Должен ли FORTH только понимать свой ВВОД или еще и уметь писать ВВОД для себя или другой машины?"


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

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

Так закидывай макросы во временный словарь. А когда они уже не нужны, чисть временный словарь и контекст словарей.
За примером можно посмотреть СПФ devel\pinka\mask.f кажется, так.
Можно мой препроцессор посмотреть. Правда, комментариев немного
Скачать можно в данной теме:
http://fforum.winglion.ru/viewtopic.php?f=23&t=3105&p=42718#p42718

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Вс янв 08, 2017 16:33 
Victor__v писал(а):
Jelsay писал(а):
проблемы с том что эти макросы очень хорошо жрут словарь

Так закидывай макросы во временный словарь
Дык, FOTRH, не жрущий словарь, это не FORTH. Чем больше загажен словарь, тем выше производительность!


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

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1287
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
На днях пробовал написать слово на асме для преобразования числа в строку. Так дабы развлечься.
Получилось, однако ж посмотрел как написано слово . ( точка) в СПФ и форке.
Жуть берёт.
Расширить число
Начать формирование строки в PADе
Вывести на печать

Зачем формировать строку из числа в паде если без этого можно обойтись?
Конечно, отладочные слова прорабатываются в последнюю очередь, но всё же...

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

Интересны все за и против.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Пт мар 31, 2017 19:14 
Victor__v писал(а):
Зачем формировать строку из числа в паде если без этого можно обойтись?
Так проще всего обработать символы, появляющиеся задом-наперед.
Victor__v писал(а):
иногда требуется связать компиляцию слова с некоторым доп.действием
IMMEDIATE-слова могут при компиляции производить любые действия.


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

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Выскажу крамолу. Я делал преобразование числа в строку только для 16- и 10-тичных. Пока хватает этих оснований. Причем в 16 код без циклов.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Пт мар 31, 2017 21:08 
vpn289 писал(а):
Причем в 16 код без циклов.
Это стандарт.


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

Зарегистрирован: Вс мар 26, 2017 00:23
Сообщения: 40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Предположим, необходимо определить группу констант
Код:
1 CONSTANT one
2 CONSTANT two
3 CONSTANT three
....
100 CONSTANT hundred


Будет ли более приятной такая запись?
Код:
Constants{
1 one 
2 two
3 three
....
100 hundred
}Constants


Этот подход, безусловно, распространяется на блоки любых однотипных определений:
Код:
1-reg-instructions{
0x04  abs   
0x00  acr   
0x09  brev   
.....
0x0B  swap.b   
0x0C  swap.bh   
0x0A  swap.h   
0x0E  tnbz   
}1-reg-instructions


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Пт мар 31, 2017 23:45 
vpn289 писал(а):
Будет ли более приятной такая запись?

1. Число почти одинаковых строк большее числа различий между ними - очевиднейший порок программирования. Резко возрастает число ошибок. Ухудшается читаемость/запоминаемость.
2. Константа - это крайний случай: мол, я ввел сущность, но что она делает, не знаю. В FORTH, где "все что-то делает", константы по большей части избыточны.
3. Подобные блоки лучше разбивать на части комментариями: "а теперь - те", "затем - эти", "чуть не забыли об остатке"... Если эти комментарии будут, заодно что-то делать (группировать, размещать, изменять семантику) - идеально.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Сб апр 01, 2017 10:02 
P.S.
Kopa писал(а):
Не найдя подходящего топика создал новый для обсуждения.
Вообще, раздел вредный. В FORTH нет полезных слов (и, тем более, полезных идей "уровня слов").

Ибо сказано:
Мур писал(а):
Основной Принцип имеет следствие:
НЕ ПРЕДПОЛАГАЙТЕ!
Не пишите код, который может пригодиться когда-то в будущем. Не оставляйте заплаток для будущих расширений. Вещей, которые вы можете захотеть сделать, бесконечное множество; это означает, что каждая из них имеет нулевую вероятности осуществления. Если вам что-то понадобится позже, вы это и запрограммируете позже - и, вероятно, лучше, чем сделали бы это теперь. И если кто-нибудь будет расширять вашу программу, он заметит оставленные вами для этого заплатки? Все ли из них вы аккуратно задокументируете?


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

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


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

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


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

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