Forth
http://fforum.winglion.ru/

хотелки
http://fforum.winglion.ru/viewtopic.php?f=2&t=3058
Страница 4 из 6

Автор:  Victor__v [ Вт авг 23, 2016 19:30 ]
Заголовок сообщения:  Re: хотелки

Меньше констант. Возможно инлайн.
Слова тоже могут иметь некоторую "препроцессорность".
Недавно написал слово CMOVE( , которое в зависимости от "встроенного описания" берёт значения по-разному.
К примеру, CMOVE( A1 A2 U ) действует как и слово MOVE, но CMOVE( A1 U A2 ) укладывает значения в регистры в другом порядке.
При этом слово CMOVE( в коде не встречается, компилирующая immediatе-ка
Сделал, правда, для стека возвратов т.к. проще :)

Автор:  in4 [ Ср авг 24, 2016 17:13 ]
Заголовок сообщения:  Re: хотелки

Victor__v писал(а):
Нужен ли форту препроцессор?
Слова немедленного исполнения и режим интерпретации по сути и есть Форт-препроцессор... ;)
А чтоб слова место не занимали - временный словарь с последующим удалением.
Ну и для специфических задач - удаляемая позже таблица на время компиляции.

Автор:  Victor__v [ Ср авг 24, 2016 19:47 ]
Заголовок сообщения:  Re: хотелки

Ключевая цитата:
Цитата:
с последующим удалением
.
А это как? Правильно, ручками, ручками :)
Форт-система как огород, в ней приятно копаться, но иногда нужен трактор

Автор:  in4 [ Ср авг 24, 2016 21:01 ]
Заголовок сообщения:  Re: хотелки

in4 писал(а):
временный словарь с последующим удалением
Victor__v писал(а):
А это как? Правильно, ручками, ручками :)
Вообще говоря, зависит от системы. И позволительных задачей оптимизаций.
MARKER - FORGET, например.
Кто-то на Форуме показывал, как в SPF4 переносить словарь в верхнюю часть кучи.

Вплоть до того, что и модальный диалог можно в куче делать, а потом FORGET-ать.

Мур вон тоже предлагал сверхбыструю компиляцию. Похоже на JIT в Java, но из-за малых размеров и системы и исходника(который в специальном прекомпилированном виде) получается намного быстрее. А после того, как накомпилированное отработает, сбросить его, вроде, forget-ом или даже переинициализацией системы. Флаги состояния можно в отдельном месте хранить. Или в неочищаемой части словаря. У него словарь отдельно от кода - так сделать можно.

Кстати, словарь, отделенный от кода, вместе с частыми очистками, тоже упрощает "препроцессирование", которое
in4 писал(а):
Слова немедленного исполнения и режим интерпретации по сути и есть Форт-препроцессор... ;)
А рабочий код накапливается в куче(here).

Автор:  in4 [ Ср авг 24, 2016 21:11 ]
Заголовок сообщения:  Re: хотелки

Victor__v писал(а):
Недавно написал слово CMOVE( , которое в зависимости от "встроенного описания" берёт значения по-разному.
К примеру, CMOVE( A1 A2 U ) действует как и слово MOVE, но CMOVE( A1 U A2 ) укладывает значения в регистры в другом порядке.
Классики рекомендуют "тупые" слова. И чтоб для разных задач были слова разные. Для работы с двойными словами префиксы предлагают ( как D+ ).


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

Как же лучше - несколько разных слов с разными действиями, но с одним именем, или разные имена слов для разных действий? У каждого подхода плюсы и минусы, но, может, я чего еще не вижу?

Автор:  Victor__v [ Ср авг 24, 2016 21:52 ]
Заголовок сообщения:  Re: хотелки

: Cmove ( addr1 addr2 u )
какой-то код
;
Один вариант действия
CMOVE( - мелкий фанат Лиспа :lol: может сделать 6 вариантов кода (3!). Немножко удобней.
Цитата:
Как же лучше - несколько разных слов с разными действиями, но с одним именем, или разные имена слов для разных действий?

Зависит от задачи. мой CMOVE( может сохранить нервы и облегчить/усложнить жизнь форт-оптимизатору.
Писать легче? Легче
Охват полный? Полный
По фортовски? Эм, уже сложный вопрос :)
Цитата:
Классики рекомендуют

На форте можно многое наворотить.
К примеру, написал либу для работы со строками в стеке возвратов.
После завершения работы слова память освобождается автоматически.
Можно удалить и раньше. Возникала пару раз такая необходимость.
Но как это сделать?
Решил такую задачку через самомодификацию кода в месте вызова (слово R:FREE )
Т.е. программа скомпилирована, там честно стоит вызов R:FREE, и вот это слово вызывается. со стека возвратов берётся значение на которое надо очистить стек и генерируется инструкция lea вместо call.
Красивое и надёжное решение.
Кстати, раз уж пошёл разговор.
Нет ли у кого реализации move с использованием регистров mmx с дизъассемблированием под х86 ?

Автор:  vikt [ Ср авг 31, 2016 00:43 ]
Заголовок сообщения:  Re: хотелки

Хочу завести здесь свой бложик.
Который назывался бы например "Блог програмиста любителя"
Во первых я действительно любитель и решаю исключительно свои
задачи, соответственно подход к програмированию у меня другой.
Во вторых, по причине пункта 1, я могу нести ахинею, что не принесет вред в
любительской песочнице. Сейчас я вынужден воздерживаться от высказываний.
В третьих, многие задачи я решил относительно успешно, вдруг кому то пригодится.

Ну и думаю, что это внесет дисциплину в мою работу, (надо выполнять,
что заявил, кто-то даст дельный совет итд)

Автор:  Hishnik [ Ср авг 31, 2016 00:51 ]
Заголовок сообщения:  Re: хотелки

vikt писал(а):
Хочу завести здесь свой бложик.

Как это сделать технически, я не совсем представляю. Есть вариант со ссылкой на блог из любой темы или из собственного профиля. Это, собственно, от меня ничего не требует, сообщить о себе вполне не возбраняется (если это не ссылка на какой-нибудь гербалайф). Есть вариант просто создавать темы в соответствующих разделах и писать там. Тематика Форта имеет широкие рамки. Если не сопровождать каждое сообщение мегабайтными вложениями, то мне же не жалко. Форум создан для общения фортеров, независимо от того, любители они или профессионалы. Воздерживаться от высказываний, на мой взгляд, не стоит. Любитель, который настроен воспринимать конструктивную критику, гораздо более адекватный собеседник, чем профессионал с раздутым самомнением, приходящий на форум для того, чтобы лишний раз покрасоваться.

Автор:  vikt [ Ср авг 31, 2016 14:35 ]
Заголовок сообщения:  Re: хотелки

Спасибо. Позже заведк тему "Блог програмиста любителя"
И понемногу буду ее наполнять.

Автор:  Victor__v [ Пт сен 16, 2016 14:07 ]
Заголовок сообщения:  Re: хотелки

Неплохо было б иметь генератор html, написанный на форте.
Есть ли такие наработки?
Или, как всегда, изобретать самому?

Автор:  vikt [ Пт сен 16, 2016 17:23 ]
Заголовок сообщения:  Re: хотелки

Не понял, http сервер.
Или тривиальный html файл?

Автор:  KPG [ Пт сен 16, 2016 17:31 ]
Заголовок сообщения:  Re: хотелки

Victor__v писал(а):
Неплохо было б иметь генератор html, написанный на форте.
Есть ли такие наработки?
Или, как всегда, изобретать самому?

Вроде несложно должно быть, есть и статья :) A Forth HTML Generator, документация в Win32Forth может тоже генерироваться в HTML.

Данный инструментарий по генерации HTML тоже с Форт скриптами Allah Sulu's Massive Tool и The new version

P,S. Интересны моменты реализации Rtf Generator
и пример на разных языках генерации HTML таблицы с rosettacode.org Create HTML table
Возможно ещё полезное есть в FFL.

Автор:  Victor__v [ Пт сен 16, 2016 18:31 ]
Заголовок сообщения:  Re: хотелки

Да, да тривиальный файл
За ссылки спасибо, почитаю

Автор:  Victor__v [ Вт янв 31, 2017 14:02 ]
Заголовок сообщения:  Re: хотелки

Нужно слово, которое модифицирует строку по правилам, которые задаются со стека.
К примеру,
S" XA" S" HELLO " 1 S" XAWORD" превращается в S" HELLO WORD"
встречалось у кого-то?

Автор:  mOleg [ Вт янв 31, 2017 17:58 ]
Заголовок сообщения:  Re: хотелки

см. Регулярные выражения, в СПФе, кажется было что-то такое.

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