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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вт мар 14, 2017 21:03 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2088
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 34 раз.
Victor__v писал(а):
А если взять идейно и сохранить внешнее сходство, перелопатив внутренности?

Написать свою библиотеку на основе чужих идей это не значит перелопатить чужую.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вт мар 14, 2017 23:48 
Не в сети

Зарегистрирован: Пн июл 04, 2016 13:28
Сообщения: 23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
chess писал(а):
Фортеры - одиночки. Ничего перелопачивать чужого не будут.
Не вижу повода для гордости.
chess писал(а):
Рекурсия в реально производительных программах не используется поскольку тормозит программу. А игры в функц. программирование меня не интересуют.
А еще их пишут на ассемблере :) И долго же вы будите абстрагироваться от реальности? Проще переделать готовое решение, а там видно будет подходит ли оно.
Hishnik писал(а):
Да где там чужие библиотеки-то? Тем более с интенсивным использованием рекурсии.
Да их полно в свободном доступе.
Hishnik писал(а):
Лучше, если программа упадет из-за переполнения стека, поскольку ошибка с балансом стека - это существенно более вероятный сценарий. А какие-то мифические тысячи библиотек от сотен разработчиков - это только повод придумать для Форта еще один пункт для реализации.
А почему мифические? Для разных ЯП уже создано множество разнообразных библиотек. Зачастую их можно использовать как образец.
Hishnik писал(а):
Динамические стеки, хэши в словаре, тэгированные данные, собственная файловая система, IDE... что еще? В итоге такого навороченного Форта не будет по объективным причинам (кто-то не сможет, а кто сможет - тому не нужно), и пойдет очередной виток "у нас нет подходящего Форта".
Молоток должен оставаться молотком. Я вас правильно понял?
Victor__v писал(а):
Не так уж трудно создать массив и указатель
А касательно регистров тут уж надо думать сколькими стеками можно обойтись.
Мой вариант edi - стек исключений и указатель на юзверей ebp - данные esp - адреса возвратов.
Можно ещё один стек выделить, как в форке под адреса регистр esi .
Наличие динамического стека, хотя бы для отладочного режима, может упростить отладку приложения. Пусть компилятор решает нужен ли вообще стек в релизе, может и свободных регистров хватит :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Ср мар 15, 2017 01:41 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6046
Благодарил (а): 12 раз.
Поблагодарили: 95 раз.
loztcatz писал(а):
Да их полно в свободном доступе.

Это давний вопрос - где библиотеки и как способствовать их появлению. Пока я не вижу проектов на Форте, для которых важным фактором их успеха было бы наличие библиотек в свободном доступе. А раз так, зачем этот "карго-культ" с библиотеками, open source, IDE и прочим?

loztcatz писал(а):
А почему мифические? Для разных ЯП уже создано множество разнообразных библиотек. Зачастую их можно использовать как образец.

Это и есть карго-культ. Если построить хижину в виде аэропорта, на остров не начнут садиться самолеты. Фортом тоже не начнут пользоваться, если механически воспроизвести признаки успешных ЯП.
loztcatz писал(а):
Молоток должен оставаться молотком. Я вас правильно понял?

Нет, с ним надо уже начать что-то делать. Если выяснится, что он может выступать в качестве и других инструментов, тогда уже и думать.
loztcatz писал(а):
Наличие динамического стека, хотя бы для отладочного режима, может упростить отладку приложения. Пусть компилятор решает нужен ли вообще стек в релизе, может и свободных регистров хватит

Этого я не видел. А вред от программы, которая слишком уж старается обеспечить надежность - видел. Если есть ошибка, лучше закрыться с сообщением, чем стараться что-то там попробовать. Со стеком элементарный сценарий - до какого размера он будет расти? Если в цикле на миллиарды итераций забыть снять число со стека, динамическое изменение размера будет стараться выделить лишние гигабайты. Вот как бы мы отнеслись к программе, которая при ошибке в имени файла не выводила честное сообщение "файл не найден", а самостоятельно проводила поиск по всему диску, локальной сети и на всякий случай на сайте Microsoft в разделе с драйверами? Вместо доли секунды несколько минут. И с динамическим стеком будет то же самое.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Ср мар 15, 2017 10:27 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2088
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 34 раз.
loztcatz писал(а):
chess писал(а):
Фортеры - одиночки. Ничего перелопачивать чужого не будут.
Не вижу повода для гордости.

Гордость чаще бывает без повода. :o
Фортеры работают в своей предметной области и как правило не являются проф. программистами.
Знание предметной области позволяет писать нужное ПО с нуля с использованием только одной форт-системы
и нескольких ей сопутствующих библиотек, ну и своих, которые появляются по мере эволюции работ
в этой области.
loztcatz писал(а):
chess писал(а):
Рекурсия в реально производительных программах не используется поскольку тормозит программу. А игры в функц. программирование меня не интересуют.
А еще их пишут на ассемблере

Еще как пишут! Оказывается часто производительность программ нужнее времени сидения за ассемблером. :o
У меня для этих целей в форте есть встроенный ассемблер - для расшивки узких мест.
loztcatz писал(а):
И долго же вы будите абстрагироваться от реальности? Проще переделать готовое решение, а там видно будет подходит ли оно.

Что-то вы тут, мягко говоря, недопонимаете. Наоборот, я специализируюсь в реальности - в своей предметной области.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Ср мар 15, 2017 18:28 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4828
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
Цитата:
Можно поподробнее?
Я что-то не очень понял.

все временные переменные функции винды хранят в стеке, и их бывает много.
Я оставил для стека 128 (кажется) килобайт, и думал, что хватит на все, но практически сразу наткнулся, что для некоторых виндошных функций этого крайне недостаточно.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Ср мар 15, 2017 20:12 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 282
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Цитата:
Я оставил для стека 128 (кажется) килобайт, и думал, что хватит на все, но практически сразу наткнулся, что для некоторых виндошных функций этого крайне недостаточно.

Где посмотреть в исходниках форка решение этой проблемы?

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Чт мар 16, 2017 01:55 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6046
Благодарил (а): 12 раз.
Поблагодарили: 95 раз.
mOleg писал(а):
все временные переменные функции винды хранят в стеке, и их бывает много.
Я оставил для стека 128 (кажется) килобайт, и думал, что хватит на все, но практически сразу наткнулся, что для некоторых виндошных функций этого крайне недостаточно.

Ага, понятно теперь. Я у себя сделал стек Форта как раз отдельным, и к esp он не имеет отношения совсем, это просто область памяти, к тому же и адресуемая переменной. Поэтому его можно удобно контролировать и не давать вылезать за границы. Поскольку от кода на Форте я высокой производительности не ожидаю просто по методологическим соображениям (производительность обеспечивают ассемблерные вставки, OpenGL и внешние ускорители на FPGA), встраивание контроля полезнее.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Чт мар 16, 2017 04:23 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4828
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
Victor__v писал(а):
Где посмотреть в исходниках форка решение этой проблемы?

у форка параметры виндошных функций в отличие от СПФа перед вызовом не переносятся на стек возвратов, поэтому стек данных и стек возвратов перед вызовом АПИ по сути меняются местами. Изначально стек данных, как в СПФе был расположен над стеком возвратов, после выявления проблемы их пришлось поменять местами. Я не помню, делал ли комментарий в коде по этому поводу.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Пт мар 24, 2017 10:56 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 282
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
https://cloud.mail.ru/public/Lqke/6PXwYsXeR

Что нового?
Добавлен постфиксный ассемблер
Дополнительно поддерживает две MMX-инструкции ( MOVQmm-[r] MOVQ[r]-mm) , а также инструкцию CRC32
Охват пока не полный, в процессе написания.
Добавлена 2-я версия библиотеки для работы со строками на стеке возвратов
Отличия от 1-й: часть вещей переписана на ассемблере (см.выше ), слова, которыми не разу не пользовался, удалены.
Повышена наглядность исходников, надеюсь. Возможны некоторые недоработки
3 библиотеки для организации сопрограмм. Ждут проверки трудом.
Стек возвратов, как стек потока-управления, экспериментальная наработка ( пример в ~er\str\str-r2.f )
Стековый манипулятор ( максимум 5 элементов)
Создание функций на во время исполнения ( ~er\closure\fun.f ) на стеке возвратов. Является замыканием или нет? Надо откл оптимизатор, если используются ветвления и циклы

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Пн мар 27, 2017 22:37 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2088
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 34 раз.
Victor__v писал(а):
Создание функций на во время исполнения ( ~er\closure\fun.f ) на стеке возвратов. Является замыканием или нет? Надо откл оптимизатор, если используются ветвления и циклы

Трудно проверить что-ли?
Вот пример проверки
Код:
: sqsum \ n1 n2 -- XT для (n1+n2)**2
cl{ LITERAL LITERAL + DUP * } cl ;
STARTLOG
LOG работы в консоли
Код:
1 2 sqsum
Ok ( 10188132 )
3 4 sqsum
Ok ( 10188132 10188164 )
SWAP
Ok ( 10188164 10188132 )
EXECUTE
Ok ( 10188164 9 )
SWAP
Ok ( 9 10188164 )
EXECUTE
Ok ( 9 49 )

PS. Замыкание, это слово мне кажется неудачным.
Вкрапление, захват, закрытие(параметров) - точнее будет.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вт мар 28, 2017 09:38 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 282
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Цитата:
Замыкание, это слово мне кажется неудачным

Я просматривал литературу по этому поводу. Универсального определения замыкания нет. Тут и создание функций на лету, захват параметров, метод для сохранения результатов между вызовами функции (?), и поддержка переменных вышестоящей функций, даже если она уже отрубилась.

У меня компиляция на лету с возможностью подстановки различных данных, за которые отвечает библиотека-донор ( ~er\str\str-r2.f )

Цитата:
Трудно проверить что-ли?


: TEST R:STR 400 " {un} {un} {s} ." R:COUNT STR>xt EXECUTE ;
S" *" 10 20 TEST --> 200
S" + CELLS" 10 20 TEST --> 120

И?

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вт мар 28, 2017 10:31 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2088
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 34 раз.
Victor__v писал(а):
И?

Похоже это не замыкание.
Вы сделайте проверку как я показывал, а именно:
сформируйте только ссылки(ХТ) на функции, созданные во время
исполнения исходной функции с разными параметрами, а уже затем
используйте EXECUTE для полученных ХТ. Параметры, которые были на этапе
создания этих ХТ уже должны быть вставлены в исполняемые коды созданных
функций. Код замыканий может быть потом использован многократно.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Пн апр 03, 2017 20:38 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 282
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Интересно узнать мнение форумчан по поводу реализации стека исключений?
Нужно ли оно вообще?
Если да, то какие предложения будут по дизайну данного механизма?
Catch Throw может быть недостаточно

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вт апр 04, 2017 03:48 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 4828
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 18 раз.
Поблагодарили: 52 раз.
А сейчас чем не стек исключений (в СПФ, например)?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Наработки от victor__v для СПФ
СообщениеДобавлено: Вт апр 04, 2017 13:26 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 282
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Если мне не изменяет память в СПФ всё записывается в переменную, при новом catch зн из переменной в стек возвратов, а сама точка отката в переменную.
Как-то не очень стек напоминает. Список скорее или цепочка.

_________________
Цель: написать форт-систему
Подцель: написать оптимизирующий компилятор
текущая задача: переписать if-else-then


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

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


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

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


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

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