Forth http://fforum.winglion.ru/ |
|
Сравнительную табличку разных систем для мелких процов http://fforum.winglion.ru/viewtopic.php?f=39&t=2255 |
Страница 1 из 2 |
Автор: | RodionGork [ Вс авг 30, 2009 10:16 ] |
Заголовок сообщения: | Сравнительную табличку разных систем для мелких процов |
Уважаемые товарищи! Как некоторые умудренные, возможно, подозревают, у человека незнакомого (меня, например) сначала может сложиться впечатление, что количество разных FORTH-систем в самых разнообразных видах значительно превышает количество собственно приложений, написанных на них. Хочется в связи с этим спросить - нет ли где поблизости (или кто-то знающий может составить, возможно с привлечением потусторонних сил) - табличку, перечисляющую какое-то количество более-менее популярных и работоспособных вариаций ФОРТа с указанием основных особенностей, сравнительных характеристик и т.п. Интересует в первую очередь все, что связано с разработкой мелкого firmware для мелких микроконтроллеров. Тут была тема про системы для АВР, ПИК, МСП и т.п. - но там просто куча ссылок, не все открываются и явно от каждого читающего требуется время чтобы в это дело внедриться... Например, список приводится здесь: http://forth.org/compilers.html Но тут в основном перечисляется разнообразие для настольных компьютеров, да и описания практически никакого нет. Если даже такого списочка и нет, то, может, гуру согласятся оказать помощь толпам будущих потенциальных поклонников ФОРТа и составят это дело? Хочется видеть что-то такое: XX-FORTH - только для некоторых PICов, реально не система, а просто набор макросов создающих фортоподобие в ассемблере; YY-FORTH - только для AVR, работает прямо на живом кристалле, по УАРТу, но к сожалению кроме как для того, чтобы смотреть на него и восхищаться, ни для чего не пригоден в виду того что его ядро занимает почти все ресурсы даже на старших контроллерах линейки. ZZ-FORTH - кросс-компилятор, позволяющий эффективно расширять и себя самого, существуют порты для многих систем, но к сожалению стоит $350 как минимум. И т.п. |
Автор: | Hishnik [ Вс авг 30, 2009 12:24 ] |
Заголовок сообщения: | |
Думается, уж очень объемная задача получается. Это же надо иметь россыпь микроконтроллеров (чтобы еще и попробовать прошить получающийся код), да еще и тестировать не просто 2 2 +, а что-то практически полезное. Хотя конечно, если бы такая информация была, было бы неплохо. С другой стороны, если есть время, вполне реально либо найти подходящую версию и разобраться в ней, либо разобраться, как оно пишется. Отчасти и версий Форта так много потому, что разные люди писали их для решения конкретных задач и "останавливались на полпути", решив их. |
Автор: | вопрос [ Вс авг 30, 2009 12:38 ] |
Заголовок сообщения: | |
Цитата: С другой стороны, если есть время, вполне реально либо найти подходящую версию и разобраться в ней, либо разобраться, как оно пишется. Отчасти и версий Форта так много потому, что разные люди писали их для решения конкретных задач и "останавливались на полпути", решив их.
Пусть бы Хищник закончил мысль ... Это сколько ж повторной работы получилось |
Автор: | Kopa [ Вс авг 30, 2009 13:58 ] |
Заголовок сообщения: | |
RodionGork писал(а): сначала может сложиться впечатление, что количество разных FORTH-систем в самых разнообразных видах значительно превышает количество собственно приложений, написанных на них. Это, наверное, так т.к. решенные с помощью Форта задачи в разной тематике, представляют интерес для небольшой группы? В отличии от используемого инструментария. Хотя вопрос, всё же, остается. RodionGork писал(а): Хочется ... составить, возможно с привлечением потусторонних сил) - табличку, перечисляющую какое-то количество более-менее популярных и работоспособных вариаций ФОРТа с указанием основных особенностей, сравнительных характеристик и т.п. Форт системы или Форт-ориентированные системы, в той или иной степени, работоспособны:) RodionGork писал(а): Интересует в первую очередь все, что связано с разработкой мелкого firmware для мелких микроконтроллеров. Тут была тема про системы для АВР, ПИК, МСП и т.п. - но там просто куча ссылок, не все открываются и явно от каждого читающего требуется время чтобы в это дело внедриться... Тема со ссылками есть ( в Форт процессорах?), но раздела с направленностью материалов на MK нет. ( и даже количество использующих МК с применением Форт, на данном форуме, неясно ) С переставшими открываться ссылками можно попробовать найти решение. RodionGork писал(а): Например, список приводится здесь: http://forth.org/compilers.html Но тут в основном перечисляется разнообразие для настольных компьютеров, да и описания практически никакого нет. Для МК, бывает, портируют Форт первоночально сделанный для PC. RodionGork писал(а): Если даже такого списочка и нет, то, может, гуру согласятся оказать помощь толпам будущих потенциальных поклонников ФОРТа и составят это дело? Возможно... Толп будущих потенциальных поклонников Форта ожидать не стоит. ( на electronix-е Си доминирует RodionGork писал(а): Хочется видеть что-то такое:
... Не всё так просто в описании характеристик той или иной Форт системе:) P.S. Часто у Форт программиста или небольшой группы своя Форт система:) |
Автор: | Kopa [ Вс авг 30, 2009 14:00 ] |
Заголовок сообщения: | |
вопрос писал(а): Цитата: С другой стороны, если есть время, вполне реально либо найти подходящую версию и разобраться в ней, либо разобраться, как оно пишется. Отчасти и версий Форта так много потому, что разные люди писали их для решения конкретных задач и "останавливались на полпути", решив их. Пусть бы Хищник закончил мысль ... Это сколько ж повторной работы получилось ... сделав свой Форт |
Автор: | Mihail [ Вс авг 30, 2009 14:01 ] |
Заголовок сообщения: | |
RodionGork писал(а): привлечением потусторонних сил) - табличку, перечисляющую какое-то количество более-менее популярных и работоспособных вариаций ФОРТа с указанием основных особенностей, сравнительных характеристик и т.п. В это мне особого смысла. Дело в том, что сам по себе Форт - это пустышка, все зависит от насыщения. Один Форт можно выразить через другой, если он не очень громоздкий и доступны исходники. Я предлагаю СПФ. Т.к. сдесь почти все сидят на нем. RodionGork писал(а): АВР, ПИК, МСП и т.п
АВР и МСП есть Создать версию для другой платформы относительно легко. Я предлагаю попробовать самому. А мы поможем. |
Автор: | Hishnik [ Вс авг 30, 2009 15:07 ] |
Заголовок сообщения: | |
вопрос писал(а): Это сколько ж повторной работы получилось
Для Форта достаточно хорошо подходят модели жизненного цикла, подразумевающие итерации. Так что никакой лишней повторной работы тут не видно. Написать один раз всеобъемлющее ТЗ, и потом закопаться в него, выдав через полгода-год Суперфорт Для Всех Микроконтроллеров - это чревато мощнейшим промахом. Форт-то будет... вот только окажется никому не нужным. Я могу предложить навскидку группу вопросов, которые могут помочь очертить круг требований к кроссплатформенному транслятору для МК 1) Совпадает ли разрядность данных с разрядностью каждого процессора? Является ли она фиксированной? (Хуже - когда МК имеют разные разрядности, и каждый должен работать с "естественной" разрядностью) 2) Какая память и какого вида доступна? Есть ли отдельное адресное пространство памяти данных? Может ли процессор модифицировать память программ в процессе работы, или это возможно только с помощью внешнего программатора? (Лучше - когда память модифицируется, есть флеш программ большого объема, и SRAM для данных) 3) Можно ли указать минимальные требования к объему памяти (которым должен удовлетворять каждый МК, используемый совместно с транслятором). 4) Будет ли использоваться только кросс-компиляция, или МК должен интерпретировать входной поток? Должен ли он также компилировать новые слова (см. также п.2 по поводу возможности модификации памяти), или во входном потоке достаточно исполнять команды? (Проще - когда используется только кросс-компиляция) 5) Требуется ли тесная интеграция в систему сложных интерфейсов (например, требуется ли работа с USB и TCP/IP, что требует реализации поддержки на протокольном уровне)? (Лучше - когда не требуется, или с помощью библиотек от производителя сложные интерфейсы могут эмулировать более простой протокол - например, виртуальный последовательный порт) 6) Являются ли требования к производительности жесткими? (Лучше - когда от Форта не требуется уметь компилировать исключительно быстрый код, а критичный код выносится в ассемблерные вставки или подключается из языков высокого уровня) 7) Требуется ли предельная компактность программы на Форте? (От этого зависит целесообразность использования шитого кода в одном из компактных представлений) Имеется ли простой и документированный формат загрузки для каждого из используемых МК? (Лучше - когда сгенерированный образ памяти МК может быть загружен в МК без преобразований, что позволяет прошивать непосредственно результат работы кросс-компилятора) 9) Насколько интенсивным будет доводка и сопровождение продукта, для которого предполагается МК+Форт? (Лучше - если интенсивным, с частыми правками логики работы, чтобы проявились положительные качества проблемно-ориентированного языка, который можно написать на Форте для сопровождаемой задачи) 10) Есть ли показательное применение для Форта и резерв по времени до передачи в производство/эксплуатацию? (Желательно - в районе полугода спокойной доводки) |
Автор: | chess [ Пн авг 31, 2009 13:42 ] |
Заголовок сообщения: | |
Я бы еще один пункт добавил: Нужен ли какой-либо отладочный интерфейс с существующими симуляторами и эмуляторами данного МК (хотя-бы на уровне ассемблерного кода). |
Автор: | Hishnik [ Пн авг 31, 2009 13:54 ] |
Заголовок сообщения: | |
chess писал(а): Я бы еще один пункт добавил:
Нужен ли какой-либо отладочный интерфейс с существующими симуляторами и эмуляторами данного МК (хотя-бы на уровне ассемблерного кода). Это закрывается пунктом 8. |
Автор: | chess [ Пн авг 31, 2009 14:23 ] |
Заголовок сообщения: | |
Формат литералов может не поддерживаться симулятором-эмулятором, например, хотя для Форта все будет корректно. Ну ладно, в данном случае можно извернуться и привести формат литералов в форму понятную симулятору (при этом нужно будет пожертвовать компактностью форт-кода - правда, потом, после отладки, можно отыграть назад и восстановить исходный фортовский формат литералов) Кроме того не будет адресной поддержки слов форта на уровне симулятора-эмулятора - но это обходится листингом, который должна выдавать форт-система. Хищник писал(а): Это закрывается пунктом 8.
В общем - да, но не автоматически, а с некими издержками. |
Автор: | MrYuran [ Пн авг 31, 2009 14:45 ] |
Заголовок сообщения: | |
Может, не совсем по теме, но мне показалось по итогам моего беглого обзора фортов (который так и не окончен по причине глобального завала на работе), что очень не хватает инлайн-си. То есть система такая: платформо-зависимые и критичные по времени места пишем не на ассемблере, а делаем что-то типа Код: [с
... с code ... c] вот эта конструкция подключает внешний (по отношению к форту) си-тулчейн, формирует кусок кода, который затем вставляется в определение слова согласно внутренним правилам форта. По-моему, это существенно улучшило бы переносимость и совместимость разных систем, поскольку потребовалось бы только унифицировать интерфейсы. А также открывается доступ ко всему богатству накопленных возможностей, имеющихся в других языках и средах. |
Автор: | Hishnik [ Пн авг 31, 2009 15:14 ] |
Заголовок сообщения: | |
chess писал(а): Формат литералов может не поддерживаться симулятором-эмулятором, например, хотя для Форта все будет корректно.
Ну ладно, в данном случае можно извернуться и привести формат литералов в форму понятную симулятору Стоп, это о чем? Формируется образ памяти целевого процессора в соответствии с требованиями программатора/эмулятора. Литералы там, или команды, разницы уже никакой. Никаких листингов, списков или прочих полуфабрикатов. В идеальном варианте должна быть возможность отослать в МК файл, содержащий "слепок" всей памяти. В этом случае задачей целевого компилятора будет создать такой слепок. |
Автор: | Hishnik [ Пн авг 31, 2009 15:16 ] |
Заголовок сообщения: | |
MrYuran писал(а): То есть система такая: платформо-зависимые и критичные по времени места пишем не на ассемблере, а делаем что-то типа
Форт можно и так писать сразу на Си. |
Автор: | Kopa [ Пн авг 31, 2009 15:59 ] |
Заголовок сообщения: | |
Хищник писал(а): chess писал(а): Формат литералов может не поддерживаться симулятором-эмулятором, например, хотя для Форта все будет корректно. Ну ладно, в данном случае можно извернуться и привести формат литералов в форму понятную симулятору Стоп, это о чем? . Наверное сформировать отладочный код для отладчика из Форт исходника, например, в формате псевдо Си и иметь возможность пошаговой отладки:) |
Автор: | Kopa [ Пн авг 31, 2009 16:11 ] |
Заголовок сообщения: | |
MrYuran писал(а): То есть система такая: платформо-зависимые и критичные по времени места пишем не на ассемблере, а делаем что-то типа Код: [с ... с code ... c] вот эта конструкция подключает внешний (по отношению к форту) си-тулчейн, формирует кусок кода, который затем вставляется в определение слова согласно внутренним правилам форта. . Михаил так и предлагает:) Asm лучше Си тем, что для него не существует никаких семантических моделей высокоуровневых языков. Си код во вставке необязательно должен поддерживать весь синтаксис и семантику Си языка, а только необходимую в реализации Форт системы. Например, в Форте могут присутствовать слова Код: if( do( while( for(
|
Страница 1 из 2 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |