Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
Total Vacuum писал(а): Что ж, будем считать, что на данный момент в лидерах рейтинга Nova 15-23KB для ПК и несколько разных Фортов 8K для МК SPF4 ужатый в штатный формат исполняемых файлов KolibriOS ~24Кб (с оптимизатором в наличии) шабронов A.A. вообще не ограничивает в размерах свои SPF4 программы сжимая и упаковывая в исполняемый файл и исходники программы с версией SPF4 и развлекательный контекст, чтобы, при необходимости правки, всё было уже доступно в самом исполняемом файле. (сайт, кстати, у него расположен на личном компьютере и может быть временно недоступен) Распаковка примерно по test_monsys.exe s 3 3 3 и возможна повторная сборка.
[quote="Total Vacuum"]Что ж, будем считать, что на данный момент в лидерах рейтинга Nova 15-23KB для ПК и несколько разных Фортов 8K для МК :)[/quote] :) SPF4 ужатый в штатный формат исполняемых файлов KolibriOS ~24Кб (с оптимизатором в наличии) [url=http://www.shabronov.narod.ru/]шабронов A.A.[/url] вообще не ограничивает в размерах свои SPF4 программы сжимая и упаковывая в исполняемый файл и исходники программы с версией SPF4 и развлекательный контекст, чтобы, при необходимости правки, всё было уже доступно в самом исполняемом файле. (сайт, кстати, у него расположен на личном компьютере и может быть временно недоступен) Распаковка примерно по test_monsys.exe s 3 3 3 и возможна повторная сборка.
|
|
|
|
Добавлено: Пт авг 14, 2020 13:23 |
|
|
|
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
Victor__v писал(а): На правах саморекламы Nova-forth весит 23 кб (именно код, в расчет не берется память изначально выделенная для пространства данных и словарных статей) для ОС Windows/ При этом на борту много всяких фич. Если убрать примерно половину, то и в 15 кб может уместиться Что ж, будем считать, что на данный момент в лидерах рейтинга Nova 15-23KB для ПК и несколько разных Фортов 8K для МК
[quote="Victor__v"]На правах саморекламы :) Nova-forth весит 23 кб (именно код, в расчет не берется память изначально выделенная для пространства данных и словарных статей) для ОС Windows/ При этом на борту много всяких фич. Если убрать примерно половину, то и в 15 кб может уместиться :)[/quote]Что ж, будем считать, что на данный момент в лидерах рейтинга Nova 15-23KB для ПК и несколько разных Фортов 8K для МК :)
|
|
|
|
Добавлено: Пт авг 14, 2020 12:50 |
|
|
|
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
KPG писал(а): Обсуждение разрабатываемого языка MPL использующего постфикс и стэк. Ужас какой-то. Даже не в плане языка, а в плане созданной атмосферы. Это что? Это для кого? Чем и кому это поможет? Это все называется "демонстрация квалификации".
[quote="KPG"]Обсуждение разрабатываемого языка MPL использующего постфикс и стэк.[/quote] Ужас какой-то. Даже не в плане языка, а в плане созданной атмосферы. Это что? Это для кого? Чем и кому это поможет? Это все называется "демонстрация квалификации".
|
|
|
|
Добавлено: Чт авг 13, 2020 17:13 |
|
|
|
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
Обсуждение разрабатываемого языка MPL использующего постфикс и стэк. MPL (Programmiersprache) #self-hosting, #C++killer
Обсуждение разрабатываемого языка MPL использующего постфикс и стэк. [url=https://gamedev.ru/flame/forum/?id=253602]MPL (Programmiersprache) #self-hosting, #C++killer[/url]
|
|
|
|
Добавлено: Чт авг 13, 2020 16:27 |
|
|
|
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
Total Vacuum писал(а): Или же после этой команды включается режим "компиляция любых действий во Flash"? Если второй вариант, то не очень удобно, т.к. права на ошибку не имеем.
На самом деле много удобнее работать, чем с amForth + есть слово cornerstone (что-то на вроде forget) стираем из флэш до нужного слова.
[quote="Total Vacuum"]Или же после этой команды включается режим "компиляция любых действий во Flash"? Если второй вариант, то не очень удобно, т.к. права на ошибку не имеем. [/quote] На самом деле много удобнее работать, чем с amForth + есть слово cornerstone (что-то на вроде forget) стираем из флэш до нужного слова.
|
|
|
|
Добавлено: Вт авг 11, 2020 22:31 |
|
|
|
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
Hishnik писал(а): Да, вот только у МК нет Windows, и вообще нет кода, кроме того, который будет явно скомпилирован. Ну так просили и в номинации для ПК
[quote="Hishnik"]Да, вот только у МК нет Windows, и вообще нет кода, кроме того, который будет явно скомпилирован.[/quote] Ну так просили и в номинации для ПК :)
|
|
|
|
Добавлено: Вт авг 11, 2020 16:46 |
|
|
|
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
Да, вот только у МК нет Windows, и вообще нет кода, кроме того, который будет явно скомпилирован.
Да, вот только у МК нет Windows, и вообще нет кода, кроме того, который будет явно скомпилирован.
|
|
|
|
Добавлено: Вт авг 11, 2020 16:38 |
|
|
|
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
Total Vacuum писал(а): Кстати, все-таки очень интересно, какая реализация Форт (не обязательно "стандартная", но и не слишком экзотическая) является самой компактной? Можно отдельно по категориям: для ПК/МК... На правах саморекламы Nova-forth весит 23 кб (именно код, в расчет не берется память изначально выделенная для пространства данных и словарных статей) для ОС Windows/ При этом на борту много всяких фич. Если убрать примерно половину, то и в 15 кб может уместиться
[quote="Total Vacuum"]Кстати, все-таки очень интересно, какая реализация Форт (не обязательно "стандартная", но и не слишком экзотическая) является самой компактной? Можно отдельно по категориям: для ПК/МК... :D[/quote]
На правах саморекламы :) Nova-forth весит 23 кб (именно код, в расчет не берется память изначально выделенная для пространства данных и словарных статей) для ОС Windows/ При этом на борту много всяких фич. Если убрать примерно половину, то и в 15 кб может уместиться :)
|
|
|
|
Добавлено: Вт авг 11, 2020 15:45 |
|
|
|
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
Hishnik писал(а): [А если тут пользоваться кросс-компиляцией? Форта в МК нет, есть только адресный интерпретатор, или же скомпилированный на PC код (но это потребует компилятора для ARM на Форте). Да, оно во многих системах такое и делается. (OCO для AVR, ARM так и делал, как, впрочем и в ff303 есть, но не проверял, VFX Forth тоже разные варианты реализует, да и для, например 8051 ... также). Всё в руках Фортёра и его пристрастиях
[quote="Hishnik"][А если тут пользоваться кросс-компиляцией? Форта в МК нет, есть только адресный интерпретатор, или же скомпилированный на PC код (но это потребует компилятора для ARM на Форте).[/quote] Да, оно во многих системах такое и делается. (OCO для AVR, ARM так и делал, как, впрочем и в ff303 есть, но не проверял, VFX Forth тоже разные варианты реализует, да и для, например 8051 ... также). Всё в руках Фортёра и его пристрастиях :)
|
|
|
|
Добавлено: Вт авг 11, 2020 14:27 |
|
|
|
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
Total Vacuum писал(а): Форт сжирает всю Flash, а на саму задачу места практически не остается. А хочется так: заливаем в МК компактное ядро и при необходимости дополняем нужными под каждую конкретную задачи библиотеками, например (возьмем примеры с потолка), АЦП и floating-point в одном случае и, допустим, графика и работа со строками в другом. Т.е. хочется предельно компактное и масштабируемое в нужную сторону решение. А если тут пользоваться кросс-компиляцией? Форта в МК нет, есть только адресный интерпретатор, или же скомпилированный на PC код (но это потребует компилятора для ARM на Форте). Соответственно, в памяти МК лежит набор нужных функций, от Форта - функция "движка" на 10 строк, которая берет из массива очередной адрес и вызывает соответствующее слово, и массив, образованный программой на Форте, скомпилированной на PC. Total Vacuum писал(а): Кстати, все-таки очень интересно, какая реализация Форт (не обязательно "стандартная", но и не слишком экзотическая) является самой компактной? Можно отдельно по категориям: для ПК/МК... Явно варианты свернутого ШК.
[quote="Total Vacuum"]Форт сжирает всю Flash, а на саму задачу места практически не остается. А хочется так: заливаем в МК компактное ядро и при необходимости дополняем нужными под каждую конкретную задачи библиотеками, например (возьмем примеры с потолка), АЦП и floating-point в одном случае и, допустим, графика и работа со строками в другом. Т.е. хочется предельно компактное и масштабируемое в нужную сторону решение.[/quote] А если тут пользоваться кросс-компиляцией? Форта в МК нет, есть только адресный интерпретатор, или же скомпилированный на PC код (но это потребует компилятора для ARM на Форте). Соответственно, в памяти МК лежит набор нужных функций, от Форта - функция "движка" на 10 строк, которая берет из массива очередной адрес и вызывает соответствующее слово, и массив, образованный программой на Форте, скомпилированной на PC.
[quote="Total Vacuum"]Кстати, все-таки очень интересно, какая реализация Форт (не обязательно "стандартная", но и не слишком экзотическая) является самой компактной? Можно отдельно по категориям: для ПК/МК... [/quote] Явно варианты свернутого ШК.
|
|
|
|
Добавлено: Вт авг 11, 2020 14:15 |
|
|
|
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
Total Vacuum писал(а): Кстати, все-таки очень интересно, какая реализация Форт (не обязательно "стандартная", но и не слишком экзотическая) является самой компактной? Можно отдельно по категориям: для ПК/МК... Кто ж знает? Пробовал вариант 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 но в топиках не работает прикрепление файлов (наверное опять что то "поломалось" в движке форума) У Михаила есть интересные Форт разработки, но он "игнорирует" местный форум.
[quote="Total Vacuum"]Кстати, все-таки очень интересно, какая реализация Форт (не обязательно "стандартная", но и не слишком экзотическая) является самой компактной? Можно отдельно по категориям: для ПК/МК... :D[/quote] Кто ж знает? :) Пробовал вариант 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 но в топиках не работает прикрепление файлов (наверное опять что то "поломалось" в движке форума) У Михаила есть интересные Форт разработки, но он "игнорирует" местный форум.
|
|
|
|
Добавлено: Вт авг 11, 2020 13:36 |
|
|
|
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
Ilya писал(а): Никоим образом образом не хочу вам дать по рукам и отговорить от создания "вашегофорта", но посмею заметить, что Mecrisp: Отговорить меня не получится... 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 примерно того же порядка будет цифра. Кстати, все-таки очень интересно, какая реализация Форт (не обязательно "стандартная", но и не слишком экзотическая) является самой компактной? Можно отдельно по категориям: для ПК/МК...
[quote="Ilya"]Никоим образом образом не хочу вам дать по рукам и отговорить от создания "вашегофорта", но посмею заметить, что Mecrisp:[/quote]Отговорить меня не получится... :D
[quote="Ilya"]1) изначально подгружает входящий поток в ОЗУ и от туда тот "код" и запускается! Это очень удобно! Отработал в ОЗУ, а уж потом ввёл compiletoflash и сохраняй уже в ПЗУ[/quote]Примерно такую же штуку задумал. Интересно, а как это реализовано в Mecrisp? По команде compiletoflash весь словарик из RAM сливается во Flash? Или же после этой команды включается режим "компиляция любых действий во Flash"? Если второй вариант, то не очень удобно, т.к. права на ошибку не имеем.
[quote="Ilya"]2) "жирность" в 16 Кб - так самый "чахлый" и очень распространенный МК который я использовал, stm32f103rb - это 128 Кб ПЗУ и 20 Кб ОЗУ! Мягко говоря - хватает и с избытком![/quote]Тоже приходилось иметь дело с 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.
[quote="Ilya"]ЗЫ а разве на ZX Spectrum, Форт весил меньше?[/quote]Насчет ZX Spectrum точно не знаю. А вот в первом и единственном Форт-компьютере Jupiter Ace, где тоже процессор Z80, образ ROM весит 8K, но там не только Форт, но вроде еще и картинки для знакогенератора, какое-то подобие ОС и т.д... Предполагаю, что и для ZX Spectrum примерно того же порядка будет цифра.
Кстати, все-таки очень интересно, какая реализация Форт (не обязательно "стандартная", но и не слишком экзотическая) является самой компактной? Можно отдельно по категориям: для ПК/МК... :D
|
|
|
|
Добавлено: Вт авг 11, 2020 12:08 |
|
|
|
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
Ilya писал(а): могут дёрнуть нативно моё Форт слово и без посредников? Они-то могут, а как слову Форта что-то сделать с виджетом? Например, динамически создается объект "кнопка", а у него есть координаты. Понятно, что можно вызвать нечто вроде SetCoord (в зависимости от фреймворка), но Форту нужно теперь как-то сообщить вот этот адрес, который он должен вызвать. Qt на такие попытки сильно ругается.
[quote="Ilya"] могут дёрнуть нативно моё Форт слово и без посредников? [/quote] Они-то могут, а как слову Форта что-то сделать с виджетом? Например, динамически создается объект "кнопка", а у него есть координаты. Понятно, что можно вызвать нечто вроде SetCoord (в зависимости от фреймворка), но Форту нужно теперь как-то сообщить вот этот адрес, который он должен вызвать. Qt на такие попытки сильно ругается.
|
|
|
|
Добавлено: Вс авг 09, 2020 01:14 |
|
|
|
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
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? ... могут дёрнуть нативно моё Форт слово и без посредников?
[quote="Hishnik"][quote="Ilya"]callback - может я не до конца всё понял, но как я смогу полноценно взаимодействовать с GTK, mosquitto[/quote] Имитируется очередь, в нее помещаются сообщения, они разбираются в C++ и передаются движку Qt.
[url]http://fforum.winglion.ru/viewtopic.php?f=23&t=3165&start=57[/url][/quote] Не очень понял, для чего усложнять себе жизнь с очередью!? Например, есть такая штука "mosquitto_message_callback_set" и для чего мне нужен посредник в виде прослойки на C++, если mosquitto, GTK? ... могут дёрнуть нативно моё Форт слово и без посредников? :wink:
|
|
|
|
Добавлено: Сб авг 08, 2020 22:03 |
|
|
|
|
|
Заголовок сообщения: |
Re: Статья от Jeff Fox 1999 года |
|
|
Ilya писал(а): callback - может я не до конца всё понял, но как я смогу полноценно взаимодействовать с GTK, mosquitto Имитируется очередь, в нее помещаются сообщения, они разбираются в C++ и передаются движку Qt. http://fforum.winglion.ru/viewtopic.php?f=23&t=3165&start=57
[quote="Ilya"]callback - может я не до конца всё понял, но как я смогу полноценно взаимодействовать с GTK, mosquitto[/quote] Имитируется очередь, в нее помещаются сообщения, они разбираются в C++ и передаются движку Qt.
[url]http://fforum.winglion.ru/viewtopic.php?f=23&t=3165&start=57[/url]
|
|
|
|
Добавлено: Сб авг 08, 2020 14:25 |
|
|
|
|