Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 21:43

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 92 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Сб авг 08, 2020 12:43 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 494
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
Hishnik писал(а):
Ну... создается понемногу :)

Ilya писал(а):
который наконец сможет в dlopen и в CALLBACK: !?

"Сможет в dlopen" - писать в dlopen? Помещать аргументы в dlopen? :) Текущий сленг через некоторое время уйдет и будет выглядеть не столько смешным, сколько идентифицировать автора как сторонника субкультуры.

И вопрос по существу - а зачем именно так? Callback я попробовал с Qt и пришел к мнению, что это сложная работа с точки зрения компилятора. Обращаться к динамически создаваемым объектам таким образом - очень и очень нетривиальная задача. Есть вариант с отдельным потоком форт-машины и очередью сообщений. Пока нравится.


Создаётся - это есть гуд! :D

dlopen, dlsym, .... может и уйдут в прошлое, но пока этот механизм весьма востребован.

callback - может я не до конца всё понял, но как я смогу полноценно взаимодействовать с GTK, mosquitto, ... :wink:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Сб авг 08, 2020 14:22 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
KPG писал(а):
Интересно, а у QT как с 3D в этом плане?

У Qt есть OpenGL. Примеры есть, но я пока не пробовал совместить это с Фортом.

В целом wrapper может быть написан для любой библиотеки, тут вопрос скорее в плоскости дальнейшего использования. Если просто дублировать вызовы функций, постоянно переписывая их на Форте, то работы много, а для программиста ничего не изменится - ему будет нужно писать то же самое, но на Форте. Нужен другой формат описания, тогда подобный фреймворк будет иметь смысл.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Сб авг 08, 2020 14:25 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Ilya писал(а):
callback - может я не до конца всё понял, но как я смогу полноценно взаимодействовать с GTK, mosquitto

Имитируется очередь, в нее помещаются сообщения, они разбираются в C++ и передаются движку Qt.

http://fforum.winglion.ru/viewtopic.php?f=23&t=3165&start=57


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Сб авг 08, 2020 22:03 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 494
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
Hishnik писал(а):
Ilya писал(а):
callback - может я не до конца всё понял, но как я смогу полноценно взаимодействовать с GTK, mosquitto

Имитируется очередь, в нее помещаются сообщения, они разбираются в C++ и передаются движку Qt.

http://fforum.winglion.ru/viewtopic.php?f=23&t=3165&start=57

Не очень понял, для чего усложнять себе жизнь с очередью!?
Например, есть такая штука "mosquitto_message_callback_set" и для чего мне нужен посредник в виде прослойки на C++, если mosquitto, GTK? ... могут дёрнуть нативно моё Форт слово и без посредников? :wink:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Вс авг 09, 2020 01:14 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Ilya писал(а):
могут дёрнуть нативно моё Форт слово и без посредников?

Они-то могут, а как слову Форта что-то сделать с виджетом? Например, динамически создается объект "кнопка", а у него есть координаты. Понятно, что можно вызвать нечто вроде SetCoord (в зависимости от фреймворка), но Форту нужно теперь как-то сообщить вот этот адрес, который он должен вызвать. Qt на такие попытки сильно ругается.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Вт авг 11, 2020 12:08 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 463
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
Ilya писал(а):
Никоим образом образом не хочу вам дать по рукам и отговорить от создания "вашегофорта", но посмею заметить, что Mecrisp:
Отговорить меня не получится... :D

Ilya писал(а):
1) изначально подгружает входящий поток в ОЗУ и от туда тот "код" и запускается!
Это очень удобно! Отработал в ОЗУ, а уж потом ввёл compiletoflash и сохраняй уже в ПЗУ
Примерно такую же штуку задумал. Интересно, а как это реализовано в Mecrisp? По команде compiletoflash весь словарик из RAM сливается во Flash? Или же после этой команды включается режим "компиляция любых действий во Flash"? Если второй вариант, то не очень удобно, т.к. права на ошибку не имеем.

Ilya писал(а):
2) "жирность" в 16 Кб - так самый "чахлый" и очень распространенный МК который я использовал, stm32f103rb - это 128 Кб ПЗУ и 20 Кб ОЗУ!
Мягко говоря - хватает и с избытком!
Тоже приходилось иметь дело с F103, а позже и с F205/F407/F446. В перспективе планируем что-нибудь из 7-й серии пощупать. Эти МК используем там, где нужна производительность и/или богатый набор периферии. Для таких вещей Mecrisp подходит прекрасно, хотя здесь уже впору о каких-то зачатках ОС думать.

Но есть и другая ветка: F301/F031/F042/L011. Эти камешки используем там, где нужно компактное решение (у них бывают корпуса 5x5, 4x4 и даже 3x3 мм). И вот тут-то объем Flash уже может быть 16K или даже 8K. И если в 16K Mecrisp с горем пополам влезет, то в 8K, увы, никак. Да и в тех МК, где 16K на борту, от Mecrisp будет толку 0, т.к. Форт сжирает всю Flash, а на саму задачу места практически не остается. А хочется так: заливаем в МК компактное ядро и при необходимости дополняем нужными под каждую конкретную задачи библиотеками, например (возьмем примеры с потолка), АЦП и floating-point в одном случае и, допустим, графика и работа со строками в другом. Т.е. хочется предельно компактное и масштабируемое в нужную сторону решение.

Повторюсь, я ни в коем случае не критикую Mecrisp, просто она мне не подходит по ряду причин, кроме того, нет готового решения для всех перечисленных выше МК, например, нет для L011 и F446.

Ilya писал(а):
ЗЫ а разве на ZX Spectrum, Форт весил меньше?
Насчет ZX Spectrum точно не знаю. А вот в первом и единственном Форт-компьютере Jupiter Ace, где тоже процессор Z80, образ ROM весит 8K, но там не только Форт, но вроде еще и картинки для знакогенератора, какое-то подобие ОС и т.д... Предполагаю, что и для ZX Spectrum примерно того же порядка будет цифра.


Кстати, все-таки очень интересно, какая реализация Форт (не обязательно "стандартная", но и не слишком экзотическая) является самой компактной? Можно отдельно по категориям: для ПК/МК... :D


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Вт авг 11, 2020 13:36 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Total Vacuum писал(а):
Кстати, все-таки очень интересно, какая реализация Форт (не обязательно "стандартная", но и не слишком экзотическая) является самой компактной? Можно отдельно по категориям: для ПК/МК... :D

Кто ж знает? :)
Пробовал вариант amForth 5.0 сначала уместить в AtMega8515, но места почти не оставалось для дальнейшей работы с железом, а вот в AtMega162 уже где то половина Флеш занимало ядро (по словам можно посмотреть и запускалось в Proteus,
но правда вывод в терминал WORDS был одной строкой ввиду какого то глюка в Proteus и сам эмулятор не поддерживает самопрограммирование).
На местном форуме OCO пользователь делал свои Форт под AVR и LPC - вроде достаточно компактные.

P.S. Вероятно и eForth наиболее компактные системы http://forth.org/OffeteStore/OffeteStore.html
Camel возможно, навскидку.

для PDP-11 под ff303 вроде достаточно много занимало "полнофункциональное" ядро, но там код был не шитый и как то ещё оптимизировался, но думаю, при равных условиях в их построении, многие Форт для МК будут примерно в одних цифрах,
для тех же PIC, MSP430, STM8 ...

могу на форум загрузить свой вариант для PDP-11 для ff303 с инструментом Win32Forth 6 его сборки и эмулятором и amForth 5.0 но в топиках не работает прикрепление файлов (наверное опять что то "поломалось" в движке форума)
У Михаила есть интересные Форт разработки, но он "игнорирует" местный форум.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Вт авг 11, 2020 14:15 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Total Vacuum писал(а):
Форт сжирает всю Flash, а на саму задачу места практически не остается. А хочется так: заливаем в МК компактное ядро и при необходимости дополняем нужными под каждую конкретную задачи библиотеками, например (возьмем примеры с потолка), АЦП и floating-point в одном случае и, допустим, графика и работа со строками в другом. Т.е. хочется предельно компактное и масштабируемое в нужную сторону решение.

А если тут пользоваться кросс-компиляцией? Форта в МК нет, есть только адресный интерпретатор, или же скомпилированный на PC код (но это потребует компилятора для ARM на Форте). Соответственно, в памяти МК лежит набор нужных функций, от Форта - функция "движка" на 10 строк, которая берет из массива очередной адрес и вызывает соответствующее слово, и массив, образованный программой на Форте, скомпилированной на PC.

Total Vacuum писал(а):
Кстати, все-таки очень интересно, какая реализация Форт (не обязательно "стандартная", но и не слишком экзотическая) является самой компактной? Можно отдельно по категориям: для ПК/МК...

Явно варианты свернутого ШК.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Вт авг 11, 2020 14:27 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Hishnik писал(а):
[А если тут пользоваться кросс-компиляцией? Форта в МК нет, есть только адресный интерпретатор, или же скомпилированный на PC код (но это потребует компилятора для ARM на Форте).

Да, оно во многих системах такое и делается. (OCO для AVR, ARM так и делал, как, впрочем и в ff303 есть, но не проверял,
VFX Forth тоже разные варианты реализует, да и для, например 8051 ... также).
Всё в руках Фортёра и его пристрастиях :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Вт авг 11, 2020 15:45 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Total Vacuum писал(а):
Кстати, все-таки очень интересно, какая реализация Форт (не обязательно "стандартная", но и не слишком экзотическая) является самой компактной? Можно отдельно по категориям: для ПК/МК... :D


На правах саморекламы :)
Nova-forth весит 23 кб (именно код, в расчет не берется память изначально выделенная для пространства данных и словарных статей) для ОС Windows/
При этом на борту много всяких фич.
Если убрать примерно половину, то и в 15 кб может уместиться :)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Вт авг 11, 2020 16:38 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Да, вот только у МК нет Windows, и вообще нет кода, кроме того, который будет явно скомпилирован.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Вт авг 11, 2020 16:46 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Hishnik писал(а):
Да, вот только у МК нет Windows, и вообще нет кода, кроме того, который будет явно скомпилирован.

Ну так просили и в номинации для ПК :)

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Вт авг 11, 2020 22:31 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 494
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
Total Vacuum писал(а):
Или же после этой команды включается режим "компиляция любых действий во Flash"? Если второй вариант, то не очень удобно, т.к. права на ошибку не имеем.

На самом деле много удобнее работать, чем с amForth + есть слово cornerstone (что-то на вроде
forget) стираем из флэш до нужного слова.



За это сообщение автора Ilya поблагодарил: Total Vacuum
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Чт авг 13, 2020 16:27 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Обсуждение разрабатываемого языка MPL использующего постфикс и стэк.
MPL (Programmiersprache) #self-hosting, #C++killer


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Статья от Jeff Fox 1999 года
СообщениеДобавлено: Чт авг 13, 2020 17:13 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
KPG писал(а):
Обсуждение разрабатываемого языка MPL использующего постфикс и стэк.

Ужас какой-то. Даже не в плане языка, а в плане созданной атмосферы. Это что? Это для кого? Чем и кому это поможет? Это все называется "демонстрация квалификации".


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

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


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

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


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

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