LINUX.ORG.RU

libSFC - библиотека для реализации FORTH системы на микроконтроллерах семейства cortex

 , , ,


1

3

Очень часто при разработке устройств на микроконтроллерах, возникает необходимость в реализации простого скриптового языка для конечной кастомизации устройства. Для этого очень хорошо подходит ФОРТ. Данный проект и реализует FORTH систему которую очень просто можно использовать в вашем проекте.

>>> сайт проекта

Ответ на: комментарий от RazrFalcon

Это шутка?

Форт — идеальное решение, когда управлять/программировать надо потоком. telnet, get-запросы, mqtt и т.п. Python сразу отпадает, в JS или Lisp задолбаешься скобочки считать. Lua, конечно, ещё есть, но по сравнению с Фортом это тихий ужас :) Что там ещё из популярного встраиваемого скриптового остаётся?

KRoN73 ★★★★★ ()

Когда-то про Форт говорили, что знать этот язык необходимо, чтобы считать себя компьютерно-грамотным. Да, там еще Бейсик был в списке первым.

Во времена БК-0010 Форт был очень интересным языком.

dave ★★★★★ ()

Если ты автор проекта то почему на главной странице меня сразу встречает описание на *русском* языке?! Видишь свою целевую аудиторию только ввиде бСССР? Вот я бы кинул ссылку на профильные каналы но не могу именно по этой причине.

bga_ ★★ ()

Слова управления словарями DICT/DCLOSE/DEFAULT

WTF? Это вместо CREATE..DOES>?
У тебя даже запятой нет. Как переменную то определить?
Есть же Mecrisp-Stellaris и FICL. Зачем это?

arson ★★★★★ ()
Ответ на: комментарий от hobbit

Форт - очень интересный язык, когда-то для него декомпилятор писал. Только давно что-то про него новостей не читал...

31 мая 2018 г.: gforth - GNU Forth for Android: можно потыкать на смартфончике :)

P.S. Помню стародавние времена, когда Forth занимал < 8К, а теперь 9M — девять, Карл! :)

quickquest ★★★★★ ()
Ответ на: комментарий от dave

Когда-то про Форт говорили, что знать этот язык необходимо

Как его вообще можно знать, если там словарь расширяемый в ту или иную область реализации программной системы?! Выучи всю библиотеку Java SE/JRE, которая сейчас есть. Что, слабо?

iZEN ★★★★★ ()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от Oberstserj

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

iZEN ★★★★★ ()
Ответ на: комментарий от iZEN

Мммдддааа...

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

И чего только люди не придумают, чтобы на С не писать...

anonymous ()
Ответ на: комментарий от KRoN73

Хммм...

Lua, конечно, ещё есть, но по сравнению с Фортом это тихий ужас :)

OpenWRT тут как-то непонимающе смотрит на автора данного высказывания. =)

anonymous ()

Известный пример успешного применения Форта — его использование в программном обеспечении глубоководного спускаемого аппарата, при поисках «Титаника» в 1985 году. Также Форт был применён в программном обеспечении спектрографа на Шаттле, в микромодулях управления искусственными спутниками Земли, для системы управления в аэропорту Эр-Рияда, системах компьютерного зрения, автоматизации анализа крови и кардиологического контроля, карманных переводчиках.

Форт — это не совсем язык программирования; вернее, он перекрывает понятие языка программирования. Форт в большей степени является виртуальной машиной и операционной системой ForthOS.

kto_tama ★★★★★ ()
Последнее исправление: kto_tama (всего исправлений: 2)

Смотрю, местные ньюфани или забыли или не застали как тут Луговский то фортом весь ваш хваленый лор зачморил и пердаки повзрывал.

anonymous ()
Ответ на: комментарий от kto_tama

Офигенно!

Форт в большей степени является виртуальной машиной и операционной системой ForthOS.

И вот тут роутеры с маршрутизаторами просто офигели... Заодно офигели самсунговцы со своим KNOX, являющимся так же ВМ.

Форт — это не совсем язык программирования; вернее, он перекрывает понятие языка программирования.

Форт — это нишевое решение, для решения отдельных задач, которые <i>возможно</i> на нём решать удобнее. В возможно что и нет. Системы компьютерного зрения с применением библиотеки OpenCV? А кто сказал что код для них надо писать на Форте? Да и вообще тут FPGA, возможно, более к лицу будет. Всё остальное из выше перечисленного так же. Имеет не одно аналогичное решение на иных языках программирования.

В общем, создаётся впечатление, что кому-то захотелось «передёрнуть» на это поделие, так почему нет-то?

anonymous ()
Ответ на: комментарий от ogion

И Фокал был, и не один Бейсик, включая Вильнюсский с шитым кодом. Форт тоже был. Википедия говорит, что даже не одна реализация Форта была. В те времена еще было деление на Фиг-Форт, Форт-83 и еще стандарт какого-то года из 70-х.

dave ★★★★★ ()

библиотека для реализации FORTH системы на микроконтроллерах семейства cortex

Какой заголовок для чего-то столь простого.

SourceForge

Спасибо, но нет.

quantum-troll ★★★★★ ()
Ответ на: комментарий от bga_

Вот я бы кинул ссылку на профильные каналы но не могу

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

bender ★★★★★ ()
Ответ на: Хммм... от anonymous

OpenWRT тут как-то непонимающе смотрит

А они разве не вырезали всю lua-парашу в одной из недавних версий? Вроде бы на си всё переписали

makoven ★★★★★ ()
Последнее исправление: makoven (всего исправлений: 1)

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

Rupricht ()
Ответ на: комментарий от makoven

К моему величайшему сожалению...

Ю А они разве не вырезали всю lua-парашу в одной из недавних версий? Вроде бы на си всё переписали

... не совсем. Там можно поставить. Но это же адок, чесслово, конфигуратор на lua.

Кстати, именно из-за этой параши я и отказался от OpenWRT для своих поделий. Только LFS теперь, либо генточка (смотря что надо, правда).

anonymous ()
Ответ на: комментарий от AVL2

для stm32 прекрасный вариант. Простой и универсальный, как и микропитон, только прямой

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

Не благодари...

AUX ()
Ответ на: комментарий от tailgunner

Для быстрого прототипирования на тех же контроллерах. Мне зачастую не хватало REPL в контроллерах типа f073, куда ни micropython ни lua не лезут.

Ну и нормального опенсорсного форта для кортексов до сих пор нет.

Dark_SavanT ★★★★★ ()
Ответ на: комментарий от red75prim

Шитый код в момент забъёт предсказатель переходов процессора.

Пожалуй, главная причина угасания интереса к Форту. А вот когда-то приводили оценку, что Форт давал скорость примерно в 1,5 - 2 раза меньшую, чем ассемблер. Просто великолепная оценка! Естественно, на старых процессорах без таких огромных кешей и слишком вумных предсказателей. По идее, современный процессор можно было и научить Форту, чтобы предсказатель учитывал его особенности, но зачем?

dave ★★★★★ ()