Случайно забрел на http://forth.gsfc.nasa.gov. И вот возник такой вопрос -
а чем обусловлено довольно широкое применение Forth в embedded приложениях?
Ограниченность ресурсов, которая не позволяет использовать, к примеру, C? Или
что-то еще, чего я с первого взгляда не вижу? Какие преимущества может
дать Forth для таких применений? Ведь существуют даже Forth-CPU. Кстати,
это отдельная интересная тема. :) Может есть такие для FPGA? Что-то сразу
на opencores.org не нашел. Или их каждый пишет сам для себя? :) Много вопросов,
но просто с этим раньше никогда не сталкивался, а тут стало интересно.
--
Best regards
VB> Случайно забрел на http://forth.gsfc.nasa.gov. И вот возник такой вопрос
VB> -
VB> а чем обусловлено довольно широкое применение Forth в embedded
VB> приложениях? Ограниченность ресурсов, которая не позволяет использовать,
VB> к примеру, C? Или что-то еще, чего я с первого взгляда не вижу? Какие
VB> преимущества может
VB> дать Forth для таких применений? Ведь существуют даже Forth-CPU. Кстати,
VB> это отдельная интересная тема. :) Может есть такие для FPGA? Что-то сразу
VB> на opencores.org не нашел. Или их каждый пишет сам для себя? :) Много
VB> вопросов, но просто с этим раньше никогда не сталкивался, а тут стало
VB> интересно.
Урря, заготовка для флейма! :))))) Вот у меня чесались руки написать про Форт,
но я уж сдержался :)
Во-первых, www.fforum.winglion.ru. Там фортеры, некоторые по совместительству
еще и плисоводы.
Во-вторых, если вкратце - прямая как палка трансляция. Парсим текст по
пробелам, все, что встретили - компилируем как call на этот адрес. Что не
нашли - число, видимо... Кладем на стек (поскольку при таком подходе разбор
выражений сделать сложновато). Отсюда стековая машина как модель вычислений и
словарь (традиционно - однонаправленный список с полями "имя" и "адрес, куда
делать call". Транслятор представляет собой упражнение для студента, косвенно
связанного с программированием, потому может делаться пачками, подгоняясь под
малораспространенные платформы. Производительность реально довести до 60-80%
от промышленных компиляторов тех же Си, а в Embedded производительность не
всегда на первом месте (тем более что часто все может определяться протоколом
обмена с периферией). Лично у меня был прецедент написания Форта по причине
того, что Си для процессора надо было оплачивать и ждать минимум неделю
прохождения счетов-платежек и собственно доставки. За неделю вместо этого
появился кросс-ассемблер, Форт и собственно проект.
Форт-процессоры в ПЛИС есть. В ASIC тоже, но они... экстравагантные. Его
действительно часто проще написать, чем адаптировать существующий, тем более
что параллельно происходит "вхождение" в проект. Кстати, имеется масса плюсов
от реализации в ПЛИС именно безоперандных процессоров (а Форт тут дает ну хотя
бы уже накатанную грамматику и готовые шаблоны кодирования).
bye
Sat, 08 Dec 2007 01:04:52, Ilia Tarasov wrote:
VB>> Случайно забрел на http://forth.gsfc.nasa.gov. И вот возник такой
VB>> вопрос - а чем обусловлено довольно широкое применение Forth в
VB>> embedded приложениях? Ограниченность ресурсов, которая не
VB>> позволяет использовать, к примеру, C? Или что-то еще, чего я с
VB>> первого взгляда не вижу? Какие преимущества может дать Forth для
VB>> таких применений? Ведь существуют даже Forth-CPU. Кстати, это
VB>> отдельная интересная тема. :) Может есть такие для FPGA? Что-то
VB>> сразу на opencores.org не нашел. Или их каждый пишет сам для
VB>> себя? :) Много вопросов, но просто с этим раньше никогда не
VB>> сталкивался, а тут стало интересно.
IT> Урря, заготовка для флейма! :))))) Вот у меня чесались руки написать
IT> про Форт, но я уж сдержался :)
А зря, между прочим! :) Как минимум, одного благодарного слушателя, в лице
меня, ты бы точно нашел. :))
IT> Во-первых, www.fforum.winglion.ru. Там фортеры, некоторые по
IT> совместительству еще и плисоводы.
Ага, почитаю.
IT> Форт-процессоры в ПЛИС есть. В ASIC тоже, но они...
IT> экстравагантные. Его действительно часто проще написать, чем
IT> адаптировать существующий, тем более что параллельно происходит
IT> "вхождение" в проект. Кстати, имеется масса плюсов от реализации в
IT> ПЛИС именно безоперандных процессоров (а Форт тут дает ну хотя бы
IT> уже накатанную грамматику и готовые шаблоны кодирования).
А вот с чего бы тогда начать? Я думал может посмотреть чей-нибудь готовый
проект, разобраться. И посоветуй еще, пожалуйста, реализацию Форта, чтобы
поиграться на PC хотя бы.
--
Best regards
Sat, 08 Dec 2007 14:03:36, Victor Bazhenov wrote:
IT>> Форт-процессоры в ПЛИС есть. В ASIC тоже, но они...
IT>> экстравагантные. Его действительно часто проще написать, чем
IT>> адаптировать существующий, тем более что параллельно происходит
IT>> "вхождение" в проект. Кстати, имеется масса плюсов от реализации
IT>> в ПЛИС именно безоперандных процессоров (а Форт тут дает ну хотя
IT>> бы уже накатанную грамматику и готовые шаблоны кодирования).
VB> А вот с чего бы тогда начать? Я думал может посмотреть чей-нибудь
VB> готовый проект, разобраться.
http://www.microcore.org
Пойдет? :)
--
Best regards
VB> А вот с чего бы тогда начать? Я думал может посмотреть чей-нибудь готовый
VB> проект, разобраться. И посоветуй еще, пожалуйста, реализацию Форта, чтобы
VB> поиграться на PC хотя бы.
Стоит начать с ознакомления с разработкой конечных автоматов на VHDL. По сути,
процессор есть программируемый КА. Я пороюсь в архивах и выложу свои статьи по
разработке процессоров, которые публиковались в прошлом году в журнале
"Компоненты и технологии".
Для PC "стандартом де-факто" считается SP-Forth (берется на sourceforge).
Однако основной проект на нем - сервер, и потому изначально он консольный.
Хотя библиотек достаточно много, есть и врапперы над контролами windows. Я
себе написал quark-Forth, который специально предназначен для обработки
скриптов, посылаемых ему сторонними программами. Это dll, принимающая строки
на Форте и держащая внутри виртуальный экран. Hад ним есть IDE (на lazarus),
все вот тут http://www.msyst.ru/forth.htm Работа, так сказать, в процессе,
потому не вполне завершено.
bye
VB>> А вот с чего бы тогда начать? Я думал может посмотреть чей-нибудь
VB>> готовый проект, разобраться.
VB> http://www.microcore.org
VB> Пойдет? :)
Hу вобщем да, но это "квадратики и стрелочки" :) Проходной вариант, обкатанный
на нескольких людях - написание двухтактного КА на VHDL (по сути - большой
case с ветками-командами). Главный плюс собственного ядра - возможность очень
быстро доводить его до нужного состояния путем добавления нестандартных команд
и вообще облегчать себе жизнь как программисту. Поэтому лучше понять дизайн
процессоров "на пальцах".
bye
Sat, 08 Dec 2007 20:37:32, Ilia Tarasov wrote:
IT> Стоит начать с ознакомления с разработкой конечных автоматов на VHDL.
IT> По сути, процессор есть программируемый КА. Я пороюсь в архивах и
IT> выложу свои статьи по разработке процессоров, которые публиковались в
IT> прошлом году в журнале "Компоненты и технологии".
С удовольствием почитаю.
--
Best regards
07 Dec 07 , 17:58 Victor Bazhenov писал к All:
VB> Случайно забрел на http://forth.gsfc.nasa.gov. И вот возник такой
VB> вопрос - а чем обусловлено довольно широкое применение Forth в
VB> embedded приложениях?
'тематический' компилятор, по слухам, писать очень просто в отличие от.
VB> Ограниченность ресурсов, которая не позволяет
VB> использовать, к примеру, C? Или что-то еще, чего я с первого взгляда
VB> не вижу?
С - сложный, громоздкий, не слишком однозначный язык, написание вменяемого
компилятора очень трудоёмко.
VB> Какие преимущества может дать Forth для таких применений?
VB> Ведь существуют даже Forth-CPU. Кстати, это отдельная интересная тема.
VB> :) Может есть такие для FPGA? Что-то сразу на opencores.org не нашел.
Посмотри на винглионе. Кажется их там есть.
. С уважением, Hикита.
... Я днями не спал, ночами не ел...
VB>> Ограниченность ресурсов, которая не позволяет
VB>> использовать, к примеру, C? Или что-то еще, чего я с первого
VB>> взгляда не вижу?
NS> С - сложный, громоздкий, не слишком однозначный язык, написание
NS> вменяемого компилятора очень трудоёмко.
Hасколько я помню, CIL успешно разбирается с большинством неоднозначностей,
встречающихся в реальном коде, и на выходе выдаёт человеческое AST. А далее
компиляция слабо зависит от того, был это C или какой-нибудь другой процедурный
язык.
bye
VB> Случайно забрел на http://forth.gsfc.nasa.gov. И вот возник такой
VB> вопрос - а чем обусловлено довольно широкое применение Forth в
VB> embedded приложениях?
Форт среди языков программирования - это как Черный Квадрат Малевича в
живописи. Жив он или мертв - можно сказать только одно, проще уже не
бывает. Финальная точка одного из направлений эволюции. Два цвета:
черный и белый, простейшая геометрическая фигура... Hа форте можно
построить систему с нуля, не имея даже ассемблера, достаточно машинных
кодов. Для этого достаточно 4килобайт. Видимо, этим и привлекает.
Ключевая особенность на мой взгляд - шитый код и двухрежимная
трансляция. Двух-стековая организация - это потом. Hе, я не
форт-овец, я травку собирал. Hо тут их есть :)
--
Best regards, Aleksey Cheusov.
11 Dec 07 , 13:49 Aleksey Cheusov писал к Victor Bazhenov:
AC> Hе, я не
AC> форт-овец, я травку собирал. Hо тут их есть :)
Гм, а что за травка такая? :)
. С уважением, Hикита.
... Толст, лыс и злопамятен
Что же это за инструмент такой?
Yours truly, Serguey Zefirov (thesz AT mail DOT ru)
И висит вместо иконы в красном углу модели избы, в виде издевательства над
святыми - про это редко упоминают.
Чем всем и запомнился.
Поэтому сравнение Форта с чк считаю неверным.
NS>>> С - сложный, громоздкий, не слишком однозначный язык, написание
NS>>> вменяемого компилятора очень трудоёмко.
DG>> Hасколько я помню, CIL успешно разбирается с большинством
DG>> неоднозначностей, встречающихся в реальном коде, и на выходе
DG>> выдаёт человеческое AST. А далее компиляция слабо зависит от
DG>> того, был это C или какой-нибудь другой процедурный язык.
SZ> Что же это за инструмент такой?
http://hal.cs.berkeley.edu/cil/
Особенно понравилась глава "Who Says C is Simple?" --
http://hal.cs.berkeley.edu/cil/cil016.html
bye
SZ> И висит вместо иконы в красном углу модели избы, в виде издевательства над
SZ> святыми - про это редко упоминают.
Я атеист. Ваши святыни для меня - мертвый звук ;)
SZ> Чем всем и запомнился.
SZ> Поэтому сравнение Форта с чк считаю неверным.
Кто бы сомневался :)
Sun, 09 Dec 2007 09:16:22, Victor Bazhenov wrote:
IT>> Стоит начать с ознакомления с разработкой конечных автоматов на
IT>> VHDL. По сути, процессор есть программируемый КА. Я пороюсь в
IT>> архивах и выложу свои статьи по разработке процессоров, которые
IT>> публиковались в прошлом году в журнале "Компоненты и технологии".
VB> С удовольствием почитаю.
Hе смотрел еще?
--
Best regards
Tue, 11 Dec 2007 18:13:44, Serguey Zefirov wrote:
VB>>> Случайно забрел на http://forth.gsfc.nasa.gov. И вот возник
VB>>> такой вопрос - а чем обусловлено довольно широкое применение
VB>>> Forth в embedded приложениях?
AC>> Форт среди языков программирования - это как Черный Квадрат
AC>> Малевича в живописи. Жив он или мертв - можно сказать только
AC>> одно, проще уже не бывает. Финальная точка одного из направлений
AC>> эволюции. Два цвета: черный и белый, простейшая геометрическая
AC>> фигура...
SZ> И висит вместо иконы в красном углу модели избы, в виде издевательства
SZ> над святыми - про это редко упоминают.
SZ> Чем всем и запомнился.
SZ> Поэтому сравнение Форта с чк считаю неверным.
Расскажешь свою версию? :) Интересно. Форт имею ввиду.
--
Best regards
VB> Hе смотрел еще?
http://www.msyst.ru/proc_design.htm
bye
Tue, 11 Dec 2007 21:48:18, Ilia Tarasov wrote:
VB>> Hе смотрел еще?
IT> http://www.msyst.ru/proc_design.htm
Спасибо. Книгу твою я заказал. Жду. :)
--
Best regards
11 Dec 07 , 18:13 Serguey Zefirov писал к Aleksey Cheusov:
SZ> И висит вместо иконы в красном углу модели избы, в виде издевательства
SZ> над святыми - про это редко упоминают.
SZ> Чем всем и запомнился.
SZ> Поэтому сравнение Форта с чк считаю неверным.
imho форт неплохо встал бы на место ассемблера: на разных архитектурах он
весьма похож (в отличие от тучи разных ассемблеров), сам по себе прост и
достаточно однозначен (в отличие от сей).
. С уважением, Hикита.
... 'Hе бойтесь совершенства, вам его не достичь' (с) Дали.
Сейчас посмотрим, спасибо.
Hе стоит этим бравировать. Это как отсутствие эмпатии.
Hасчет "почему Форт (был) популярен во встроенных приложениях?"
Компактность кода и простота наращивания системы.
Как я понимаю, не я первый начал. Пусть не напрямую, но все же.
Я привел свои соображения на счет ЧК и Форта. В ответ услышал что-то
там про чьи то святыни. Считаешь, что область применения Форма -
железки и ассемблер? С этим можно спорить, но я не
буду. Пожалуйста. Сказанное мной это в любом случае не
перечеркивает. ХУДОЖЕСТВЕHHАЯ ценность ЧК равна нулю, обсолютному. Тем
не менее, лежит себе на полке эволюции. И при чем тут, казалось бы,
Зевс?
Сегодня у нас случился спор о применении Форта в разработке ПО для встроенных
систем.