Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Форт (Forth) и MSP430 для изучения
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Страницы: 1, 2, 3, 4
Kopa
Есть интересное направление -
например, в частности, использование Форт языка для быстрого и эффективного изучения возможностей контроллера MSP430 и внешней периферии.
4e4th

Код
4E4th on the LaunchPad - 8/16K
Recently we had a meeting in the Lower Rhine region dreaming about a small nice affordable board with a modern MCU and a compact Forth inside.

There it is!

The TI LaunchPad with 4E4th on it. 16K FLASH - 8K Forth and 8K for our own apps. The 4E4th is covered in a 20Pin DIL MSP430G2553.
Now our goal is to supply a TI LaunchPad ready with the MSP430G2553 and Forth inside - all for 4€ - plug in the USB, open the terminal, and there we go! CamelForth430 is the kernel of 4E4th.

I think these are exciting developments.

Michael


P.S. Возможно окажется полезным инструментарием проект немецкого Форт сообщества.
В репозитарии есть ещё некоторые Форт системы для MSP430.
Хотчется услышать мнение участников местного форума.

C MSP430 близко не работал, но "ностальгия" по системе команд PDP-11 осталасьsm.gif
И если приобрести launch pad ($4,6) то можно многое сделать используя Форт идеалогию.
Есть и другие Форт системы для MSP430, но наверное без "продвижителя" данного направления тема "заглохнет":)
zhevak
Ага. Спасибо. Уже читаю.

Н-н... да. Забавно. Очередное Дурдуино для домохозяек.

Читаю, и иногда подвисаю на приятных воспоминаниях по временам РК-86...
Ну мы тогда Форт тоже изредка юзали. Так, не серьезно. Скорее от безысходности -- ведь Си-компайлера для РК-ашек тогда не было. Зато были широко распространены только ассемблер и Бейсик, которые закрывали почти весь спектр тогдашних задач. Ходил по рукам, правда, еще какой-то не работающий Лэйди-Паскаль. Ну и этот там был -- Форт. Был больше для "коллекции программ", чем для работы.

Я, вот, только не понимаю -- где его (Форт внутри msp430) можно сейчас реально применить с пользой? Сейчас всяких кросс-компиляторов -- мать моя! -- каких только нет! Профи в основном пишут либо на С, либо на асме. Всякие Форты, Паскали, Бэсики, PL... -- это экзотика, а не инструмент для зарабатывания денег. А не профи -- "непрофи" юзают Ардуины.

Может быть я чего-то не догоняю. sad.gif Но мне кажется, что что-то все-таки ускользает от моего понимания. Что-то я не представляю, что же _такое_толковое_ можно написать на Форте, причем _это_толковое_ ну никак невозможно было бы так же красиво реализовать на С/С++? В чем фишка?

-- Чувствую, что меня кидают. А где -- понять не могу. (с) из анекдота
Microwatt
Есть в ФОРТе нечто особенное. То, что сейчас кроме С++ программисты ничего не используют - не показатель. "Профи" тут следует понимать как "ремесленник".
Можно прожить с английским, где практически нет падежей и родов, можно с русским, где шесть падежей и три рода. И никому вроде не нужен язык банту. А там, если случайно заглянуть, только родов около 20. И язык живой, миллионы людей используют.

При всем несовершенстве вычислительных возможностей ФОРТ это язык с порождающей грамматикой. Т.е. после некоторой начальной возни с программой она на более высоких уровнях начинает читаться как почти естественный человеческий язык. И допускает допрограммирование пользователем. Прямое объектноориентированное кодирование.
Кроме того, это чрезвычайно компактный в смысле расхода объема памяти язык.
Вряд ли его сейчас станут применять массово, но сама идея его построения заслуживает чтобы с нею познакомиться. Для гимнастики ума. sm.gif
Bloom
я тоже изучал в свое время форт, было очень интересно... Но эта возня со стеком со временем просто достала. Как игрушка и для разминки ума форт приколен, но для производства...
MrYuran
Цитата(zhevak @ Sep 20 2012, 22:49) *
Я, вот, только не понимаю -- где его (Форт внутри msp430) можно сейчас реально применить с пользой?

1. мета-язык (в т.ч. красивая обертка для ассемблера)
2. встраиваемый интерактивный скриптовой движок, который без труда ложится в любой контроллер, от младших пиков и авр до арм.
3. возможна очень плотная упаковка программы засчет использования байт-кода
4. распределенная система хост-таргет с возможностью перераспределения в ходе отладки
5. много ещё чего

Теперь о грустном: к сожалению, систем типа "сел и поехал" практически нет, а если есть (SwiftForth), то стоит вполне конкретно.

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


Цитата(Microwatt @ Sep 21 2012, 03:33) *
Вряд ли его сейчас станут применять массово

Посмотрите спецификацию CIL (основа дотнета)
Ничего не напоминает ?
Kopa
Цитата(Microwatt @ Sep 21 2012, 03:33) *
Вряд ли его сейчас станут применять массово

В этом есть правда.
При всём многообразии "своих" и не своих Форт систем, форт зачастую используется их создателями на задачах
малой и средней степени сложности или в личных разработка. Открытых "крупных" проектов с использованием Форта на компьютерах не много и они
тоже, зачастую, закрывают специализированные ниши (как то например Bios для OLPC, nnCron- планировщик) Ниша встраиваемых систем хорошо "пропиарина" для использования Cи инструментария (и архитектура контроллеров к нему близка) для использования менее гибкой, но зато
проще воспринимаемой системы программирования. (но например Factor язык не появился бы, если бы его разработчика в полной мере устраивал Java)
Форт не может восприниматься менеджерами проекта, как удачное решение, ввиду отсутствия профессионально подготовленных специалистов.
И поэтому, чаще всего, можно встретить Форт в изделиях компаний, как адекватный инструмент управления например роботами (Strobotics), внутреннего ядра для создания прибора (firmware Mosaic-Indutries) и др.

Ближайший к Форт Си подобный язык TCL/TK хоть и использует близкий подход к программированию (командный стиль). но при этом требует некоторой
нагрузки на "мозг" для понимания правильного использования структуры для однопроходного (интерпритируемого) исполнения (без компиляции) и не
имеет "мощных" механизмов внутреннего саморасширения.

P.S. Массово можно понимать и как создание массово используемых программ (но большее их число уже существует и мало смысла повторять решения
на существующих аппаратных плаформах их с использованием Форт). Хотя, в работе на Форт оценочная производительность труда программиста в 2-3 раза выше массовых продуктов (высказана =АК= в одном из постов на данном форуме, точно сам не оценивал, но цифры близкие). МК рынок хоть и массовый, но работает на нём не так уж много специалистов и задачи у них, в своих областях, уже обычно имеют свою "отработанность". А если задача новая, то бюджет разработки может быть не ограничен.

Как то такsm.gif и лично субъективно.


(P.S.)

Цитата(Bloom @ Sep 21 2012, 05:14) *
я тоже изучал в свое время форт, было очень интересно... Но эта возня со стеком со временем просто достала.

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

Вопрос: Можно ли например эффектвно создавть компиляторы языков программирования без использования понятия стека?

Цитата(Bloom @ Sep 21 2012, 05:14) *
Как игрушка и для разминки ума форт приколен, но для производства...

Это тоже имеет место быть, но входит в противоречие с количеством разработанных, разной сложности, Форт систем.
(что просто зашкаливает по шкале необходимости разрабатывать очередной Форт)
А в публичный доступ, зачастую, выкладываются они, а не продукт сделанный с помощью данного инструментария.
(была даже кем то озвучена мысль, что Форт - это тайное оружие фирмsm.gif
zhevak
Цитата(MrYuran @ Sep 21 2012, 11:15) *
1. мета-язык (в т.ч. красивая обертка для ассемблера)
2. встраиваемый интерактивный скриптовой движок, который без труда ложится в любой контроллер, от младших пиков и авр до арм.
3. возможна очень плотная упаковка программы засчет использования байт-кода
4. распределенная система хост-таргет с возможностью перераспределения в ходе отладки
5. много ещё чего

1. Ичё? Продолжайте свою мысль, а то она как-то внезапно оборвалась. Клиенту, для кого создается гаджет не то что бы "красивая обертка" не нужна -- ему вообще пофигу на каком языке пишется встроенное в его гаджет ПО. Красота для программиста? ... Сомнительно. Прогеры пишут свои программы не для красоты, а чтобы устройство работало. Программисту-разработчику от этой красоты ни холодно-ни жарко. Удобство использования нужно -- это да. А красота ... это уже к гуманитариям -- художникам, поэтам, музыкантам... К "любителям программирования", которые пишут красивый код не для работы, а для личного самоудовлетворения. (Еще один из множества разновидностей онанизма?)

2. Скрипт -- это хорошо. Скрипт -- это компактно и мощно. Скрипт -- это сверхвысокоуровнево. (Вчера прочитал: "Python -- это язык сверхвысокого уровня". Вот это я понимаю!) Ляжет-то он, конечно, ляжет... но опять же -- какие задачи он нацелен? Что им решать? Приведите какие-нибудь конкретные примеры, что ли. А я (или кто-нибудь) попробуем обсудить -- возможно ли эту задачу решить с помощью каких-то иных средств так же быстро и правильно, как на Форте. Но пока, я в упор не вижу -- где можно использовать "скриптовый" язык в МК-устройствах.

Вот, смотрите -- с одной стороны мы согласны отдать 8 кило флэша под сам Форт. Хорошо. Но, что мы при этом получаем взамен?

А если мы отдаем столько же памяти под какую-нибудь RTOS -- что мы в этом случае теряем, и что получаем?

Вы ведь не хотите отдать область создания ПО для МК домохозяйкам?

И да! Скрипты! Это область, когда нужно оперативно накидать прожку, чтобы быстро разрулить большой объем работы. Скрипты хороши тогда, когда нужно время от времени подправлять их (скриптов) работу. Но мы знаем, что в 99.9% МК-устройствах программа заливается один раз. И пашет там пожизненно. Заметьте, поменять уставки (установки, параметры, конфиги) -- это не то, что поменять скриптовую прогу.

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

Давно уже канули времена, когда разница в МК с разным объемом памяти была ощутима. По инерции приводят гипотетические примеры, дескать -- для производства, которое выдает на гора стони-тысячи изделий в месяц, это проблема стоит очень остро. -- Фигня! Бред! У меня такое же производство, и я по первости тоже искал себе "проблему одного байта". Сейчас понял -- надуманно это все! Стоимость МК в изделии составляет от силы несколько процентов. Какая разница, во сколько будет выливаться себестоимость изделия -- в 2345 рублей или 2389? Важно не это, а динамика развития производства. Если каждый месяц количество заказов увеличивается на 10-30%, то экономить на 1-2% за счет "узкого" проца -- только себе засерать развитие. Производите разработку -- Отлично! Закладывайте сразу проц в двукратным количеством памяти. По деньгам не чувствительно, зато будет пространства для маневра.

4. "Переведи!" (с) из советского к/ф. Это как? Ничего не понял.

5. Ни о чем! Всё будет надуманно и высосано из пальца. (Паручики, молчать!!!)


Теперь о грустном. К сожалению, я так и не понял -- зачем Форт? Или что он должен собой вытеснить (заменить)?

Да! И еще пара вопросов.

1. О манагерах. Я их тоже недолюбливаю. Но в данном вопросе с ними солидарен.

Вот, допустим, был у меня один такой уникум -- разработчик МК-системы, писал на Форте. Уволился (не важно по какой причине!) Дальше что? Разработки встали колом? Все начинать с начала и на международном языке программирования (С/С++) или учить самому/учить людей Форту. Ну и зачем мне залазить в такой "производственный капкан"?

2. Как у Форта обстоят дела с многозадачностью? Можно-ли на нем написать event-driven ПО? (Уточняю -- событийно-управляемое ПО.) Грубо -- это такое ПО, которое всё время спит, то есть не кушает батарею, не греется. Но как только в системе возникает какое-либо событие (прерывание), система пробуждается и начинает его обрабатывать. В такой системе возможны порождения вторичных событий. События в систему могут поступать по нескольким каналам.

Например:
- тикает системный таймер,
- пришел ответ по SPI, достать его из регистра и засунуть в буфер
- UART отправил байт, и нужно в него загрузить следующий
- юзвер нажал на кнопочку,
- сработал концевик, датчик перегрузки и т.п.
и т.д.

А то получится как во времена DOS:

Код
do (!конец_работы())
{
  if (ответ_от_HDD_получен() == 1)
    обработать_файл();
  else if (клавиатура_нажата() == 1)
    определить_нажатую_клавишу();
  else if (событие_от_мышки() == 1)
    определить_какое_событие_случилось_у_мышки();
  else if (тайм-аут_истек() == 1)
    погасить_экран();
}


Ни в спячку систему не отправить, ни быстро отреагировать на событие.
polyname
Цитата
Но пока, я в упор не вижу -- где можно использовать "скриптовый" язык в МК-устройствах.
значит вы с таким пока не сталкивались. Вот возьмем например устройство для автоматизации чего-то.
Пользователь пишет на MicroSD или по RS232/USB командный файлик типа:
Код
if (in(1) == 1) {out(1,0); out(2,1); sleep(100);}
else if (in(2) == 1) {out(1,1); out(2,0); sleep(200);}

На порядок проще и нагляднее всяких FBD, LD и подобных.
В случае бинарной прошивки он должен будет связываться с разработчиками и ждать новой прошивки, платить за работу.

Или "умный" звуковой модуль. Опять же на MicroSD звуковые файлы и командный текстовый файлик:
Код
if (keypress(1)) {play("sound1.wav"); sleep(100);}
else if (keypress(2)) {play("sound2.wav"); sleep(100);play("sound3.wav"); sleep(100);}

На Forth парсер/компилятор реализуется проще и короче других языков.
В принципе приблизить синтаксис к привычному несложно, например сделать вызов функций как имя( парам1 парам2 ), а при компиляции удалить скобки и переставить имя в конец списка. Можно сделать присваивание переменных как имя = знач, или set("имя" знач)

Цитата
Ни в спячку систему не отправить, ни быстро отреагировать на событие.
все что требует быстродействия реализуется на С/Асм, и предоставляется Форту как библиотека стандартных функций.
zhevak
Спасибо за примеры, polyname.

Да, действительно, не моя темя. Я не сталкивался с проблемами, когда для полноценной работы устройства пользователю нужно предоставить какой-нибудь скриптовый язык. Видимо, речь идет о ПЛК?

Цитата
все что требует быстродействия реализуется на С/Асм, и предоставляется Форту как библиотека стандартных функций.

Разумеется, не писать же на Форте стек TCP/IP для того же ENC28J60! Но рулить Фортом на верхним уровнем ... хм? <Задумался> какие-нибудь неторопливые торговые и платежные терминалы, управление вент-каналами, управление климатом в УД?
Kopa
Цитата(zhevak @ Sep 23 2012, 14:43) *
Теперь о грустном. К сожалению, я так и не понял -- зачем Форт? Или что он должен собой вытеснить (заменить)?

@ "- Я не люблю кошек."
"- Вы их просто не умеете готовить"

В полемику вступать у меня нет желания. Моё предложение было озвучено в первом посте. Полемику по Форт можно прочитать
на форуме рускоязычных пользователей Форт языка и поучаствовать в ней при желании.sm.gif

P.S. По приведёной информации на местном форуме (хотя бы из моих постов) и других источников можно понять почему Форт до
сих пор применяется и его сильные и слабые сторноны и ни в коей степени не претендует на решение на все случаи жизниsm.gif
Выбор применять или нет и как решает каждый используя свои критерии субъективной оценки.

Event-driven (или автоматный подход) и другие возможности - это только модель построения системы и к языку имеет не такое
опосредованное значение (будет ли это встроено, или поддержано независимым модулем, или расширением к языку)
Форт, как расширямый язык, может адаптироваться к любым "хотелкам" программиста. Опыт создания управляемого событиемм приложение
у меня был, как со стороны контроллера на языке ассеблера иначе задача в данном железе не работала (!580 процессор на 2Мгц)
при обработке датчика метража, клавиатуры, индикатора, логики приложения и выдачи на общий канал сбора информации к PC от таких же приборов.
иначе просто программа тормозила и не работала. На уровне PC был опыт разработки управляемого событиями (с клавиатуры, мышки)
мультиоконного текстового редактора (почти микро оконная система) на Форт (на основе SPF2.5 системы в DOS и его FED редактора), где на основе первичных событий порождались синтетические и проходили по некоторой выстроеннной иеархии объектов изменяя контекст обработки для следующих событий.
(отлаживать такое приложение оказалось, довольно не простым занятием и в результате прототип так и не был доведён до полностью рабочего состояния)
был и другой опыт создания эмбеддед ПО, как с привлечением Форт, так и без него на таргете. (С, ASM)

Цитата(zhevak @ Sep 23 2012, 14:43) *
. Скрипт -- это хорошо. Скрипт -- это компактно и мощно. Скрипт -- это сверхвысокоуровнево. (Вчера прочитал: "Python -- это язык сверхвысокого уровня". Вот это я понимаю!)

Вы считаете. что при решении задачи первичен язык? (мышление способно воспринять в себя и оперировать "чудовищными" построениями не замечая
этогоsm.gif
Хороший язык, программирования, в моём понимании когда об нём самом и как на нём сделать то то и то то меньше всего думаешь (аналогия -
не думаем же мы как првильно дышать)

Цитата(zhevak @ Sep 23 2012, 14:43) *
Ляжет-то он, конечно, ляжет... но опять же -- какие задачи он нацелен? Что им решать? Приведите какие-нибудь конкретные примеры, что ли. А я (или кто-нибудь) попробуем обсудить -- возможно ли эту задачу решить с помощью каких-то иных средств так же быстро и правильно, как на Форте. Но пока, я в упор не вижу -- где можно использовать "скриптовый" язык в МК-устройствах.

Решить задачу можно сто и одним способомsm.gif а ссылки на использование Форт можно найти на Форум по форт
Нужно это или нет Вам определитесь сами.


Цитата(polyname @ Sep 23 2012, 15:16) *
Код
if (in(1) == 1) {out(1,0); out(2,1); sleep(100);}
else if (in(2) == 1) {out(1,1); out(2,0); sleep(200);}


Один из вариантов, можно и оптимальнее

Код
: abc
1 in 1 = if  1 0 out  2 1 out  100 sleep exit then
2 in 1 = if  1 1 out  2 0 out  200 sleep then
;

При этом ассемблер тоже выглядеть может похожим образом и мало характеризует другие другие аспекты Форт системы.
В шутку и всъерьз Форт на луркморье
polyname
Цитата
Один из вариантов, можно и оптимальнее
да, это уже в обычной Форт-нотации, для конечных юзверей с ней работать сложно. Поэтому наверно проще использовать юзер-френдли синтаксис, и конвертировать в Фортовский перед компиляцией.
Kopa
Цитата(zhevak @ Sep 23 2012, 14:43) *
Вы ведь не хотите отдать область создания ПО для МК домохозяйкам?

На самом деле не вижу ничего криминального, если домохозяйка на это будет способнаsm.gif
Умные холодильники, кофеварки, телевизоры "потребуют" с собой общение!

Цитата(zhevak @ Sep 23 2012, 14:43) *
Вот, допустим, был у меня один такой уникум -- разработчик МК-системы, писал на Форте. Уволился (не важно по какой причине!) Дальше что? Разработки встали колом? Все начинать с начала и на международном языке программирования (С/С++) или учить самому/учить людей Форту. Ну и зачем мне залазить в такой "производственный капкан"?

Проблемы будут и С/С++ разработками т.к. уровень разработчиков, их пристастия (стиль написания кода), да и запрограммированный алгоритм без дополнительного обяснения
логики его работы могут оказаться трудно преодолимыми факторамиsm.gif

Цитата(zhevak @ Sep 23 2012, 14:43) *
4. "Переведи!" (с) из советского к/ф. Это как? Ничего не понял.

Под распределённой хост-таргет Форт системой, наверно подразумевалось, что решение задачи распределяется между хостом и таргетом по "разному".
Например хост проводит всю вычислительную работу и управляет таргетом, простейший таргет лишь подготавливает по командам хоста данные или ещё проще задаёт выполнение
неообходимого слова в таргете. (Может быть ещё проше - таргет имеет только команды ввода данных с внешних устройств и передачу их хосту)
Прояснил? или окончательно запутал? Но эта схема и не применительно к Форту используетсяsm.gif


Цитата(zhevak @ Sep 23 2012, 14:43) *
Вот, смотрите -- с одной стороны мы согласны отдать 8 кило флэша под сам Форт. Хорошо. Но, что мы при этом получаем взамен?
А если мы отдаем столько же памяти под какую-нибудь RTOS -- что мы в этом случае теряем, и что получаем?

8кило, это, как говорится "средний показатель температуры по больнице" в классической реализации автономной Форт машины для 8-и битных контроллеров,
в близком варианте к действующим стандартам, для возможности создавать ПО в рамках Форт языка, при этом некоторая мультизадачность уже может быть встроена в этот объём. (при кросс компиляции ресурсы контроллера по памяти уже расходуются по другому). Форт сам по себе представляет "некоторую" операционную среду, с вытекающими
из этого "последствиями" (сейчас глянул ехе файл SPF4 для windows разбух уже за 100КБ, хотя если отключить оптимизатор должно получиться ~30-40КБ)

Цитата(polyname @ Sep 23 2012, 17:08) *
да, это уже в обычной Форт-нотации, для конечных юзверей с ней работать сложно. Поэтому наверно проще использовать юзер-френдли синтаксис, и конвертировать в Фортовский перед компиляцией.


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

P.S. Поддержку ассемблера, также можно загрузить расширением, при необходимости.
zhevak
Цитата(Kopa @ Sep 23 2012, 19:20) *
На самом деле не вижу ничего криминального, если домохозяйка на это будет способнаsm.gif
Умные холодильники, кофеварки, телевизоры "потребуют" с собой общение!

Криминального-то ничего нет. Мне кажется -- это заблуждение из серии "Психбольница в руках пациентов".

Программируемый телевизор? 99% людей используют только кнопку вкл-выкл, переключатель каналов и громкость.
Умный холодильник, кофеварка? -- Дак, отлично! Напечатайте инструкцию по их программированию и добейтесь чтобы домохозяйки не посылали Вас лесом.

Базар пасанов:
-- Вчера стока бабла отвалил... Матри, какой у меня есть умный девайс!
-- Ичё!
-- Да ты вааще лох! Он программируемый!
-- ..уясе! Ну-ка -- закажи!
-- А я .уй его знает как!

Обывателям не нужна программируемость. Обывателям нужна одна кнопка -- Вкл/Выкл. И всё!

Цитата
Проблемы будут и С/С++ разработками т.к. уровень разработчиков, их пристастия (стиль написания кода), да и запрограммированный алгоритм без дополнительного обяснения логики его работы могут оказаться трудно преодолимыми факторамиsm.gif

Проблем везде хватает. А с Фотром добавляется еще и языковая проблема -- Форт-программеров на рынке труда намного меньше, чем Си-шников.

Цитата
Под распределённой хост-таргет Форт системой, наверно подразумевалось, что решение задачи распределяется между хостом и таргетом по "разному".

А причем здесь Форт? Или я уже потерял нить рассуждения?
Kopa
Цитата(zhevak @ Sep 23 2012, 19:50) *
Обывателям не нужна программируемость. Обывателям нужна одна кнопка -- Вкл/Выкл. И всё!

Про домохозяйку это была шутка.

Цитата(zhevak @ Sep 23 2012, 19:50) *
Проблем везде хватает. А с Фотром добавляется еще и языковая проблема -- Форт-программеров на рынке труда намного меньше, чем Си-шников.

А их, на рынке труда, практически нет. (исторически, экономически, системно не преподают),
Встречаются только отдельные индивидумыsm.gif которым приходится подстраиваться под потребнсти этого рынка. Аукни на местном форуме тех кто знает про Форт.
наберётся может с десяток человек, а используют и того меньше. И в каких то вопросах разработки программ, при всех его достоинствах, у Форта ещё очень много "белых" пятен и не выстроенных "моментов". Элементарно нет даже современных учебников
по "запудриванию" мозгов молодого поколения. Но тем не менее он не ушёл с рынка инструментария разработчика, как это ни парадоксально.


Цитата(zhevak @ Sep 23 2012, 19:50) *
А причем здесь Форт? Или я уже потерял нить рассуждения?

Это было пояснение по пункту 4. MrYuran
zhevak
Цитата(Kopa @ Sep 23 2012, 18:55) *
@ "- Я не люблю кошек."
"- Вы их просто не умеете готовить"

Да, я не умею готовить кошек...
Однако: я не использую Линукс потому что его не знаю. Я не знаю Линукс потому что его не использую.
И как же выйти из этого цикла?

Извините, немного офф-топа:
Цитата
... на языке ассеблера ...

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

Цитата
Вы считаете. что при решении задачи первичен язык?

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

а вот этого я вообще не понял:
Цитата
(мышление способно воспринять в себя и оперировать "чудовищными" построениями не замечая этогоsm.gif

что-то заумно как-то. Скажите как-нибудь по другому, более просто.

Цитата
Хороший язык, программирования, в моём понимании когда об нём самом и как на нём сделать то то и то то меньше всего думаешь (аналогия -
не думаем же мы как првильно дышать)

Ага. Согласен.
Мы вот тут базарим на русском и даже не испытываем дискомфорта или непонимания (пример выше -- это просто недоразумение! Не рассматриваем!)
So let's speak english and we shall got difficulties immediately.
Kopa
Цитата(zhevak @ Sep 23 2012, 20:33) *
Извините, немного офф-топа:
я думал что только у меня проблема с буквой "м". Почему-то всякий раз набирая это слово я пропускаю эту букву. Вы уже второй человек, у которого та же проблема.

За своей кавиатурой замечаю некие странности (подключена через переходник PS2 - USB). так вот бывает вместо набора текста происходят нехорошие действия как то переключение на другое окно, включение режима выделения и др. Подозреваю, что в системе "существует" какая то гадость (левый процесс). Снимается предупредительным Ctr+Alt+Del без необходимости открытия диспетчера задач. Но особого дисклмфорта пока не причиняет.
В критических случаях лечится перестановкой образа системыsm.gif

Цитата(zhevak @ Sep 23 2012, 20:33) *
а вот этого я вообще не понял:

Мысль простая. Навязывание "сложного" пути решения задачи происходит из-за начально использования сложно сделанной системы,
остальное всё вторично. (как эта сложность получилась и что этому виной это уже другой вопрос)

Цитата(zhevak @ Sep 23 2012, 20:33) *
So let's speak english and we shall got difficulties immediately

Так что давайте говорить на английском языке, и мы получили сразу же трудности. (Переводчик от гугла)
Поэтому давайте говорить на английском языке, и мы будем, немедленно получил трудности (Переводчик от промта)
Так что давайте говорить по-английски, и мы получили трудности сразу же (Переводчик от яндекса)
Так что давайте говорить Английский, и мы будем получили трудности немедленно (Bing транслятор)

P.S. Есть у меня некоторые пробелы в понимании анлийских выраженийsm.gif
а Форт он очень даже интернационален, в силу поддержания начального базиса заложенного при его становлении.
zhevak
Цитата(Kopa @ Sep 23 2012, 22:18) *
А их (Форт-программистов), на рынке труда, практически нет. (исторически, экономически, системно не преподают),
Встречаются только отдельные индивидумыsm.gif которым приходится подстраиваться под потребнсти этого рынка. И в каких то вопросах разработки программ, при всех его достоинствах, у Форта ещё очень много "белых" пятен и не выстроенных "моментов". Элементарно нет даже современных учебников
по "запудриванию" мозгов молодого поколения. Но тем не менее он не ушёл с рынка инструментария разработчика, как это ни парадоксально.

Да! Да! Да!

Форт-программеров фактически нет. Делать ставку на использование Форта в коммерческих проектах -- это значит, подвергать бизнес серьезному риску. Иначе говоря, для такого решения нужны не менее серьезные причины.

sm.gif У меня было (или где-то есть?) аж две книжки издания какого-то тысяча девятьсот мохнатого года по Форту. Одна даже в твердом переплете для БК-0010. С тех пор, на сколько я могу судить -- вообще ничего не издавалось.

И еще. Если бы в языке было что-то стоящее, то наверняка он развивался бы более динамично, имел бы множество диалектов, версий, дистрибутивов... Его бы экосистема была бы более широкой и развесистой. Однако, язык имеет очень маленький процент, я бы сказал -- закрывает узкое, специфическое направление.

Вот ссылка на рейтинг языков: http://www.tiobe.com/index.php/content/pap...tpci/index.html . Так, для общего развития.

Я не утверждаю, что Форт -- язык отстойный! Нет. Я всего лишь говорю, что это всего лишь забавный язык с очень ограниченной сферой применения. Поиграться -- да. Размять мозги -- да. Потеоретизировать -- да. Для общего расширения "ерундиции" -- да. Но для реального (я подчеркиваю) практического применения -- сомнительно. Ну разве что, от безысходности.
polyname
Цитата
Если бы в языке было что-то стоящее, то наверняка он развивался бы более динамично, имел бы множество диалектов
а чему там развиваться ? Это всяким С и Жабам нужно постоянно добавлять новые фичи, которые уже 40..50 лет есть в Лиспе и Форте...
zhevak
я безвылазно сижу в Лине. Так что "левые процессы" отпадают. Отсутствие "м" в "ассемблере" -- это что-то чисто человеческое.

Цитата(Kopa @ Sep 23 2012, 23:06) *
Мысль простая. Навязывание "сложного" пути решения задачи происходит из-за начально использования сложно сделанной системы, остальное всё вторично. (как эта сложность получилась и что этому виной это уже другой вопрос)

А-а! Спасибо за разъяснения.
Об этом хорошо расписано в книжке Эрика Реймонда "Искусство программирования для UNIX". Дзен называется коротко K.I.S.S.

Ладно. Пойду заниматься делами. Спасибо за разговор!
Kopa
Цитата(zhevak @ Sep 23 2012, 21:07) *
И еще. Если бы в языке было что-то стоящее, то наверняка он развивался бы более динамично, имел бы множество диалектов, версий, дистрибутивов... Его бы экосистема была бы более широкой и развесистой. Однако, язык имеет очень маленький процент, я бы сказал -- закрывает узкое, специфическое направление.

А это его "нищета" и "блеск" иметь огромное множество диалектов, версий, "дистрибутивов" иметь своё сообщество, интересные наработки и при этом оставаться "невидимым"

Цитата(zhevak @ Sep 23 2012, 21:07) *
Вот ссылка на рейтинг языков: http://www.tiobe.com/index.php/content/pap...tpci/index.html . Так, для общего развития.

Подозреваю, что это результат вследствии решения задачи по созданию индустрии огромного оборота капитала IT области. (лично и субъективно)

Цитата(zhevak @ Sep 23 2012, 21:07) *
Но для реального (я подчеркиваю) практического применения -- сомнительно. Ну разве что, от безысходности.

а те кто его в промышленности его применяют, как бы и не в счётsm.gif

Цитата(zhevak @ Sep 23 2012, 21:14) *
я безвылазно сижу в Лине. Так что "левые процессы" отпадают. Отсутствие "м" в "ассемблере" -- это что-то чисто человеческое.

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

Цитата(polyname @ Sep 23 2012, 21:11) *
а чему там развиваться ? Это всяким С и Жабам нужно постоянно добавлять новые фичи, которые уже 40..50 лет есть в Лиспе и Форте...

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

Ремарка: интересный факт. Разработчик языка Factor создавал свои программы сначала на Java (jEdit редактор). И ещё n-ое количество
существующих языков (цепочечного типа- Joy PostScript 5th Enchilada Cat Raven Onyx Staapl Lviv Deque и др.) построены на использовании стека, как
вычислительной структуры в своём базисе.
Не говоря уж о JVM и CLI и других исполнительны виртуальных машинах классических языков.
ReAl
Цитата(Kopa @ Sep 23 2012, 20:06) *
За своей кавиатурой замечаю некие странности (подключена через переходник PS2 - USB). так вот бывает вместо набора текста происходят нехорошие действия как то переключение на другое окно, включение режима выделения и др.
Аналогично.
Дома старая клавиатура ещё с AT-штекером через переходник из 30-летней давности магнитофонного гнезда и обрубка хвоста PS/2 мыши ткнуто в PS/2-USB.
На работе клава поновее, сама с PS/2.
И там, и там линукс.
«Всякие нехорошие действия» тоже и там, и там (на работе еще и с PS/2 трекболом).
Дома старая клава обладает такой особенностью, что после включения питания весело перемигивает всеми светодиодами.
Все «нехорошие действия» как раз тогда и бывают, когда среди быстрого набора вдруг промгнут эти светодиоды…
Похоже, придётся таки ходить и на ощупь выбирать себе новую USB-шную.
MrYuran
Цитата(zhevak @ Sep 23 2012, 14:43) *
Какая разница, во сколько будет выливаться себестоимость изделия -- в 2345 рублей или 2389?

Это вы товарищу сектеру попробуйте задвинуть sm.gif
Он сразу расклад накидает: миллион изделий в год, бакс с каждого в карман. Итого?

Спорить бесполезно, особенно даже не вникая в суть вопроса.
Но вот лично я при виде любой темы типа "как бы мне JVM или python или LUA встроить в контроллер" сразу вспоминаю forth.
Равно как и разговоры про лексические парсеры.

Просто надо материал подавать немного не так, в более разжеванном виде и с красивыми картинками.
rezident
Обращаюсь к модераторам раздела публично, поскольку приватные сообщения они видимо игнорируют.
Тема данного топика изначально слабо коррелировала с тематикой раздела, а сейчас вообще попер голимый оффтопик. Перенесите, пожалуйста, топик в соответствующий раздел форума!
Kopa
Цитата(rezident @ Sep 24 2012, 15:48) *
Обращаюсь к модераторам раздела публично, поскольку приватные сообщения они видимо игнорируют.
Тема данного топика изначально слабо коррелировала с тематикой раздела, а сейчас вообще попер голимый оффтопик. Перенесите, пожалуйста, топик в соответствующий раздел форума!

Парадокс заключается в том, что не ясно где именно Найти подходящее место на форуме по Форт тематике из данного обсуждения

P.S. А чем Вас не устраивает, располжение в ветке MSP430 т.к. пока идёт "разъяснительное" обсуждение.
Примеры и описание инструментария по ссылке и не только тоже можно привести при сформированном интересе к данной тематике.
rezident
Цитата(Kopa @ Sep 24 2012, 17:13) *
Парадокс заключается в том, что не ясно где именно Найти подходящее место на форуме по Форт тематике из данного обсуждения
Да, это правда. Данный момент я тоже отметил. Но это уже задача модераторов - найти для топика подходящий разедел. Если такого нет, то пускай ходатайствуют перед админами о создании нового (что маловероятно и весьма нежелательно) или о расширении тематики какого-либо из существующих разделов, например, Вопросы системного уровня проектирования.
Цитата(Kopa @ Sep 24 2012, 17:13) *
P.S. А чем Вас не устраивает, располжение в ветке MSP430 т.к. пока идёт "разъяснительное" обсуждение.
Примеры и описание инструментария по ссылке и не только тоже можно привести при сформированном интересе к данной тематике.
Дык в том-то и дело, что кроме собственно корневого топика все остальное обсуждение к разделу "Микроконтроллеры MSP430" напрямую не относится. По сути все оффтопик для данного раздела и следовательно является нарушением п.3.1 Правил форума.
Далее продолжать не буду, чтобы еще более не усугублять оффтопик. Подождем реакции модераторов.
Виктория
Наверно лучше перенести в "Операционные системы", впрочем мне все равно - лишь бы подписка на тему не съехала.
Цитата(Kopa @ Sep 20 2012, 18:31) *
Есть интересное направление -
например, в частности, использование Форт языка для быстрого и эффективного изучения возможностей контроллера MSP430 и внешней периферии.
...

C MSP430 близко не работал, но "ностальгия" по системе команд PDP-11 осталасьsm.gif
И если приобрести launch pad ($4,6) то можно многое сделать используя Форт идеалогию.
Есть и другие Форт системы для MSP430, но наверное без "продвижителя" данного направления тема "заглохнет":)


В Вас сидит скрытый провокатор, ещё и Kolibri OS вытянули из стека форума. Хотя идея для учебного процесса интересная.
Kopa
Цитата(Виктория @ Sep 25 2012, 20:16) *
Наверно лучше перенести в "Операционные системы", впрочем мне все равно - лишь бы подписка на тему не съехала.
В Вас сидит скрытый провокатор, ещё и Kolibri OS вытянули из стека форума. Хотя идея для учебного процесса интересная.

Есть понимание непреходящих ценностей, а также и то, что догмы могут устаревать и в практику вводится и использоваться отличные
от общепринятых решенийsm.gif

P.S. Kolibri OS интересна, отчасти сформировавшейся "инфраструктурой" разработки и обсуждения направления возможного развития "операционных" сред. MSP430 - это почти "калька" c PDP-11 c которым мне посчастливилось "плодотворно" поработать и Форт, в поддержке его, многим мне помог. В колибри также были эксперименты встраивания Форт,
но идея не нашла поддержки у активных разработчиков колибри, что могло существенно облегчить написание (или прототипирование) ос.
Фoрт так или иначе используется и или может использоваться "широко" в учебном процессе. (примеры находятся при "незамыленности" восприятия или могу подсказать)
MrYuran
Цитата(Kopa @ Sep 25 2012, 23:34) *
Фoрт так или иначе используется и или может использоваться "широко" в учебном процессе. (примеры находятся при "незамыленности" восприятия или могу подсказать)

Очень простой пример.
Имея контроллер (неважно какой) с прошитым ядром forth и любой терминал через СОМ-порт, получаем абсолютный доступ ко всем потрохам контроллера прямо из терминала.
Не нужно житагов, иаров, кейлов, тулчейнов, дорогостоящих программаторов/отладчиков.
Студент ввел строку программы и тут же запустил и увидел результат.
Виктория
Цитата(MrYuran @ Sep 26 2012, 08:10) *
Очень простой пример.
Имея контроллер (неважно какой) с прошитым ядром forth и любой терминал через СОМ-порт, получаем абсолютный доступ ко всем потрохам контроллера прямо из терминала.
Не нужно житагов, иаров, кейлов, тулчейнов, дорогостоящих программаторов/отладчиков.
Студент ввел строку программы и тут же запустил и увидел результат.

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

Цитата
Имея контроллер (неважно какой) с прошитым ядром forth и любой терминал через СОМ-порт
- Почему? Это вроде можно на любом языке. Стековая архитектура может позволит сделать просто более оптимальную трассировку?
Форт, к моему сожалению, не знаю. Нужно время, пойду разбираться

Кора, прошлась по той ссылке на форум колибристроителей, там не очень уважают встроенные системы

Цитата
Фoрт так или иначе используется и или может использоваться "широко" в учебном процессе. (примеры находятся при "незамыленности" восприятия или могу подсказать)
Буду признательна. Соблазнилась и купила Launchpad в прошлом году именно из-за архитектуры PDP-11. Похожая, кстати, архитектура у первых мотороловских микропроцессоров 68000 и т.д.
Дешевизна Launchpad-а, разумеется, важный фактор.
MrYuran
Цитата(Виктория @ Sep 26 2012, 15:19) *
- Почему? Это вроде можно на любом языке. Стековая архитектура может позволит сделать просто более оптимальную трассировку?
Форт, к моему сожалению, не знаю. Нужно время, пойду разбираться

форт-система - это самодостаточный комплекс, который может наращивать сам себя, размещаясь при этом в нескольких кБ памяти контроллера.
То есть - система ввода-вывода, лексический парсер, компилятор - все уже зашито внутрь и готово прямо с момента включения.

Новые введенные слова сначала компилируются в ОЗУ, можно их использовать (развлекаться , как Вы выразились), комбинировать в более мощные конструкции, а потом при желании сохранить в флеш-память с помощью слова SAVE, чтобы при следующем включении они уже были.


Kopa
Цитата(Виктория @ 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 или в личных архивах фортёров можно, наверное, найти этот материал.
Tanya
Цитата(Виктория @ Sep 26 2012, 15:19) *
- Почему? Это вроде можно на любом языке. Стековая архитектура может позволит сделать просто более оптимальную трассировку?

Компиляция идет внутри. Можно быстро пробовать.
Kopa
Немного ссылок на презентации Форта.

Включены слайд курс лекций по тематике Forth
The Structure of Programming Languages
Fall 2012


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

Forth Pesentation
polyname
Цитата
Студент ввел строку программы и тут же запустил и увидел результат.
и к этому элементарно добавляются удаленный доступ, например запускается простейший локальный сервер (фактически ретранслятор в COM порт) и прямо из броузера можно производить любые настройки параметров, дописывать свои алгоритмы и т.д. Программы на IEC 61131 элементарно транслируются в Форт.
Kopa
Цитата(polyname @ Sep 26 2012, 22:26) *
и к этому элементарно добавляются удаленный доступ, например запускается простейший локальный сервер (фактически ретранслятор в COM порт) и прямо из броузера можно производить любые настройки параметров, дописывать свои алгоритмы и т.д. Программы из IEC 61131 элементарно транслируются на Форт.


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

P.S. На средствах Web браузера, Форт "консоли", тоже запускают. "Некоторым" студентам Форт не чужд и интересен. Форт направление - всё ещё поле "невспаханных" возможностейsm.gif
В применении к контроллерам, мой вариант был запуск эмулятора процессора с интерфейсом на СOM порту (внешними модельками дополнялся код симулятора), а второй
СОМ порт был IDE среды и оба COM порта виртуально соединялись для "черновой" отладки без неоходимости использования железа. При выявленных расхождениях
с железом, тут же правилась и исправлялась модель процессора или периферииsm.gif и IDE и эмулятор процессора спроектированы на Форт языке, но разных "диалектах"

Цитата(polyname @ Sep 26 2012, 22:26) *
Программы на IEC 61131 элементарно транслируются в Форт

Встречал некоторый варианты расширения, когда релейная схема в текстовой псевдографики, воспринималась расширением Форт системой, как входная программа для
трансляции. Такого плана экспериментальные небольшие разработки часто встречаются.
MrYuran
Цитата(Kopa @ Sep 26 2012, 22:36) *
Встречал некоторый варианты расширения, когда релейная схема в текстовой псевдографики, воспринималась расширением Форт системой, как входная программа для
трансляции. Такого плана экспериментальные небольшие разработки часто встречаются.

А ссылку не можете привести?
Тоже была такая мысль, но самому колхозить некогда
Kopa
Цитата(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 26 2012, 20:32) *
Немного ссылок на презентации Форта.


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

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

MrYuran
Цитата(Виктория @ Sep 27 2012, 17:42) *
Спасибо. Ещё найти бы хорошую старую книжку

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

Его "Thinking Forth" - отличная книга не только по теме, но и по вопросам алгоритмизации вообще.
Kopa
Цитата(Виктория @ Sep 27 2012, 17:42) *
Спасибо. Ещё найти бы хорошую старую книжку

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

А зачем сложно искать?
Книги
из раздела Литература

Прочтение можно начать
с Начального курса программирования (Броуди) рус, Starting Forth (еngl)
Язык Форт и его реализации (Баранов,Ноздрунов)
Способ мышления - Форт (Броуди) рус, Thinking Forth (engl)
дальше по интересу.
...
и стандартов на язык
ANSI 94
Forth 83 (в изданных книгах 90-х годов)

и брать "любую" подходящую Форт систему и "изучать" устройство, примеры, возможности созданные в ней sm.gif
( например SPF4, Win32Forth и другие по мере "погружения" в Форт Мир)
Завести себе блокнотик (словарик) для запоминания стандартных слов по группам.
Виктория
Цитата(Kopa @ Sep 27 2012, 16:58) *
А зачем сложно искать?
Книги
...
Завести себе блокнотик (словарик) для запоминания стандартных слов по группам.


Ups, на bookFI.org нашлась брошюра общества "Знания" - в помощь лектору древняя книжка и дома в книжном шкафу "Программирование на языке Форт" Семенова Ю.А.
Спасибо всем!
MrYuran
Специально заказал TI Launchpad, чтобы попробовать этот 4e4th sm.gif

Код
> 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 - это именно то, чего не хватало.
Ну и что работает искаропки (которая, кстати, из Техаса до Нижнего ровно за неделю дошла) - тоже большой плюс.
SyncLair
Цитата(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 сервером ?

MrYuran
Цитата(SyncLair @ Oct 31 2012, 02:26) *
2. Вот действительно как оценить упаковку кода? Наверное имелось в виду то, что программа на Форте меньше занимает строк, слов, выражений Я правильно понимаю?

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

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

сановские загрузчики целиком на форте написаны.
Open Boot, Open Firmware, OLPC boot script
shreck
2MrYuran

А чем закончились ваши отношения с Forpost? (если я не ошибаюсь, и это были вы)
MrYuran
Цитата(shreck @ Oct 31 2012, 11:24) *
А чем закончились ваши отношения с Forpost? (если я не ошибаюсь, и это были вы)

Руки не дошли. Как и до многого другого.
На работе надо работать работу за деньги, дома вообще к компьютеру не пробьёшься, да и некогда.
F- (fminus) тоже очень заинтересовал. Но не хватало импульса, чтобы сесть, запустить и дальше уже спокойно экспериментировать между делом.
А теперь, когда курьер вручил плату, на которую за пять минут залил готовый образ ядра, который сходу заработал (не считая некоторых недоразумений) - можно потихоньку продвигаться.
Kopa
Цитата(SyncLair @ Oct 31 2012, 02:26) *
1. Менее грамотные специалисты-программисты просто пишут скриптовый файл -- система их выполняет. Актуально на мой взгляд, сложно ли будет написать форт интерпретатор который кушает что-то типа DOSовских *.BAT файлов?

Сложностей нет. Можно использовать имеющиеся знания и библиотеки (например лексический анализатор). Есть популярный курс по построению
компилятора от Креншоу с кодом на Форт (начальный на Pascal). А если остановится на Форт ориентированном синаксисе, то это даже не вопрос.
"куча" материалов и ссылок на "любой вкус и цвет" представлена на русскоязычном форуме по Форт тематике http://fforum.winglion.ru.Начав изучать разные реализации можно определиться со своими "пристрастиями":) Есть и на ВАТ файле форт подобные реализации
"Менее грамотные" специалисты, что очень хорошо, имеют возможность реализовывать свои знания в программном коде! без необходимости начального углублённого
изучения "сложного" каркаса языка и возможностей создания программ с помощью него. Форт осваивается достаточно быстро. Из кирпичиков-форт слов можно
построить достаточно грандиозные "здания". Форт первый расширемый конкатенавный язык, но есть и другие его "потомки"

Цитата(SyncLair @ Oct 31 2012, 02:26) *
2. Вот действительно как оценить упаковку кода? Наверное имелось в виду то, что программа на Форте меньше занимает строк, слов, выражений Я правильно понимаю?

И слов, и строк, и выражений т.к. Форт язык достаточно локаничен и не "перегружает" количеством кода внимание разработчика, пользователя, но реализации
каких то алгоритмов могут "казаться" абсолютно не читаемыми и сравнимы, отчасти, с реализациями на ассемблере.
Код программы минимальный в классическом варианте из-за использования интерпритатора "адресных ссылок" (т.е. фактически ассемблер виртуального
стекового процессора с фиксированной длиной команд, например 16, 8 бит) Компактность стековой арифметики использовалась в программируемых калькулятарах. (контроллеры могут быть самыми не ресурсоёмкими, если задаче хватает времени для своего выполнения.)


Цитата(SyncLair @ Oct 31 2012, 02:26) *
3.Вот этот вопрос меня действительно интересует! Есть в Форте механизмы параллельного исполнения?
Или единственный вариант -- упаковывать все события в системе в одну большую очередь и обрабатывать их единственным интерпретатором.

Сам Форт не предаставляет в стандарте парралелизм, но и никак не ограничивает расширение "себя" необходимыми возможностями. Учитывая
хорошую реентерабельность стекового кода можно создавать требуемые решения вплоть до использования в ассемблере Форта. (ассемблер тоже
часто одно из расширений Форта с зарезервированными словами CODE ... ENDCODE).Часто, в Форте используют реализацию кооперативной мультизадачности,
а если Форт выполняется в рамках заданной ОСИ то используются её сервисы (например с использованием потоков в PC версиях) Есть и проекты Форт-осей,
но "продвинутость" их неочевидна. Есть и многоядерный ассинхронный Форт контроллер (пиковая частота переключений в ядре где-то 700МГц при работе ядра,
асинхронизм 144 ядер очень сильно "рагружает" потребление )


Цитата(SyncLair @ Oct 31 2012, 02:26) *
И напоследок ещё один вопрос! Есть ли где примеры того что на форте написан рельно работающий интерпретатор для embedded устройств. Интересует хотя бы такие вещи:
1.Чтение конфигурационных файлов для загрузчика -- на подобие синтаксиса GRUB или UBOOT
2.Интерпретация FTP команд embedded FTP сервером ?

На SP-Forth реализованы eserv и nncron программы. По вашему вопросу посмотрите nncron и почитайте форум на её сайте.
На sourceforge.net есть н-ое количество Форт проектов прикладного характера.

P.S. Пожалуй пока так. Остальные пояснения по мере прояснения Форт тематики при изучении.
На MSP430 пока не работал с Фортом (нет железки), но Форт для PDP-11 процессора "юзал" интенсивно, вплоть до симуляции программно данного процессора.
поэтому и интересна данная тема. (При этом можно использовать самые недорогие контроллерные "камни")
Timmy
Моё мнение по исходному вопросу: основной рыночной нишей MSP430 являются устройства с минимизированным энергопотреблением. Если оно не требуется, сейчас выгоднее и удобнее использовать ядро ARM/Кортекс. Таким образом, использование MSP430 в качестве интерпретатора Форта, что влечёт, грубо говоря, удесятерение энергопотребления, выглядит странным. А изучать периферию лучше начинать с чтения документацииsm.gif.
Kopa
Цитата(Timmy @ Oct 31 2012, 22:59) *
Моё мнение по исходному вопросу: основной рыночной нишей MSP430 являются устройства с минимизированным энергопотреблением. Если оно не требуется, сейчас выгоднее и удобнее использовать ядро ARM/Кортекс. Таким образом, использование MSP430 в качестве интерпретатора Форта, что влечёт, грубо говоря, удесятерение энергопотребления, выглядит странным. А изучать периферию лучше начинать с чтения документацииsm.gif.

Десятикратно вряд ли и вряд ли фатальные, но наверное будут при использовании компактного шитогого кода.
При этом использование ассемблера в Форте по реультатам профилирования никто не запрещает использовать.

Следуя Вашей логике место применения MSP430 должно быть ограничено автономными датчиками, приборами аналогами цифровых мультиметров-тестеров и
не как не управление "железом" т.к. тогда условно сверх-низкое потребление не будет востребовано в полной мере. (У MISC архитектуры, кстати, ещё меньшее потребление!!!)

P.S. В НГУ на базе MSP430 проектировали проект сенсорного узла с использованием форт подхода "Метеор-Форт". Статья по результатам для ознакомления доступна.
MrYuran
Цитата(Kopa @ Oct 31 2012, 16:30) *
На MSP430 пока не работал с Фортом (нет железки)

Цена вопроса - $4.30
Доставят через несколько дней прямо в руки (мне на проходную предприятия привезли)

Уже немного поигрался sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2017 Invision Power Services, Inc.