|
|
  |
Форт (Forth) и MSP430 для изучения, Программирование и исследование на Форт |
|
|
|
Sep 26 2012, 11:56
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(Виктория @ Sep 26 2012, 15:19)  Да ведь развлекаться будут... И пусть, лишь бы к контроллеру были подключены реальные механизмы, датчики для эспериментов. Цитата(Виктория @ Sep 26 2012, 15:19)  - Почему? Это вроде можно на любом языке. Стековая архитектура может позволит сделать просто более оптимальную трассировку? Не совсем, хотя в контроллеры встраивают, чаще всего Бейсик, но затраты ресурсов на его обработку "гораздо" больше, при сравнении с "мизирной" поддержкой Форт системы. Phyton, Lua, Tcl тоже достаточно громоздкие. Цитата(Виктория @ Sep 26 2012, 15:19)  Форт, к моему сожалению, не знаю. Нужно время, пойду разбираться Начните с имеющихся, хотя и отчасти и устаревших учебников. Цитата(Виктория @ Sep 26 2012, 15:19)  Буду признательна. Соблазнилась и купила Launchpad в прошлом году именно из-за архитектуры PDP-11. Похожая, кстати, архитектура у первых мотороловских микропроцессоров 68000 и т.д. Дешевизна Launchpad-а, разумеется, важный фактор. Попробую подобрать или скомпоновать возможный вариант введения в Форт и в применениии его к контроллерам. P.S. стартовая ссылка для "погружения" в Форт методологию, вроде была уже озвучена fforum.winglion.ru Некторые ссылки на материалы могут уже не существовать, но из web или в личных архивах фортёров можно, наверное, найти этот материал.
Сообщение отредактировал Kopa - Sep 26 2012, 12:34
|
|
|
|
|
Sep 26 2012, 18:26
|
Частый гость
 
Группа: Участник
Сообщений: 147
Регистрация: 18-05-12
Пользователь №: 71 915

|
Цитата Студент ввел строку программы и тут же запустил и увидел результат. и к этому элементарно добавляются удаленный доступ, например запускается простейший локальный сервер (фактически ретранслятор в COM порт) и прямо из броузера можно производить любые настройки параметров, дописывать свои алгоритмы и т.д. Программы на IEC 61131 элементарно транслируются в Форт.
Сообщение отредактировал polyname - Sep 26 2012, 18:28
|
|
|
|
|
Sep 26 2012, 18:36
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(polyname @ Sep 26 2012, 22:26)  и к этому элементарно добавляются удаленный доступ, например запускается простейший локальный сервер (фактически ретранслятор в COM порт) и прямо из броузера можно производить любые настройки параметров, дописывать свои алгоритмы и т.д. Программы из IEC 61131 элементарно транслируются на Форт. Часто поддержа Форт реализуется на разных языках программирования и скриптования, при этом существует возможность в программу на данном языке встроить (внедрить) Форт консоль для наращивания необходимого "скриптового" функционала Форт расширениями (если предположить, что Форт "наиболее" прост в использовании для создания скриптов ) ... (разные примеры этого подхода тоже имеют место быть) можно даже "более" глубоко задействовать внутренние ресурсы системы используемого языка (инструмента) и сформировать лексикон слов исходя из необходимых и имеющихся возможностей, например даже на этапе сборки языка (инструментария) не имеющих достаточных возможностей к саморасширению. P.S. На средствах Web браузера, Форт "консоли", тоже запускают. "Некоторым" студентам Форт не чужд и интересен. Форт направление - всё ещё поле "невспаханных" возможностей  В применении к контроллерам, мой вариант был запуск эмулятора процессора с интерфейсом на СOM порту (внешними модельками дополнялся код симулятора), а второй СОМ порт был IDE среды и оба COM порта виртуально соединялись для "черновой" отладки без неоходимости использования железа. При выявленных расхождениях с железом, тут же правилась и исправлялась модель процессора или периферии  и IDE и эмулятор процессора спроектированы на Форт языке, но разных "диалектах" Цитата(polyname @ Sep 26 2012, 22:26)  Программы на IEC 61131 элементарно транслируются в Форт Встречал некоторый варианты расширения, когда релейная схема в текстовой псевдографики, воспринималась расширением Форт системой, как входная программа для трансляции. Такого плана экспериментальные небольшие разработки часто встречаются.
Сообщение отредактировал Kopa - Sep 26 2012, 19:27
|
|
|
|
|
Sep 27 2012, 12:28
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(MrYuran @ Sep 27 2012, 08:41)  А ссылку не можете привести? Тоже была такая мысль, но самому колхозить некогда Попробую найти или подумать в этом направлении, (возможно встречал, в сообщениях форума 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
Сообщение отредактировал Kopa - Sep 27 2012, 13:17
|
|
|
|
|
Sep 27 2012, 13:58
|
Знающий
   
Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861

|
Цитата(Виктория @ Sep 27 2012, 17:42)  Спасибо. Ещё найти бы хорошую старую книжку
С релейной логикой красивый пример :-) А зачем сложно искать? Книги из раздела Литература Прочтение можно начать с Начального курса программирования (Броуди) рус, Starting Forth (еngl) Язык Форт и его реализации (Баранов,Ноздрунов) Способ мышления - Форт (Броуди) рус, Thinking Forth (engl) дальше по интересу. ... и стандартов на язык ANSI 94 Forth 83 (в изданных книгах 90-х годов) и брать "любую" подходящую Форт систему и "изучать" устройство, примеры, возможности созданные в ней  ( например SPF4, Win32Forth и другие по мере "погружения" в Форт Мир) Завести себе блокнотик (словарик) для запоминания стандартных слов по группам.
Сообщение отредактировал Kopa - Sep 27 2012, 15:28
|
|
|
|
|
Sep 27 2012, 14:48
|

инженер
   
Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701

|
Цитата(Kopa @ Sep 27 2012, 16:58)  А зачем сложно искать? Книги... Завести себе блокнотик (словарик) для запоминания стандартных слов по группам. Ups, на bookFI.org нашлась брошюра общества "Знания" - в помощь лектору древняя книжка и дома в книжном шкафу "Программирование на языке Форт" Семенова Ю.А. Спасибо всем!
|
|
|
|
|
Oct 30 2012, 13:38
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Специально заказал 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 - это именно то, чего не хватало. Ну и что работает искаропки (которая, кстати, из Техаса до Нижнего ровно за неделю дошла) - тоже большой плюс.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Oct 30 2012, 22:26
|
Местный
  
Группа: Свой
Сообщений: 209
Регистрация: 6-01-12
Пользователь №: 69 197

|
Цитата(zhevak @ Sep 23 2012, 14:43)  1.Но пока, я в упор не вижу -- где можно использовать "скриптовый" язык в МК-устройствах. Скрипты хороши тогда, когда нужно время от времени подправлять их (скриптов) работу.
2. Очень плотная упаковка кода? Хм... Это как? Разве есть какие-то проблемы с МК, у которых не хватает памяти? Люди уже давно не пишут на асме большие проги (большие, скажем, 2-4 килоайт) ради того, чтобы сэкономить еще "один байт". Смысл ужиматься? Не хватает памяти -- возьмите другой МК.
3. Как у Форта обстоят дела с многозадачностью? Можно-ли на нем написать event-driven ПО? (Уточняю -- событийно-управляемое ПО.) 1. Менее грамотные специалисты-программисты просто пишут скриптовый файл -- система их выполняет. Актуально на мой взгляд, сложно ли будет написать форт интерпретатор который кушает что-то типа DOSовских *.BAT файлов? 2. Вот действительно как оценить упаковку кода? Наверное имелось в виду то, что программа на Форте меньше занимает строк, слов, выражений Я правильно понимаю? 3.Вот этот вопрос меня действительно интересует! Есть в Форте механизмы параллельного исполнения? Или единственный вариант -- упаковывать все события в системе в одну большую очередь и обрабатывать их единственным интерпретатором. И напоследок ещё один вопрос! Есть ли где примеры того что на форте написан рельно работающий интерпретатор для embedded устройств. Интересует хотя бы такие вещи: 1.Чтение конфигурационных файлов для загрузчика -- на подобие синтаксиса GRUB или UBOOT 2.Интерпретация FTP команд embedded FTP сервером ?
--------------------
|
|
|
|
|
Oct 31 2012, 06:38
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(SyncLair @ Oct 31 2012, 02:26)  2. Вот действительно как оценить упаковку кода? Наверное имелось в виду то, что программа на Форте меньше занимает строк, слов, выражений Я правильно понимаю? Не только. Основная идея в том, что программа состоит из слов. Каждое новое слово - это небольшое "предложение" (причем, можно сделать удивительно похоже на нормальную речь), состоящее из слов более низкого уровня. За счет их разной комбинации достигается высокая степень повторного использования кода. Плюс, сама программа состоит из ссылок на слова либо (ценой уменьшения скорости) может представлять собой байт-код. Плюс, работа через стек освобождает от необходимости передачи аргументов какими-либо другими способами. Цитата 1.Чтение конфигурационных файлов для загрузчика -- на подобие синтаксиса GRUB или UBOOT сановские загрузчики целиком на форте написаны. Open Boot, Open Firmware, OLPC boot script
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|