Jump to content
    

Форт (Forth) и MSP430 для изучения

Да ведь развлекаться будут...

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

 

- Почему? Это вроде можно на любом языке. Стековая архитектура может позволит сделать просто более оптимальную трассировку?

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

с "мизирной" поддержкой Форт системы. Phyton, Lua, Tcl тоже достаточно громоздкие.

 

Форт, к моему сожалению, не знаю. Нужно время, пойду разбираться

Начните с имеющихся, хотя и отчасти и устаревших учебников.

 

Буду признательна. Соблазнилась и купила Launchpad в прошлом году именно из-за архитектуры PDP-11. Похожая, кстати, архитектура у первых мотороловских микропроцессоров 68000 и т.д.

Дешевизна Launchpad-а, разумеется, важный фактор.

Попробую подобрать или скомпоновать возможный вариант введения в Форт и в применениии его к контроллерам.

 

P.S. стартовая ссылка для "погружения" в Форт методологию, вроде была уже озвучена fforum.winglion.ru

Некторые ссылки на материалы могут уже не существовать, но из web или в личных архивах фортёров можно, наверное, найти этот материал.

Edited by Kopa

Share this post


Link to post
Share on other sites

- Почему? Это вроде можно на любом языке. Стековая архитектура может позволит сделать просто более оптимальную трассировку?

Компиляция идет внутри. Можно быстро пробовать.

Share this post


Link to post
Share on other sites

Немного ссылок на презентации Форта.

 

Включены слайд курс лекций по тематике Forth

The Structure of Programming Languages

Fall 2012

 

The Forth Language (простая)

 

Forth Pesentation

Edited by Kopa

Share this post


Link to post
Share on other sites

Студент ввел строку программы и тут же запустил и увидел результат.
и к этому элементарно добавляются удаленный доступ, например запускается простейший локальный сервер (фактически ретранслятор в COM порт) и прямо из броузера можно производить любые настройки параметров, дописывать свои алгоритмы и т.д. Программы на IEC 61131 элементарно транслируются в Форт.
Edited by polyname

Share this post


Link to post
Share on other sites

и к этому элементарно добавляются удаленный доступ, например запускается простейший локальный сервер (фактически ретранслятор в COM порт) и прямо из броузера можно производить любые настройки параметров, дописывать свои алгоритмы и т.д. Программы из IEC 61131 элементарно транслируются на Форт.

 

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

достаточных возможностей к саморасширению.

 

P.S. На средствах Web браузера, Форт "консоли", тоже запускают. "Некоторым" студентам Форт не чужд и интересен. Форт направление - всё ещё поле "невспаханных" возможностей:)

В применении к контроллерам, мой вариант был запуск эмулятора процессора с интерфейсом на СOM порту (внешними модельками дополнялся код симулятора), а второй

СОМ порт был IDE среды и оба COM порта виртуально соединялись для "черновой" отладки без неоходимости использования железа. При выявленных расхождениях

с железом, тут же правилась и исправлялась модель процессора или периферии:) и IDE и эмулятор процессора спроектированы на Форт языке, но разных "диалектах"

 

Программы на IEC 61131 элементарно транслируются в Форт

Встречал некоторый варианты расширения, когда релейная схема в текстовой псевдографики, воспринималась расширением Форт системой, как входная программа для

трансляции. Такого плана экспериментальные небольшие разработки часто встречаются.

Edited by Kopa

Share this post


Link to post
Share on other sites

Встречал некоторый варианты расширения, когда релейная схема в текстовой псевдографики, воспринималась расширением Форт системой, как входная программа для

трансляции. Такого плана экспериментальные небольшие разработки часто встречаются.

А ссылку не можете привести?

Тоже была такая мысль, но самому колхозить некогда

Share this post


Link to post
Share on other sites

А ссылку не можете привести?

Тоже была такая мысль, но самому колхозить некогда

Попробую найти или подумать в этом направлении, (возможно встречал, в сообщениях форума comp.lang.forth на слово Ladder),

а пока приведу обсуждавшуюся тему: СЛОВАРИ ФОРТА В РЕАЛИЗАЦИИ КОНЕЧНОГО АВТОМАТА

от прочтения которой, возможно, стоит "оттолкнуться" и посмотреть следующий блог

Конечные автоматы и таблицы решений на SPF

 

P.S. Возможно, что то было близко к этому, Plc ladder logic compiler idea

со страницы обсуждения

 { DEMO LADDER LOGIC

ORIGINAL LADDER LOGIC DIAGRAM 

|   X000     X001
|----| |------| |---| 
|                   | 
|   X004     X005   | X002
|----| |------| |---|--|/|---|
|                            |
|   X006     X007            |
|----| |------| |------------|
|                            |
|   Y000                     |  X003                      Y000
|----| |---------------------|---|/|-----------------------(
|
}
\ FORTH CODE BELOW

variable inputs
variable outputs
: -; IMMEDIATE                  \ dummy spacing, compiles nothing
: |<     ( bitnum -- bitmask )   1 SWAP SHL;
: -||-   ( flag adr -- flag )    |< inputs AND 0<> AND;
: -|/|-  ( flag adr -- flag )    |< inputs AND 0= AND;
: -(     ( flag adr -- )         SWAP IF outputs SET ELSE outputs RES THEN;
: -()-   ( flag adr -- flag )    32 + -||-;
: READ                           INA@ inputs !;
: WRITE                          outputs @ OUTA!;
ALIAS FALSE |
ALIAS TRUE |-
ALIAS : LADDER
ALIAS; END
ALIAS OR -|



\ DEMO LADDER PROGRAM
LADDER DEMO
READ
|
|- 00 -||- 01 -||- -|
|- 04 -||- 05 -||- -| 02 -[/]- -|
|- 06 -||- 07 -||- - - - - - - -|
|- 00 -()- - - - - - - - - - - -| 03 -|/|- 00 -(
WRITE
END

 

Отдельная реализация на С

Ladder Logic для PIC и AVR

Edited by Kopa

Share this post


Link to post
Share on other sites

Немного ссылок на презентации Форта.

 

Спасибо. Ещё найти бы хорошую старую книжку

 

С релейной логикой красивый пример :-)

 

 

Share this post


Link to post
Share on other sites

Спасибо. Ещё найти бы хорошую старую книжку

Ищите Лео Броуди (Leo Browdie)

 

Его "Thinking Forth" - отличная книга не только по теме, но и по вопросам алгоритмизации вообще.

Share this post


Link to post
Share on other sites

Спасибо. Ещё найти бы хорошую старую книжку

 

С релейной логикой красивый пример :-)

А зачем сложно искать?

Книги

из раздела Литература

 

Прочтение можно начать

с Начального курса программирования (Броуди) рус, Starting Forth (еngl)

Язык Форт и его реализации (Баранов,Ноздрунов)

Способ мышления - Форт (Броуди) рус, Thinking Forth (engl)

дальше по интересу.

...

и стандартов на язык

ANSI 94

Forth 83 (в изданных книгах 90-х годов)

 

и брать "любую" подходящую Форт систему и "изучать" устройство, примеры, возможности созданные в ней :)

( например SPF4, Win32Forth и другие по мере "погружения" в Форт Мир)

Завести себе блокнотик (словарик) для запоминания стандартных слов по группам.

Edited by Kopa

Share this post


Link to post
Share on other sites

А зачем сложно искать?

Книги

...

Завести себе блокнотик (словарик) для запоминания стандартных слов по группам.

 

Ups, на bookFI.org нашлась брошюра общества "Знания" - в помощь лектору древняя книжка и дома в книжном шкафу "Программирование на языке Форт" Семенова Ю.А.

Спасибо всем!

Share this post


Link to post
Share on other sites

Специально заказал TI Launchpad, чтобы попробовать этот 4e4th :)

 

> 4E4th-se v0.34 Apr  5 2012|110001110 Warm

> 1 2 3

ok

> + + .

6  ok

> : Hello ." Hello World! ";

ok

> Hello

Hello World!  ok

>

 

Один косяк только омрачил этот светлый миг.

Почему-то через ихнюю TUSB3410 ни в какую не хочет работать.

Пришлось снаружи на проводках подвешивать нормальный шнурок СОМ-UART

 

Все-таки, красивше было бы через USB напрямую работать.

 

PS:

Эх я тум-тум!

Джамперы неправильно воткнул (в смысле, они уже были воткнуты)

Но они (техасцы) тоже хороши: три джампера вдоль, а два крайних поперек. Хорошо полез дорожки посмотреть и наткнулся на соответствующую шелкографию.

То есть у меня был режим SW UART, а нужен HW.

Ну все, теперь полный хэппи энд, в смысле хэппи старт.

Будем с сыном робота делать, попутно изучая азы.

 

Кора, спасибо огромное за ссыль.

CamelForth мне и раньше нравился, а новые фичи SAVE и WIPE - это именно то, чего не хватало.

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

Share this post


Link to post
Share on other sites

1.Но пока, я в упор не вижу -- где можно использовать "скриптовый" язык в МК-устройствах.

Скрипты хороши тогда, когда нужно время от времени подправлять их (скриптов) работу.

 

2. Очень плотная упаковка кода? Хм... Это как? Разве есть какие-то проблемы с МК, у которых не хватает памяти? Люди уже давно не пишут на асме большие проги (большие, скажем, 2-4 килоайт) ради того, чтобы сэкономить еще "один байт". Смысл ужиматься? Не хватает памяти -- возьмите другой МК.

 

 

3. Как у Форта обстоят дела с многозадачностью? Можно-ли на нем написать event-driven ПО? (Уточняю -- событийно-управляемое ПО.)

 

1. Менее грамотные специалисты-программисты просто пишут скриптовый файл -- система их выполняет. Актуально на мой взгляд, сложно ли будет написать форт интерпретатор который кушает что-то типа DOSовских *.BAT файлов?

 

2. Вот действительно как оценить упаковку кода? Наверное имелось в виду то, что программа на Форте меньше занимает строк, слов, выражений Я правильно понимаю?

 

3.Вот этот вопрос меня действительно интересует! Есть в Форте механизмы параллельного исполнения?

Или единственный вариант -- упаковывать все события в системе в одну большую очередь и обрабатывать их единственным интерпретатором.

 

 

И напоследок ещё один вопрос! Есть ли где примеры того что на форте написан рельно работающий интерпретатор для embedded устройств. Интересует хотя бы такие вещи:

1.Чтение конфигурационных файлов для загрузчика -- на подобие синтаксиса GRUB или UBOOT

2.Интерпретация FTP команд embedded FTP сервером ?

 

 

Share this post


Link to post
Share on other sites

2. Вот действительно как оценить упаковку кода? Наверное имелось в виду то, что программа на Форте меньше занимает строк, слов, выражений Я правильно понимаю?

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

 

1.Чтение конфигурационных файлов для загрузчика -- на подобие синтаксиса GRUB или UBOOT

сановские загрузчики целиком на форте написаны.

Open Boot, Open Firmware, OLPC boot script

Share this post


Link to post
Share on other sites

2MrYuran

 

А чем закончились ваши отношения с Forpost? (если я не ошибаюсь, и это были вы)

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...