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 в свое время сильно подставило, хотя система замечательная была..) Так что мне плевать даже на качество реализации и наличие поддержки (в данный момент времени), если нет исходников(уж лучше тогда свое создать). Вобщем, кота в мешке нафиг |
Автор: | 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/ |