Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Fort для PICа ( еще один появился)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Kopa
В новостном канале ( группы обсуждения языка Forth)
попалась еще одна ссылка на Forth (Форт) для PIC контроллера


http://www.kolumbus.fi/oh2aun/

P.S. Forth ( русское название Форт ) язык программирования
применяемый для программирования встраиваемых систем.
dialex
Цитата(Kopa @ Aug 16 2006, 14:41) *
В новостном канале ( группы обсуждения языка Forth)
попалась еще одна ссылка на Forth (Форт) для PIC контроллера


http://www.kolumbus.fi/oh2aun/

P.S. Forth ( русское название Форт ) язык программирования
применяемый для программирования встраиваемых систем.


И чё, на нём пишут?
А то вроде как больше на С.
Kopa
Цитата(dialex @ Aug 17 2006, 08:44) *
И чё, на нём пишут?
А то вроде как больше на С.


Че писать каждый решает самsmile.gif. Си тоже достойный язык.
По сравнению с Си дает больше гибкости при разработке программ.
( например позволяет управлять процессом компиляции программ)
Исторически применяется для embedded систем,
часто в экспериментальных исследованиях.

Можно сказать так: пишут и писать еще долго будут. (Некоторые даже под Windows)
Что-бы понять почему необходимо проникнуться философией
и узнать возможности данного языка.

P.S.
Один из примеров.
В разработках NASA данный язык применяется наряду с аппаратными Форт процессорами.
Действующий стандарт языка 94года.
Для тех кому побольше хочется узнать можно начать с forth.org.ru
upc2
Меня заинтересовала работа финского радиолюбителя.Но пока полностью я не разобрался.
Форт язык для построения экспертных систем (ИИ).Самообучаощиеся системы.Кроме того это и
операционка.Я помню форт-84 составлял 8 Кбайт. Фин умудрился урезать до 2х и засунуть в пик.
Применение форта в робототехнике я еще понимаю, но он применил это в радиолюбительском
дисплее.Это вывод телеграфных сообщений или телетайпных (точки и тире) на экран символами.
Подобные дисплеи можно проще сделать.Без форта.
Kopa
Цитата(upc2 @ Aug 18 2006, 08:00) *
Меня заинтересовала работа финского радиолюбителя.Но пока полностью я не разобрался.
Форт язык для построения экспертных систем (ИИ).Самообучаощиеся системы.Кроме того это и
операционка.Я помню форт-84 составлял 8 Кбайт. Фин умудрился урезать до 2х и засунуть в пик.
Применение форта в робототехнике я еще понимаю, но он применил это в радиолюбительском
дисплее.Это вывод телеграфных сообщений или телетайпных (точки и тире) на экран символами.
Подобные дисплеи можно проще сделать.Без форта.


Форт и его методологию можно, с успехом применить к любой области.
Появление форта на страничках фина связана, по моему мнению,
с желанием уйти от программирования на ассемблере к адекватным средствам и
желанием уменьшения требуемой памяти для программы.( переход к макроязыку)
+ возможность изменеия и отладки программы простыми средствами.
Для Pic и не только существует еще большое количество Форт системм.
Урезать форт можно до требуемого уровня функциональности и вместить например
в 512байтsmile.gif. Под windows компилятор форта может иметь размер порядка 60кб
( например российский spf).
Форт-84 - это стандарт на форт 83г.
Сейчас в основе форт системм используется стандарт 94года.(имеется русский перевод)
Форт первый саморасширяемый язык и построен на других принципах нежели
алголоподобные языкиsmile.gif

P.S. Из своего опыта:
Использовал IDE для программирования контроллеров с сайта tinyboot.com (раздел Firmware)
Недавно появился в I-nete русский форум посвященный данному языку и близких к нему
вопросовsmile.gif
Новичков в форте может испугать необходимость более широкого использования стеков.
и непривычная форма записи программ.
upc2
Ну хорошо.Интересно даже попробовать.С фортом я знаком.Насколько я помню, там как в Бейсике все
программы выполняются в своей среде (В ранних Бейсиках.Это потом стали получаться экзешники).
Так как приступить к программироваю пика.Что вы можете посоветовать?
dialex
А приведите, пожалуйста, пример программы с переводом.
Извините за наглость. smile.gif
Kopa
Цитата(upc2 @ Aug 18 2006, 10:18) *
Ну хорошо.Интересно даже попробовать.С фортом я знаком.Насколько я помню, там как в Бейсике все
программы выполняются в своей среде (В ранних Бейсиках.Это потом стали получаться экзешники).
Так как приступить к программироваю пика.Что вы можете посоветовать?

Для себя в ближайшее время сделаю Форт для PIC-а. Есть некоторые идеиsmile.gif.

Например на страничке http://wiki.forth.org.ru/PicForth приведены еще Форт системы для PIC

А начать можно с вышеприводимой финской ссылки.
Данный способ построения Форта используя ассемблер или Си компилятор,
довольно простой и распространенный.
Первые Форт системы, часто реализовывались в шитом подпрограммном коде.
Сейчас обычно генерируется код целевого процессора.

Все Форт системмы в качестве базового интерфейса имеют режим командной строки.
для контроллеров обычно реализуется какой нибудь отладочный интерфейс( например
используя COM)
Для сохранения работающей программы, после ее загрузки, часто наиболее простое
средство сохраненить состояния системы соответствующим словом и векторизовать
запускаемое слово ( делать можно по разному). Использовать кросс средства или
родные дело вкуса. ( Мне больше нравится использовать кросс и IDE).

P.S. Большое число ссылок на ресурсы Форт (Forth) языка можно найти на forth.org.ru
и FIG группы ( английской, немецкой, американской, голландской и др,
и на авторских страничках)

Со своей стороны могу оказать посильную помощь в освоении Форт методологии
разработки программ.smile.gif
upc2
Спасибо.Покопаюсь сейчас в интернете.
Вчера был на финской ссылке.Никаких пояснений нет.Одни исходники.Более того, шаг влево,шаг
вправо-финский язык.Что-то я его плохо понимаю.
Kopa
Цитата(dialex @ Aug 18 2006, 10:50) *
А приведите, пожалуйста, пример программы с переводом.
Извините за наглость. smile.gif


Самый простейший пример:

: OK ( n -- )
IF ." Привет!" ELSE ." Досвидание" THEN ;
1 OK \ выведет Привет в консоль
0 OK \ выдаст Досвидания в консоль
BYE \ выход из Форт системы

Все. Поясняю ключевое понятие языка Форт - слово!!!! Слова разделяются пробелом.
\ комментарий до конца строки
: начало определения высокоуровневого кода
переключает транслятор в режим компиляции
OK имя высокоуровневой процедуры
( начало незначащего стекового комментария стек_до_операции -- стек_после операции
) завершение стекового комментария
IF оператор условного ветвления берет значение со стека 0-ложь, остальные числа - истинна
При истине выполняются операторы после IF
." Привет " Определение строкового литерала для вывода на экран
ELSE оператор условного ветвления при условии - ложь
( необязательный)
THEN завершение условного оператора
( обязательный)
; завершение высокоуровневого определения
переключает транслятор в режим непосредственного исполнения.
1 Положили на стек число 1
ОК вызвали определенную через двоеточие процедуру

BYE Выход из Форт системы.

P.S. Надеюсь пример понятенsmile.gif
При определении процедуры можно использовать и именные локальные переменные
если возникают сложности при работе со стеком.



Цитата(upc2 @ Aug 18 2006, 11:34) *
Спасибо.Покопаюсь сейчас в интернете.
Вчера был на финской ссылке.Никаких пояснений нет.Одни исходники.Более того, шаг влево,шаг
вправо-финский язык.Что-то я его плохо понимаю.

На данной страничке я взял только исходники данного Форта, а ассемблер
довольно понятный язык в нихsmile.gif
Форум по языку Форт http://fforum.winglion.ru/ ( окажут посильную помощь)
dmivs
Цитата(Kopa @ Aug 18 2006, 11:17) *
Для себя в ближайшее время сделаю Форт для PIC-а. Есть некоторые идеиsmile.gif.


Во-во. Это и есть ключевая фраза к вопросу "почему трупик Форта никак не оставят в покое"...
Мало почему-то желающик, к примеру, опимизирующий компилятор С, для Пика написать :D

P.S. При критике моих слов прошу учесть 1.5 года опыт программирования на Форте, включая IP-стек.
P.P.S Для желающих осваивать этот, не спорю, интересный язык, советую для начала почитать историю создания языка. И затем сравнить себя с его создателем, а свои проекты с его задачами.
Kopa
Цитата(dmivs @ Aug 18 2006, 13:45) *
Цитата(Kopa @ Aug 18 2006, 11:17) *

Для себя в ближайшее время сделаю Форт для PIC-а. Есть некоторые идеиsmile.gif.


Во-во. Это и есть ключевая фраза к вопросу "почему трупик Форта никак не оставят в покое"...
Мало почему-то желающик, к примеру, опимизирующий компилятор С, для Пика написать :D

P.S. При критике моих слов прошу учесть 1.5 года опыт программирования на Форте, включая IP-стек.
P.P.S Для желающих осваивать этот, не спорю, интересный язык, советую для начала почитать историю создания языка. И затем сравнить себя с его создателем, а свои проекты с его задачами.

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

Интересует мнение из практического использования( особенно для новичков)
и где можно посмотреть сделанные на результаты использования Вами Форта?
"Трупик Форта" точно еще никто не видел( хотя он ровесник Си).
А если язык чем то не устраивает, то в нем достаточно базовых механизмов для
устранения этого.(было бы желание).
Сито на Форт пригодность проходит далеко не каждый желающийsmile.gif


P.S. Не совсем понял контекст цитирования ключевой фразы.
А то, что есть возможность сделать лучше ( что плохого?)
Можно согласится, что Форт вызывает смешанные чувства.
Для прикладного программиста, при достаточном опыте использования Си++
идеи форта могут быть плохо понимаемы.
Вот эту книгу полезно прочитать любому программисту( не только Форт)
http://www.forth.org.ru/~cactus/files/brodie.rar
wim
Цитата(Kopa @ Aug 16 2006, 13:41) *
В новостном канале ( группы обсуждения языка Forth)
попалась еще одна ссылка на Forth (Форт) для PIC контроллера


http://www.kolumbus.fi/oh2aun/

P.S. Forth ( русское название Форт ) язык программирования
применяемый для программирования встраиваемых систем.

Не могли бы Вы пояснить, как компилируется программа PicForth? Я когда-то писал программы на Форте для PC, там было два целевых ассемблера - для 8086 и 8080. В зависимости от процессора, подгружался тот или другой. А здесь как?
Kopa
Цитата(wim @ Aug 28 2006, 10:21) *
Цитата(Kopa @ Aug 16 2006, 13:41) *

Не могли бы Вы пояснить, как компилируется программа PicForth? Я когда-то писал программы на Форте для PC, там было два целевых ассемблера - для 8086 и 8080. В зависимости от процессора, подгружался тот или другой. А здесь как?

Для данного Форта для Pica, скорее всего, загружается по последовательному каналу.
как расширение ядра и подменяется процедура старта программы. ( т.к. для генерации
форт системы выбран ассемблер). Но можно странслировать Форт программу в ассемблерные
инструкции ( примерно, как введены в ядре данного Форта высокоуровневые слова)
и скомпилировать вместе с ядром системы.

Существуют разные варианты получения выполняемого кода из Форт языка для контроллеров:
( более предпочтительны варианты кросс трансляции)

Например в одной Форт системе используется для генерации кодов целевого ассемблера
язык Ейфория, после чего используется ассемблер соответствующего процессора.

Бывают реализации Форт виртуальных машин, когда для исполнения байт-кода
пишется небольшой исполнитель, а код Форт программы транслируется в байт-код
виртуальной машины.
...

Или существуют IDE форт системы, где для генерации кода для требуемого процессора
достаточно вставить поддержку его( если его нет в системе). Данный вариант мне
нравится больше всего.

P.S. В форт системах обычно реализуют слова для генерации исполняемых файлов или
в крайнем случае имеются слово сохранения текущего состояния Форт системы после
ее расширения, а при необходимости автономного приложения стартовая процедура
инициализируется необходимым словом.
dialex
Цитата(Kopa @ Aug 28 2006, 15:57) *
Цитата(wim @ Aug 28 2006, 10:21) *

Цитата(Kopa @ Aug 16 2006, 13:41) *

Не могли бы Вы пояснить, как компилируется программа PicForth? Я когда-то писал программы на Форте для PC, там было два целевых ассемблера - для 8086 и 8080. В зависимости от процессора, подгружался тот или другой. А здесь как?

Для данного Форта для Pica, скорее всего, загружается по последовательному каналу.
как расширение ядра и подменяется процедура старта программы. ( т.к. для генерации
форт системы выбран ассемблер). Но можно странслировать Форт программу в ассемблерные
инструкции ( примерно, как введены в ядре данного Форта высокоуровневые слова)
и скомпилировать вместе с ядром системы.

Существуют разные варианты получения выполняемого кода из Форт языка для контроллеров:
( более предпочтительны варианты кросс трансляции)

Например в одной Форт системе используется для генерации кодов целевого ассемблера
язык Ейфория, после чего используется ассемблер соответствующего процессора.

Бывают реализации Форт виртуальных машин, когда для исполнения байт-кода
пишется небольшой исполнитель, а код Форт программы транслируется в байт-код
виртуальной машины.
...

Или существуют IDE форт системы, где для генерации кода для требуемого процессора
достаточно вставить поддержку его( если его нет в системе). Данный вариант мне
нравится больше всего.

P.S. В форт системах обычно реализуют слова для генерации исполняемых файлов или
в крайнем случае имеются слово сохранения текущего состояния Форт системы после
ее расширения, а при необходимости автономного приложения стартовая процедура
инициализируется необходимым словом.


а как со скоростью выполнения?
Kopa
Цитата(dialex @ Aug 28 2006, 14:25) *
...
а как со скоростью выполнения?

Скорость зависит от оптимизирующих возможностей компилятора.
К сожалению, использовать комерческие Форт системы нет возможности,
поэтому и скорость будет проигрывать Си программамsmile.gif в большинстве Форт систем.
Но по компактности явно будет выигрыш.
Хотя на PC тесты Форт программ дают неплохие результаты, а на рекурсивных
функциях даже быстрее чем Сиsmile.gif

P.S. Форт, часто используют не смотря на его скоростные качества.
Kopa
New:
Обновился указанный форт в ссылке топика
Появилась поддержка PIC18-х
Alich
Цитата(Kopa @ Nov 9 2006, 04:31) *
New:
Обновился указанный форт в ссылке топика
Появилась поддержка PIC18-х


Вот интересно что. Ни один из моих знакомых не пишет на форде. А так... можно и свой язык придумать. Только оно надо? Ни библиотек - ни поделиться ни с кем, ни процедуры заказать.
Kopa
Цитата(erty @ Dec 16 2006, 14:47) *
Вот интересно что. Ни один из моих знакомых не пишет на форде.


Встречный вопрос: А сколько Ваших знакомых знают о существовании Форт (Forth) языка ?
По моей статистике данный язык почти неизвестен среди российских разработчиков.

Цитата(erty @ Dec 16 2006, 14:47) *
А так... можно и свой язык придумать. Только оно надо?


Придумать еще один язык не проблема в рамках Форт системы.smile.gif
Форт язык имеет ANSI стандарт 94г. и достаточно представлен в разработках.
Раз есть активные пользователи данного языка, то заданный вопрос - риторический.

Цитата(erty @ Dec 16 2006, 14:47) *
Ни библиотек - ни поделиться ни с кем, ни процедуры заказать.


Это Вы зря. Форт сообщества довольно активны.
Есть действующие форумы и русскоязычные тоже.
Если хотите, что бы для Вас делали готовые процедуры, то покупайте комерческие
Форт системы и требуйте удовлетворения Ваших потребностейsmile.gif
Но и без этого много создано и доступно в рамках Форт систем.

P.S. Изучите подход к программированию предлагаемый Фортом и тогда возможно
многое прояснитсяsmile.gif
wim
Цитата(erty @ Dec 16 2006, 14:47) *
Цитата(Kopa @ Nov 9 2006, 04:31) *

New:
Обновился указанный форт в ссылке топика
Появилась поддержка PIC18-х


Вот интересно что. Ни один из моих знакомых не пишет на форде. А так... можно и свой язык придумать. Только оно надо? Ни библиотек - ни поделиться ни с кем, ни процедуры заказать.


Программист на Форте фактически создаёт свою собственную систему программирования, а это требует более глубокого изучения предмета, чем обычная задача, типа управления "набором лампочек-кнопочек". У буржуинов поступают проще - там покупают контроллер с уже записанным в него ядром Форт-системы и дописывают туда свою программу.
Kopa
Цитата(wim @ Dec 18 2006, 13:46) *
Программист на Форте фактически создаёт свою собственную систему программирования, а это требует более глубокого изучения предмета, чем обычная задача, типа управления "набором лампочек-кнопочек".


Можно сказать расширяет язык под тематику конкретной области приложенияsmile.gif

Цитата(wim @ Dec 18 2006, 13:46) *
У буржуинов поступают проще - там покупают контроллер с уже записанным в него ядром Форт-системы и дописывают туда свою программу.


У нас тоже есть такой подход.
Например фирма kaskod в некоторые свои контроллеры вставляет распределенную форт системуsmile.gif
Форт достаточно прост и гибок для освоения и применения вне больших программистких команд.
Kopa
Новый адрес размещения данного проекта

http://sourceforge.net/projects/flashforth

P.S. Просьба к модераторам: подправить ссылки в топике.
Kopa
И что, никого так и не заинтересовал Форт язык и его возможности?

Встречаются и у нас учебые материалы по использованию Форта в институтских программах

Применение PIC-контроллеров в измерительной технике
Код
Г.Р.Алпатов
Учебно-методическое пособие
«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ
Ростов-на-Дону 2008
.

При иллюстрации использования контроллера на высокоуровневом программиировании выбран
F2P (Forth to PIC compiler) (хотя это и не совсем Форт)

P.S. А для сумневающихся в распространённости открытых Форт систем
Подборка некомерческих Форт систем для контроллеров
на сайте рускоязычных пользователей Форт.
Проблем с использованием Форта в разных контроллерах не должно появится.
Автор Flash Forth спроектировал также свой вариант Форта для Atmega
polyname
Цитата
Вот интересно что. Ни один из моих знакомых не пишет на форде. А так... можно и свой язык придумать. Только оно надо? Ни библиотек - ни поделиться ни с кем, ни процедуры заказать.
вам может и не надо. А вот например встроить возможность написания управляющих скриптов пользователем - иногда весьма полезно.
Kopa
Цитата(polyname @ Sep 20 2012, 19:56) *
вам может и не надо. А вот например встроить возможность написания управляющих скриптов пользователем - иногда весьма полезно.

И встраивают жеsm.gif
Даже далеко (за бугор) за примерами "ходить" не надо
Навскидку MAX Logic со встроеным Форт направления скрипт языком.

P.S. При встаивании Форт скрипт языка для пользователя желательно сразу определится в степени защищённости Форт системы от "неграмотных" действий
с его стороны (что то обсуждалось на fforume) т.к. в Форт системах специально не встраиваются механизмы внутренней защиты от "разрушения" при ошибках
использования.
-=V=-
Насколько помню, за внедрение форта в микроконтроллеры активно агитировал Алексей Кузнецов (AK), более 10 лет назад. В массах поддержки не нашла. Народ предпочел С, как золотую середину.
Kopa
Цитата(-=V=- @ Sep 23 2012, 23:27) *
Насколько помню, за внедрение форта в микроконтроллеры активно агитировал Алексей Кузнецов (AK), более 10 лет назад. В массах поддержки не нашла. Народ предпочел С, как золотую середину.

А жаль, реальное использование Форта в инструментарии по работе у меня произошло тоже примерно 10лет назад (программа была на
асме с использованием Форт поддержки. (неплохо так всё работало), но уже на другой работе пришлось использовать Си, но и там
Форт у меня оставался эспериментальной площадкой для исследования и решением "последней мили":)

P.S. Использование массово Форт обрушит всю IT индустриюsm.gif, а оно это кому то надо? (может и слишком смело)
Я не идеалист и сейчас агитировать проще, имея достаточно интересной информации, но тоже скорее всего с небольшим полезным "выхлопом"
Можно посмотреть мои топики на местном форуме и других ресурсах в i-nete для формирования своего мнения.sm.gif
"Повредится" или нет мозг от этого не знаю, но на какие то вещи смотреть станет проще.
ar__systems
Цитата(Kopa @ Sep 23 2012, 15:45) *
А жаль, реальное использование Форта в инструментарии по работе у меня произошло тоже примерно 10лет назад (программа была на
асме с использованием Форт поддержки. (неплохо так всё работало), но уже на другой работе пришлось использовать Си,

Программу на форте можно написать, но прочитать невозможно. (я не говорю про пару строк). Поддержка таких программ спустя год это дело нездоровое. Его называют write-only language, you know.
Kopa
Цитата(ar__systems @ Oct 17 2012, 18:39) *
Программу на форте можно написать, но прочитать невозможно. (я не говорю про пару строк). Поддержка таких программ спустя год это дело нездоровое. Его называют write-only language, you know.

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

P.S. Создание программ на Форте может казаться "магией", но не нужно забывать, что "кажущаяся" необычность Форт или другого
малоизвестного инструментального языка - это лишь первый и достаточно быстро преодаливаемый барьер. (вся программерская работа происходит в "голове" наиболее эффективном средстве к комбинаторной деятельности + простой единообразный синтаксис и мощная внутренняя семантическая модель языкового средства с быстрым получением результата - это всё мощные стимулы для активизации работы мозга)
Посмотрите ещё на новые конкатенавные языки и в частности Factorsm.gif, You agree with it
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.