Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт ноя 16, 2018 05:23

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 70 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Пт сен 09, 2016 13:34 
Victor__v писал(а):
Иногда делаю слова-карманы внутри слов.
Принцип FORTH прост: слово - это единица размышления/действия. Не нужно стремиться изобретать какие-то универсальные парадигмы. Просто записывайте задачу так, как ее видите. Например, я уже показывал коллеге, как решается задача про прямоугольник. Тупо рисуем линии (немного изменил решение для большей читаемости):

: 2DELTA 2OVER D- ;
: 4DUP 2OVER 2OVER ;
: -TOP DROP ;
: -LEFT NIP ;
: -BOTTOM SWAP >R + R> ;
: -RIGHT >R 0 D+ R> ;
: SAVE- COMPILE 4DUP ' , COMPILE R@ ; IMMEDIATE
: BOX ( X1,Y1,X2,Y2,COLOR--) >R 2DELTA
SAVE- -TOP HLINE SAVE- -LEFT VLINE
SAVE- -BOTTOM HLINE -RIGHT R> VLINE ;

Много лишних слов? Но они позволяют понять код даже через несколько лет. Причем, заметьте, присутствие очевидных -LEFT и -TOP позволяет обойтись без стековых комментариев в аналогичных -BOTTOM и -RIGHT. (А вспомнить, что Вы положили 3 года назад в "карман", Вам поможет только изощренный комментарий).

Экономить на определениях не стоит - FORTH слишком тормозной и требует слишком много памяти. Зато он позволяет писать быстро и коротко. И, как следствие, хорошо написанные программы выполняются быстро и требуют мало памяти. Выигрыш не во внутреннем супер-механизме, а в тупой экономии мозгов.

P.S. Здесь я проиллюстрировал важный принцип - в FORTH слова, упаковывающие в себе функциональность неких констант (в т.ч. адресных, т.е., переменных), гораздо удобнее "просто констант".

P.P.S. Но, все равно, главный недостаток данной программы остался неустраненным - 4 практически одинаковых кусочка кода - "параметры xLINE". Это завсегда источник ошибок (я даже сначала перепутал имена -TOP и -LEFT, причем смысл-то остался верным). Очевидно, слова, рисующие "от последней позиции" здесь были бы удобнее.


Последний раз редактировалось gudleifr Пт сен 09, 2016 17:02, всего редактировалось 6 раз(а).

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Пт сен 09, 2016 14:01 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6437
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
Victor__v писал(а):
[ dup lit, ]
r> ['] throw >r ['] free >r >r
['] ] >r
[ ret, swap dp ! execute

1. Насколько это понятно усредненному программисту?
2. Насколько с этим удобно постоянно работать?
Вопросы риторические. В целом - на очень малую величину. Ведь в других языках как-то организованы локальные объявления, правильно? Если в Форте предлагается организовывать с массой сильно связанных и редко используемых слов, то это не облегчение работы, а дополнительная точка отладки и проверки. Я бы при взгляде на все это и не стал такое часто использовать.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Пт сен 09, 2016 18:02 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 906
Благодарил (а): 3 раз.
Поблагодарили: 33 раз.
gudleifr писал(а):
P.P.S. Но, все равно, главный недостаток данной программы остался неустраненным - 4 практически одинаковых кусочка кода

Поправьте,
но посты gudleifr навевают мысли о засланном казачке :)

P.S. Может это его эго и роль на местном и других Форт форумах?
Вроде и тема Форта у него набила оскомину, но что то не отпукскает.
Форт - такой как есть, и каждый вправе его применять так как он его понимает!


Последний раз редактировалось KPG Пт сен 09, 2016 18:45, всего редактировалось 1 раз.


За это сообщение автора KPG поблагодарил: F-MAP
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Пт сен 09, 2016 18:36 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 651
Благодарил (а): 0 раз.
Поблагодарили: 6 раз.
Hishnik писал(а):
Victor__v писал(а):
[ dup lit, ]
r> ['] throw >r ['] free >r >r
['] ] >r
[ ret, swap dp ! execute

1. Насколько это понятно усредненному программисту?
2. Насколько с этим удобно постоянно работать?
Вопросы риторические. В целом - на очень малую величину. Ведь в других языках как-то организованы локальные объявления, правильно? Если в Форте предлагается организовывать с массой сильно связанных и редко используемых слов, то это не облегчение работы, а дополнительная точка отладки и проверки. Я бы при взгляде на все это и не стал такое часто использовать.


Ну так это можно разбить на три части
Начало, сам код, конец.
Будет понятней. Завести соответствующие слова и всё будет чики-пуки :D
Частота использования зависит от нужд и характера программиста.
Я вообще смесь хомяка и разведчика.
Часть моих наработок для форта "вообще в нём не отсвечивает" Мол, есть, но без ИК хрен поймёшь как сделано.
Да и жаба давит по поводу памяти. Тот же стек возвратов. размер где-то мегабайт. Используется, дай бог, тысяча или две ячеек. А с остальным что делать? Что добру пропадать 8)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Пт сен 09, 2016 19:26 
Victor__v писал(а):
Я вообще смесь хомяка и разведчика.
Это лечится. Достаточно написать свой FORTH и посмотреть, что сколько весит и где удобнее живет.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Сб сен 10, 2016 05:39 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6437
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
KPG писал(а):
но посты gudleifr навевают мысли о засланном казачке

У меня навевают мысли о человеке, который считает, что его сильно недооценивают и для компенсации неудовлетворенности жизнью создает себе виртуальный мирок, в котором он эксперт. Поскольку создавать такой мирок в голове чревато последствиями, для сохранения психического здоровья создается куча сообщений на форумах, в которых развенчиваются придуманные кем-то глупости. В силу специфики данного личностного состояния диалог бессмысленен. Вне зависимости от фактической правоты или неправоты по конкретным вопросам конечной целью является вывод "вы все неграмотные".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Сб сен 10, 2016 05:41 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6437
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
Victor__v писал(а):
Ну так это можно разбить на три части
Начало, сам код, конец.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Сб сен 10, 2016 10:27 
Hishnik писал(а):
для компенсации неудовлетворенности жизнью создает себе виртуальный мирок
В данном случае "мирок" уже создан до меня. Называется "Форум".
Hishnik писал(а):
для сохранения психического здоровья
Нет, в чисто контактных целях. Вдруг программист зайдет? Да и, как заметил один наш общий знакомый тролль, оживление на Форуме вызывает хоть какой-то интерес к FORTH в Сети. Не хотите выкладывать свои статьи - миритесь с кухонными разборками желающих выложить свои.
Hishnik писал(а):
Вне зависимости от фактической правоты или неправоты
Без комментариев.

P.S. Самое обидное, что у меня куча накопилась куча вопросов, требующих обсуждения, но любая попытка его начать скатывается в спор о терминах с последующим переходом на личности. Я никого не хочу поучать. Меня интересуют ответы. Но здесь всегда отвечают вопросом на вопрос.

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

P.P.P.S. И опять скатился в ликбез. Но, ведь, это очевидно?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Сб сен 10, 2016 20:06 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 606
Благодарил (а): 6 раз.
Поблагодарили: 25 раз.
Что-то вы устали уже флудить....многие из...

вопрос по делу - встроенная генерация случайных чисел есть?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Сб сен 10, 2016 20:23 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6437
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
diver писал(а):
вопрос по делу - встроенная генерация случайных чисел есть?

Есть RND и RANDOM. Кто из них переменная, а кто слово, возвращающее очередное значение (с обновлением переменной), уже забыл. :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Вс сен 11, 2016 18:11 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 606
Благодарил (а): 6 раз.
Поблагодарили: 25 раз.
Hishnik писал(а):
diver писал(а):
вопрос по делу - встроенная генерация случайных чисел есть?

Есть RND и RANDOM. Кто из них переменная, а кто слово, возвращающее очередное значение (с обновлением переменной), уже забыл. :)


ага... RANDOM - возвращает случайное значение (видимо, из диапазона 0...2^32-1), оно же пишется по адресу RND


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Вс сен 11, 2016 22:34 
Не в сети

Зарегистрирован: Пт июн 06, 2008 14:21
Сообщения: 106
Откуда: Карелия
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.
Может не в тему, зачем нужен генератор? не проще же использовать системный
WINAPI: CoCreateGuid OLE32.DLL


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Вс сен 11, 2016 23:01 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6437
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
F-MAP писал(а):
Может не в тему, зачем нужен генератор? не проще же использовать системный
WINAPI: CoCreateGuid OLE32.DLL

Есть разные алгоритмы, в том числе и встроенные. Я реализовал один из описанных Кнутом, когда самый простой меня не устроил из-за видимых глазом регулярностей в одной из программ.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Чт сен 15, 2016 18:16 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 606
Благодарил (а): 6 раз.
Поблагодарили: 25 раз.
а вот тут еще вопрос возник - при интерпретации файла буфер строки какого размера?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: QUARK-ую
СообщениеДобавлено: Чт сен 15, 2016 18:25 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6437
Благодарил (а): 14 раз.
Поблагодарили: 101 раз.
diver писал(а):
а вот тут еще вопрос возник - при интерпретации файла буфер строки какого размера?

256. Надо больше?


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

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


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

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


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

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