Forth
http://fforum.winglion.ru/

Quark: локальные объявления
http://fforum.winglion.ru/viewtopic.php?f=23&t=2942
Страница 3 из 4

Автор:  gudleifr [ Вс июн 16, 2013 22:02 ]
Заголовок сообщения:  Re: Quark: локальные объявления

diver писал(а):
Например, мне ... наличие документашки ничуть не мешает...
Дело вкуса. А ведь правильный Forth гарантирует удовлетворение любых вкусов.
Сами же писали:
diver писал(а):
А так как Quark идет без сопроводительных исходников, включение этого в "базовую" поставку не лишено смысла.
Т.е. сам разработчик введение столь простого механизма не осилит именно из-за отсутствия исходников.

Автор:  Hishnik [ Вс июн 16, 2013 22:22 ]
Заголовок сообщения:  Re: Quark: локальные объявления

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

Структура словарной статьи описана в документации. Везде, где приходило в голову, расставлены векторные слова. До любому слову и их взаимодействию я могу дать комментарии. Этого вполне достаточно для любых экспериментов. А вот "загрузочное скопидомство" я как раз и хотел исключить.

Автор:  gudleifr [ Вс июн 16, 2013 22:27 ]
Заголовок сообщения:  Re: Quark: локальные объявления

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

P.S. Проще говоря, возможен ли "эксперимент" по самостоятельному дописыванию пользователем к Quark упомянутых в теме слов? Если это легко, неправ коллега diver, если практически невозможно - коллега Хищник... А я, со своей стороны, готов считаться кем угодно, лишь бы не лезть внутрь этих монстров: Quark, SPF, Fork...

Автор:  VoidVolker [ Вс июн 16, 2013 23:23 ]
Заголовок сообщения:  Re: Quark: локальные объявления

diver писал(а):
а что-ндь типа Муровского мультивхождения в слово не планируется? или может уже есть?

пример:
Код:
: слово1 действия1 : слово2 действия2 : слово3 действия3 ;

Код:
: sub invert 1+ : add + ;

Есть же уже давно:
Код:
: [:]   \ Определить еще одну "точку входа" в слово
  0xE9 [C]C, [C]HERE 0 [C], [C]HERE   \ addr \ адрес, куда записывать переход; "точка" отсчета
  :
  [C]HERE - ABS SWAP !
; IMMEDIATE

Где-то тут на форуме лежало. По сути хак конечно - зато работает :)

Автор:  gudleifr [ Вс июн 16, 2013 23:33 ]
Заголовок сообщения:  Re: Quark: локальные объявления

VoidVolker писал(а):
Есть же уже давно
В такой форме на фиг никому не нужно. Практически никакой выгоды по сравнению с
Код:
: sub invert 1+ add ;

Автор:  VoidVolker [ Пн июн 17, 2013 08:49 ]
Заголовок сообщения:  Re: Quark: локальные объявления

gudleifr писал(а):
VoidVolker писал(а):
Есть же уже давно
В такой форме на фиг никому не нужно. Практически никакой выгоды по сравнению с
Код:
: sub invert 1+ add ;

В какой это "такой" форме? Вот оно было написано и еще mOleg спросил - значит уже как минимум двум оно нужно. По сравнению с чем? Где сравнение-то? Какая должны быть выгода? Приведено просто какое-то слово. Таки где аргументы-то?

Автор:  mOleg [ Пн июн 17, 2013 11:47 ]
Заголовок сообщения:  Re: Quark: локальные объявления

тут еще ссылочку подкинули смотреть Sub-Words и далее

Автор:  gudleifr [ Пн июн 17, 2013 12:01 ]
Заголовок сообщения:  Re: Quark: локальные объявления

VoidVolker писал(а):
В какой это "такой" форме?

В шитом коде оно выглядит так (на очень условном метаязыке):
Код:
имя1 саll1 код1 jmp-код2 имя2 call2 код2 exit

супротив обычного
Код:
имя2 call2 код2 exit
имя1 call1 код1 jmp-код2 exit

Т.е. экономия только в один exit.
Очевидно, хочется сэкономить и jmp:
Код:
имя1 call1 имя2 call2 код1 код2 exit

В системах, где заголовки хранятся отдельно от кода, все очевидно.
В прочих существует два некрасивых решения:
1. резервируем место под второй заголовок до начала определения первого слова
Код:
: имя2 [ сfa=0 ] ; ( -- cfa)
: имя1 код1 <resolve код2 ;

2. сохраняем на стеке начало кода2 и после компиляции первого слова используем его для определения второго слова.
Код:
: имя1 код1 [ here ] код2 ; ( -- a)
: имя2 [ сfa=resolve ] ;

Автор:  Mihail [ Пн июн 17, 2013 13:39 ]
Заголовок сообщения:  Re: Quark: локальные объявления

gudleifr писал(а):
diver писал(а):
так как Quark идет без сопроводительных исходников...
то говорить о нем как о Forth смысла нет.


Quark это Форт т.к. есть доступ ко всем компонентам системы. Исходники получить можно написав
дизфорт и дизассемблер. Вопрос в том, зачем нужен форт без исходников когда с исходниками навалом?

ЗЫ кому не нужны исходники Форта, тот не намерен использовать Форт в полной мере.

Автор:  gudleifr [ Пн июн 17, 2013 13:46 ]
Заголовок сообщения:  Re: Quark: локальные объявления

Mihail писал(а):
Quark это Форт т.к. есть доступ ко всем компонентам системы. Исходники получить можно написав дизфорт и дизассемблер.
...
кому не нужны исходники Форта, тот не намерен использовать Форт в полной мере.
Вы сами себе противоречите: если для полноценной работы требуется проведение предварительных изысканий, то это не продукт, а заготовка.

Автор:  Mihail [ Пн июн 17, 2013 14:07 ]
Заголовок сообщения:  Re: Quark: локальные объявления

gudleifr писал(а):
это не продукт, а заготовка.

Заготовка тоже продукт. Форт является полуфабрикатом по сути.
Просто отсутствие исходников заставляет произвести лишние действия или использовать не в полной мере
.

Автор:  diver [ Пн июн 17, 2013 16:39 ]
Заголовок сообщения:  Re: Quark: локальные объявления

вот, ёпрст....не видел НИ ОДНОГО Си-шника, Ассемблериста, Лиспера или Питонца, который бы ныл, что ему, видите ли, для эффективной работы нужны исходники компилятора....

Автор:  Mihail [ Пн июн 17, 2013 16:48 ]
Заголовок сообщения:  Re: Quark: локальные объявления

diver писал(а):
вот, ёпрст....не видел НИ ОДНОГО Си-шника, Ассемблериста, Лиспера или Питонца, который бы ныл, что ему, видите ли, для эффективной работы нужны исходники компилятора....

В этом и смысл Форта, что может использоваться шире замыслов автора.

Автор:  mOleg [ Пн июн 17, 2013 17:11 ]
Заголовок сообщения:  Re: Quark: локальные объявления

diver писал(а):
вот, ёпрст....не видел НИ ОДНОГО Си-шника, Ассемблериста, Лиспера или Питонца, который бы ныл, что ему, видите ли, для эффективной работы нужны исходники компилятора....

ну, а причем тут ваше наблюдение?
Если бы перечисленные товарищи использовали в своих проектов код, используемый при реализации Си, Лиспа, Питона, то сравнение было бы корректно.
Кроме того, не видя кода я не могу судить о качестве системы (без копания в битиках), о ее структуре, и надежности, более того, что значительно болезненнее, я не могу использовать систему после того, как автор ее забросит (лично для меня осутствие исходников СМАЛ32 в свое время сильно подставило, хотя система замечательная была..)
Так что мне плевать даже на качество реализации и наличие поддержки (в данный момент времени), если нет исходников(уж лучше тогда свое создать). Вобщем, кота в мешке нафиг 8)

Автор:  VoidVolker [ Пн июн 17, 2013 17:17 ]
Заголовок сообщения:  Re: Quark: локальные объявления

gudleifr писал(а):
В шитом коде оно выглядит так (на очень условном метаязыке):
Код:
имя1 саll1 код1 jmp-код2 имя2 call2 код2 exit


Я знаю. И что?

Страница 3 из 4 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/