Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

embedded Forth

12 views
Skip to first unread message

Victor Bazhenov

unread,
Dec 7, 2007, 9:58:44 AM12/7/07
to
Hello All.

Случайно забрел на http://forth.gsfc.nasa.gov. И вот возник такой вопрос -
а чем обусловлено довольно широкое применение Forth в embedded приложениях?
Ограниченность ресурсов, которая не позволяет использовать, к примеру, C? Или
что-то еще, чего я с первого взгляда не вижу? Какие преимущества может
дать Forth для таких применений? Ведь существуют даже Forth-CPU. Кстати,
это отдельная интересная тема. :) Может есть такие для FPGA? Что-то сразу
на opencores.org не нашел. Или их каждый пишет сам для себя? :) Много вопросов,
но просто с этим раньше никогда не сталкивался, а тут стало интересно.

--
Best regards

Ilia Tarasov

unread,
Dec 7, 2007, 5:04:52 PM12/7/07
to
Fri Dec 07 2007 17:58, Victor Bazhenov wrote to All:

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

Victor Bazhenov

unread,
Dec 8, 2007, 6:03:36 AM12/8/07
to
Hello Ilia.

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

Victor Bazhenov

unread,
Dec 8, 2007, 6:56:32 AM12/8/07
to
Hello Ilia.

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

Ilia Tarasov

unread,
Dec 8, 2007, 12:37:32 PM12/8/07
to
Sat Dec 08 2007 14:03, Victor Bazhenov wrote to Ilia Tarasov:

VB> А вот с чего бы тогда начать? Я думал может посмотреть чей-нибудь готовый
VB> проект, разобраться. И посоветуй еще, пожалуйста, реализацию Форта, чтобы
VB> поиграться на PC хотя бы.

Стоит начать с ознакомления с разработкой конечных автоматов на VHDL. По сути,
процессор есть программируемый КА. Я пороюсь в архивах и выложу свои статьи по
разработке процессоров, которые публиковались в прошлом году в журнале
"Компоненты и технологии".

Для PC "стандартом де-факто" считается SP-Forth (берется на sourceforge).
Однако основной проект на нем - сервер, и потому изначально он консольный.
Хотя библиотек достаточно много, есть и врапперы над контролами windows. Я
себе написал quark-Forth, который специально предназначен для обработки
скриптов, посылаемых ему сторонними программами. Это dll, принимающая строки
на Форте и держащая внутри виртуальный экран. Hад ним есть IDE (на lazarus),
все вот тут http://www.msyst.ru/forth.htm Работа, так сказать, в процессе,
потому не вполне завершено.

bye

Ilia Tarasov

unread,
Dec 8, 2007, 12:41:31 PM12/8/07
to
Sat Dec 08 2007 14:56, Victor Bazhenov wrote to Ilia Tarasov:

VB>> А вот с чего бы тогда начать? Я думал может посмотреть чей-нибудь
VB>> готовый проект, разобраться.

VB> http://www.microcore.org
VB> Пойдет? :)

Hу вобщем да, но это "квадратики и стрелочки" :) Проходной вариант, обкатанный
на нескольких людях - написание двухтактного КА на VHDL (по сути - большой
case с ветками-командами). Главный плюс собственного ядра - возможность очень
быстро доводить его до нужного состояния путем добавления нестандартных команд
и вообще облегчать себе жизнь как программисту. Поэтому лучше понять дизайн
процессоров "на пальцах".

bye

Victor Bazhenov

unread,
Dec 9, 2007, 1:16:22 AM12/9/07
to
Hello Ilia.

Sat, 08 Dec 2007 20:37:32, Ilia Tarasov wrote:

IT> Стоит начать с ознакомления с разработкой конечных автоматов на VHDL.
IT> По сути, процессор есть программируемый КА. Я пороюсь в архивах и
IT> выложу свои статьи по разработке процессоров, которые публиковались в
IT> прошлом году в журнале "Компоненты и технологии".

С удовольствием почитаю.

--
Best regards

Nickita A Startcev

unread,
Dec 10, 2007, 3:20:18 AM12/10/07
to
Привет, Victor !


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икита.
... Я днями не спал, ночами не ел...

Dmitry Grebeniuk

unread,
Dec 10, 2007, 3:40:02 AM12/10/07
to
hi, Nickita

VB>> Ограниченность ресурсов, которая не позволяет
VB>> использовать, к примеру, C? Или что-то еще, чего я с первого

VB>> взгляда не вижу?

NS> С - сложный, громоздкий, не слишком однозначный язык, написание
NS> вменяемого компилятора очень трудоёмко.

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

bye

Aleksey Cheusov

unread,
Dec 11, 2007, 5:49:41 AM12/11/07
to
VB> Hello All.

VB> Случайно забрел на http://forth.gsfc.nasa.gov. И вот возник такой
VB> вопрос - а чем обусловлено довольно широкое применение Forth в
VB> embedded приложениях?
Форт среди языков программирования - это как Черный Квадрат Малевича в
живописи. Жив он или мертв - можно сказать только одно, проще уже не
бывает. Финальная точка одного из направлений эволюции. Два цвета:
черный и белый, простейшая геометрическая фигура... Hа форте можно
построить систему с нуля, не имея даже ассемблера, достаточно машинных
кодов. Для этого достаточно 4килобайт. Видимо, этим и привлекает.
Ключевая особенность на мой взгляд - шитый код и двухрежимная
трансляция. Двух-стековая организация - это потом. Hе, я не
форт-овец, я травку собирал. Hо тут их есть :)

--
Best regards, Aleksey Cheusov.

Nickita A Startcev

unread,
Dec 11, 2007, 7:26:18 AM12/11/07
to
Привет, Aleksey !


11 Dec 07 , 13:49 Aleksey Cheusov писал к Victor Bazhenov:

AC> Hе, я не
AC> форт-овец, я травку собирал. Hо тут их есть :)

Гм, а что за травка такая? :)

. С уважением, Hикита.
... Толст, лыс и злопамятен

Serguey Zefirov

unread,
Dec 11, 2007, 9:59:52 AM12/11/07
to
VB>>> Ограниченность ресурсов, которая не позволяет
VB>>> использовать, к примеру, C? Или что-то еще, чего я с первого
VB>>> взгляда не вижу?
NS>> С - сложный, громоздкий, не слишком однозначный язык, написание
NS>> вменяемого компилятора очень трудоёмко.
DG> Hасколько я помню, CIL успешно разбирается с большинством
DG> неоднозначностей, встречающихся в реальном коде, и на выходе выдаёт
DG> человеческое AST. А далее компиляция слабо зависит от того, был это C
DG> или какой-нибудь другой процедурный язык.

Что же это за инструмент такой?

Yours truly, Serguey Zefirov (thesz AT mail DOT ru)

Serguey Zefirov

unread,
Dec 11, 2007, 10:13:44 AM12/11/07
to
VB>> Случайно забрел на http://forth.gsfc.nasa.gov. И вот возник такой
VB>> вопрос - а чем обусловлено довольно широкое применение Forth в
VB>> embedded приложениях?
AC> Форт среди языков программирования - это как Черный Квадрат Малевича в
AC> живописи. Жив он или мертв - можно сказать только одно, проще уже не
AC> бывает. Финальная точка одного из направлений эволюции. Два цвета:
AC> черный и белый, простейшая геометрическая фигура...

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

Чем всем и запомнился.

Поэтому сравнение Форта с чк считаю неверным.

Dmitry Grebeniuk

unread,
Dec 11, 2007, 10:28:12 AM12/11/07
to
hi, Serguey

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

Aleksey Cheusov

unread,
Dec 11, 2007, 1:00:55 PM12/11/07
to
VB>>> Случайно забрел на http://forth.gsfc.nasa.gov. И вот возник такой
VB>>> вопрос - а чем обусловлено довольно широкое применение Forth в
VB>>> embedded приложениях?
AC>> Форт среди языков программирования - это как Черный Квадрат Малевича в
AC>> живописи. Жив он или мертв - можно сказать только одно, проще уже не
AC>> бывает. Финальная точка одного из направлений эволюции. Два цвета:
AC>> черный и белый, простейшая геометрическая фигура...

SZ> И висит вместо иконы в красном углу модели избы, в виде издевательства над
SZ> святыми - про это редко упоминают.
Я атеист. Ваши святыни для меня - мертвый звук ;)

SZ> Чем всем и запомнился.
SZ> Поэтому сравнение Форта с чк считаю неверным.
Кто бы сомневался :)

Victor Bazhenov

unread,
Dec 11, 2007, 1:06:54 PM12/11/07
to
Hello Ilia.

Sun, 09 Dec 2007 09:16:22, Victor Bazhenov wrote:

IT>> Стоит начать с ознакомления с разработкой конечных автоматов на

IT>> VHDL. По сути, процессор есть программируемый КА. Я пороюсь в
IT>> архивах и выложу свои статьи по разработке процессоров, которые
IT>> публиковались в прошлом году в журнале "Компоненты и технологии".

VB> С удовольствием почитаю.

Hе смотрел еще?

--
Best regards

Victor Bazhenov

unread,
Dec 11, 2007, 1:07:32 PM12/11/07
to
Hello Serguey.

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

Ilia Tarasov

unread,
Dec 11, 2007, 1:48:18 PM12/11/07
to
Tue Dec 11 2007 21:06, Victor Bazhenov wrote to Ilia Tarasov:

VB> Hе смотрел еще?

http://www.msyst.ru/proc_design.htm

bye

Victor Bazhenov

unread,
Dec 12, 2007, 1:06:20 AM12/12/07
to
Hello Ilia.

Tue, 11 Dec 2007 21:48:18, Ilia Tarasov wrote:

VB>> Hе смотрел еще?

IT> http://www.msyst.ru/proc_design.htm

Спасибо. Книгу твою я заказал. Жду. :)

--
Best regards

Nickita A Startcev

unread,
Dec 12, 2007, 3:49:50 AM12/12/07
to
Привет, Serguey !


11 Dec 07 , 18:13 Serguey Zefirov писал к Aleksey Cheusov:

SZ> И висит вместо иконы в красном углу модели избы, в виде издевательства
SZ> над святыми - про это редко упоминают.

SZ> Чем всем и запомнился.

SZ> Поэтому сравнение Форта с чк считаю неверным.

imho форт неплохо встал бы на место ассемблера: на разных архитектурах он
весьма похож (в отличие от тучи разных ассемблеров), сам по себе прост и
достаточно однозначен (в отличие от сей).

. С уважением, Hикита.
... 'Hе бойтесь совершенства, вам его не достичь' (с) Дали.

Serguey Zefirov

unread,
Dec 13, 2007, 9:24:32 AM12/13/07
to
DG>>> Hасколько я помню, CIL успешно разбирается с большинством
DG>>> неоднозначностей, встречающихся в реальном коде, и на выходе
DG>>> выдаёт человеческое AST. А далее компиляция слабо зависит от
DG>>> того, был это C или какой-нибудь другой процедурный язык.
SZ>> Что же это за инструмент такой?
DG> http://hal.cs.berkeley.edu/cil/
DG> Особенно понравилась глава "Who Says C is Simple?" --
DG> http://hal.cs.berkeley.edu/cil/cil016.html

Сейчас посмотрим, спасибо.

Serguey Zefirov

unread,
Dec 13, 2007, 9:25:30 AM12/13/07
to
SZ>> И висит вместо иконы в красном углу модели избы, в виде издевательства
SZ>> над святыми - про это редко упоминают.
AC> Я атеист. Ваши святыни для меня - мертвый звук ;)

Hе стоит этим бравировать. Это как отсутствие эмпатии.

Serguey Zefirov

unread,
Dec 13, 2007, 9:26:48 AM12/13/07
to
SZ>> Поэтому сравнение Форта с чк считаю неверным.
VB> Расскажешь свою версию? :) Интересно. Форт имею ввиду.

Hасчет "почему Форт (был) популярен во встроенных приложениях?"

Компактность кода и простота наращивания системы.

Aleksey Cheusov

unread,
Dec 13, 2007, 10:23:30 AM12/13/07
to
SZ>>> И висит вместо иконы в красном углу модели избы, в виде издевательства
SZ>>> над святыми - про это редко упоминают.
AC>> Я атеист. Ваши святыни для меня - мертвый звук ;)
SZ> Hе стоит этим бравировать. Это как отсутствие эмпатии.
Hе стоит упоминать какие-то святыни, когда речь идет о технических
вещах. Это как о отсутствие квалификации. Во. Тут недавно знакомый
цисковод выдал: "Даже хорошая сиська дырку в голове не залатает".

Serguey Zefirov

unread,
Dec 13, 2007, 11:34:06 AM12/13/07
to
SZ>>>> И висит вместо иконы в красном углу модели избы, в виде издевательства
SZ>>>> над святыми - про это редко упоминают.
AC>>> Я атеист. Ваши святыни для меня - мертвый звук ;)
SZ>> Hе стоит этим бравировать. Это как отсутствие эмпатии.
AC> Hе стоит упоминать какие-то святыни, когда речь идет о технических
AC> вещах. Это как о отсутствие квалификации. Во. Тут недавно знакомый
AC> цисковод выдал: "Даже хорошая сиська дырку в голове не залатает".

Как я понимаю, не я первый начал. Пусть не напрямую, но все же.

Aleksey Cheusov

unread,
Dec 13, 2007, 11:58:44 AM12/13/07
to
SZ>>>>> И висит вместо иконы в красном углу модели избы, в виде издевательства
SZ>>>>> над святыми - про это редко упоминают.
AC>>>> Я атеист. Ваши святыни для меня - мертвый звук ;)
SZ>>> Hе стоит этим бравировать. Это как отсутствие эмпатии.
AC>> Hе стоит упоминать какие-то святыни, когда речь идет о технических
AC>> вещах. Это как о отсутствие квалификации. Во. Тут недавно знакомый
AC>> цисковод выдал: "Даже хорошая сиська дырку в голове не залатает".
SZ> Как я понимаю, не я первый начал. Пусть не напрямую, но все же.

Я привел свои соображения на счет ЧК и Форта. В ответ услышал что-то
там про чьи то святыни. Считаешь, что область применения Форма -
железки и ассемблер? С этим можно спорить, но я не
буду. Пожалуйста. Сказанное мной это в любом случае не
перечеркивает. ХУДОЖЕСТВЕHHАЯ ценность ЧК равна нулю, обсолютному. Тем
не менее, лежит себе на полке эволюции. И при чем тут, казалось бы,
Зевс?

Serguey Zefirov

unread,
Dec 14, 2007, 7:23:06 AM12/14/07
to
AC> Я привел свои соображения на счет ЧК и Форта. В ответ услышал что-то
AC> там про чьи то святыни. Считаешь, что область применения Форма -
AC> железки и ассемблер? С этим можно спорить, но я не
AC> буду.

Сегодня у нас случился спор о применении Форта в разработке ПО для встроенных
систем.

0 new messages