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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Сравнительную табличку разных систем для мелких процов
СообщениеДобавлено: Вс авг 30, 2009 10:16 
Не в сети

Зарегистрирован: Сб авг 29, 2009 09:31
Сообщения: 7
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Уважаемые товарищи!

Как некоторые умудренные, возможно, подозревают, у человека незнакомого (меня, например) сначала может сложиться впечатление, что количество разных FORTH-систем в самых разнообразных видах значительно превышает количество собственно приложений, написанных на них. ;-)

Хочется в связи с этим спросить - нет ли где поблизости (или кто-то знающий может составить, возможно с привлечением потусторонних сил) - табличку, перечисляющую какое-то количество более-менее популярных и работоспособных вариаций ФОРТа с указанием основных особенностей, сравнительных характеристик и т.п.

Интересует в первую очередь все, что связано с разработкой мелкого firmware для мелких микроконтроллеров. Тут была тема про системы для АВР, ПИК, МСП и т.п. - но там просто куча ссылок, не все открываются и явно от каждого читающего требуется время чтобы в это дело внедриться...

Например, список приводится здесь: http://forth.org/compilers.html

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

Если даже такого списочка и нет, то, может, гуру согласятся оказать помощь толпам будущих потенциальных поклонников ФОРТа и составят это дело? ;-)

Хочется видеть что-то такое:

XX-FORTH - только для некоторых PICов, реально не система, а просто набор макросов создающих фортоподобие в ассемблере;
YY-FORTH - только для AVR, работает прямо на живом кристалле, по УАРТу, но к сожалению кроме как для того, чтобы смотреть на него и восхищаться, ни для чего не пригоден в виду того что его ядро занимает почти все ресурсы даже на старших контроллерах линейки.
ZZ-FORTH - кросс-компилятор, позволяющий эффективно расширять и себя самого, существуют порты для многих систем, но к сожалению стоит $350 как минимум.

И т.п.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс авг 30, 2009 12:24 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Думается, уж очень объемная задача получается. Это же надо иметь россыпь микроконтроллеров (чтобы еще и попробовать прошить получающийся код), да еще и тестировать не просто 2 2 +, а что-то практически полезное. Хотя конечно, если бы такая информация была, было бы неплохо.

С другой стороны, если есть время, вполне реально либо найти подходящую версию и разобраться в ней, либо разобраться, как оно пишется. Отчасти и версий Форта так много потому, что разные люди писали их для решения конкретных задач и "останавливались на полпути", решив их.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс авг 30, 2009 12:38 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
С другой стороны, если есть время, вполне реально либо найти подходящую версию и разобраться в ней, либо разобраться, как оно пишется. Отчасти и версий Форта так много потому, что разные люди писали их для решения конкретных задач и "останавливались на полпути", решив их.

Пусть бы Хищник закончил мысль ... Это сколько ж повторной работы получилось :shock:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс авг 30, 2009 13:58 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
RodionGork писал(а):
сначала может сложиться впечатление, что количество разных FORTH-систем в самых разнообразных видах значительно превышает количество собственно приложений, написанных на них. ;-)

Это, наверное, так т.к. решенные с помощью Форта задачи в разной тематике, представляют интерес для небольшой группы? В отличии от используемого инструментария.
Хотя вопрос, всё же, остается.

RodionGork писал(а):
Хочется ... составить, возможно с привлечением потусторонних сил) - табличку, перечисляющую какое-то количество более-менее популярных и работоспособных вариаций ФОРТа с указанием основных особенностей, сравнительных характеристик и т.п.


Форт системы или Форт-ориентированные системы, в той или иной степени, работоспособны:)

RodionGork писал(а):
Интересует в первую очередь все, что связано с разработкой мелкого firmware для мелких микроконтроллеров. Тут была тема про системы для АВР, ПИК, МСП и т.п. - но там просто куча ссылок, не все открываются и явно от каждого читающего требуется время чтобы в это дело внедриться...

Тема со ссылками есть ( в Форт процессорах?), но раздела с направленностью материалов на MK нет. ( и даже количество использующих МК с применением Форт, на данном форуме, неясно )
С переставшими открываться ссылками можно попробовать найти решение.

RodionGork писал(а):
Например, список приводится здесь: http://forth.org/compilers.html

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


Для МК, бывает, портируют Форт первоночально сделанный для PC.

RodionGork писал(а):
Если даже такого списочка и нет, то, может, гуру согласятся оказать помощь толпам будущих потенциальных поклонников ФОРТа и составят это дело? ;-)


Возможно...
Толп будущих потенциальных поклонников Форта
ожидать не стоит. ( на electronix-е Си доминирует :)

RodionGork писал(а):
Хочется видеть что-то такое:
...


Не всё так просто в описании характеристик той или иной Форт системе:)

P.S. Часто у Форт программиста или небольшой группы своя Форт система:)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс авг 30, 2009 14:00 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
вопрос писал(а):
Цитата:
С другой стороны, если есть время, вполне реально либо найти подходящую версию и разобраться в ней, либо разобраться, как оно пишется. Отчасти и версий Форта так много потому, что разные люди писали их для решения конкретных задач и "останавливались на полпути", решив их.

Пусть бы Хищник закончил мысль ... Это сколько ж повторной работы получилось :shock:


... сделав свой Форт :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс авг 30, 2009 14:01 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
RodionGork писал(а):
привлечением потусторонних сил) - табличку, перечисляющую какое-то количество более-менее популярных и работоспособных вариаций ФОРТа с указанием основных особенностей, сравнительных характеристик и т.п.


В это мне особого смысла. Дело в том, что сам по себе Форт - это пустышка, все зависит от насыщения.
Один Форт можно выразить через другой, если он не очень громоздкий и доступны исходники.
Я предлагаю СПФ. Т.к. сдесь почти все сидят на нем.

RodionGork писал(а):
АВР, ПИК, МСП и т.п

АВР и МСП есть
Создать версию для другой платформы относительно легко.
Я предлагаю попробовать самому. А мы поможем.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс авг 30, 2009 15:07 
Не в сети
Administrator
Administrator
Аватара пользователя

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

Для Форта достаточно хорошо подходят модели жизненного цикла, подразумевающие итерации. Так что никакой лишней повторной работы тут не видно. Написать один раз всеобъемлющее ТЗ, и потом закопаться в него, выдав через полгода-год Суперфорт Для Всех Микроконтроллеров - это чревато мощнейшим промахом. Форт-то будет... вот только окажется никому не нужным.
Я могу предложить навскидку группу вопросов, которые могут помочь очертить круг требований к кроссплатформенному транслятору для МК
1) Совпадает ли разрядность данных с разрядностью каждого процессора? Является ли она фиксированной? (Хуже - когда МК имеют разные разрядности, и каждый должен работать с "естественной" разрядностью)
2) Какая память и какого вида доступна? Есть ли отдельное адресное пространство памяти данных? Может ли процессор модифицировать память программ в процессе работы, или это возможно только с помощью внешнего программатора? (Лучше - когда память модифицируется, есть флеш программ большого объема, и SRAM для данных)
3) Можно ли указать минимальные требования к объему памяти (которым должен удовлетворять каждый МК, используемый совместно с транслятором).
4) Будет ли использоваться только кросс-компиляция, или МК должен интерпретировать входной поток? Должен ли он также компилировать новые слова (см. также п.2 по поводу возможности модификации памяти), или во входном потоке достаточно исполнять команды? (Проще - когда используется только кросс-компиляция)
5) Требуется ли тесная интеграция в систему сложных интерфейсов (например, требуется ли работа с USB и TCP/IP, что требует реализации поддержки на протокольном уровне)? (Лучше - когда не требуется, или с помощью библиотек от производителя сложные интерфейсы могут эмулировать более простой протокол - например, виртуальный последовательный порт)
6) Являются ли требования к производительности жесткими? (Лучше - когда от Форта не требуется уметь компилировать исключительно быстрый код, а критичный код выносится в ассемблерные вставки или подключается из языков высокого уровня)
7) Требуется ли предельная компактность программы на Форте? (От этого зависит целесообразность использования шитого кода в одном из компактных представлений)
8) Имеется ли простой и документированный формат загрузки для каждого из используемых МК? (Лучше - когда сгенерированный образ памяти МК может быть загружен в МК без преобразований, что позволяет прошивать непосредственно результат работы кросс-компилятора)
9) Насколько интенсивным будет доводка и сопровождение продукта, для которого предполагается МК+Форт? (Лучше - если интенсивным, с частыми правками логики работы, чтобы проявились положительные качества проблемно-ориентированного языка, который можно написать на Форте для сопровождаемой задачи)
10) Есть ли показательное применение для Форта и резерв по времени до передачи в производство/эксплуатацию? (Желательно - в районе полугода спокойной доводки)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 31, 2009 13:42 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Я бы еще один пункт добавил:
Нужен ли какой-либо отладочный интерфейс с существующими симуляторами
и эмуляторами данного МК (хотя-бы на уровне ассемблерного кода).

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 31, 2009 13:54 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
chess писал(а):
Я бы еще один пункт добавил:
Нужен ли какой-либо отладочный интерфейс с существующими симуляторами
и эмуляторами данного МК (хотя-бы на уровне ассемблерного кода).

Это закрывается пунктом 8.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 31, 2009 14:23 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Формат литералов может не поддерживаться симулятором-эмулятором, например, хотя для Форта все будет корректно.
Ну ладно, в данном случае можно извернуться и привести формат литералов в форму понятную симулятору
(при этом нужно будет пожертвовать компактностью форт-кода - правда, потом, после отладки, можно отыграть назад
и восстановить исходный фортовский формат литералов)
Кроме того не будет адресной поддержки слов форта на уровне симулятора-эмулятора - но это обходится листингом,
который должна выдавать форт-система.
Хищник писал(а):
Это закрывается пунктом 8.

В общем - да, но не автоматически, а с некими издержками.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 31, 2009 14:45 
Не в сети

Зарегистрирован: Вс июн 21, 2009 19:11
Сообщения: 81
Откуда: Н.Новгород
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Может, не совсем по теме, но мне показалось по итогам моего беглого обзора фортов (который так и не окончен по причине глобального завала на работе), что очень не хватает инлайн-си.
То есть система такая: платформо-зависимые и критичные по времени места пишем не на ассемблере, а делаем что-то типа
Код:

    ... с code ...
c]

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

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


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

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

Стоп, это о чем? Формируется образ памяти целевого процессора в соответствии с требованиями программатора/эмулятора. Литералы там, или команды, разницы уже никакой. Никаких листингов, списков или прочих полуфабрикатов. В идеальном варианте должна быть возможность отослать в МК файл, содержащий "слепок" всей памяти. В этом случае задачей целевого компилятора будет создать такой слепок.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 31, 2009 15:16 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
MrYuran писал(а):
То есть система такая: платформо-зависимые и критичные по времени места пишем не на ассемблере, а делаем что-то типа

Форт можно и так писать сразу на Си.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 31, 2009 15:59 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Хищник писал(а):
chess писал(а):
Формат литералов может не поддерживаться симулятором-эмулятором, например, хотя для Форта все будет корректно.
Ну ладно, в данном случае можно извернуться и привести формат литералов в форму понятную симулятору

Стоп, это о чем? .

Наверное сформировать отладочный код для отладчика из
Форт исходника, например, в формате псевдо Си и иметь
возможность пошаговой отладки:)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн авг 31, 2009 16:11 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
MrYuran писал(а):
То есть система такая: платформо-зависимые и критичные по времени места пишем не на ассемблере, а делаем что-то типа
Код:

    ... с code ...
c]

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

Михаил так и предлагает:) Asm лучше Си тем, что для него
не существует никаких семантических моделей высокоуровневых языков.
Си код во вставке необязательно должен поддерживать
весь синтаксис и семантику Си языка, а только необходимую
в реализации Форт системы.
Например, в Форте могут присутствовать слова
Код:
if( do(  while( for(


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

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


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

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


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

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