Войти
ФлеймФорумПрограммирование

Язык Forth - зачем нужен, что можно делать на нём? (3 стр)

Страницы: 1 2 3 4 536 Следующая »
#30
10:11, 29 авг 2021

KPG
> На Github при вводе поиска по словосочетанию "Forth Python" отображается
> некоторое число проектов c Forth использованием.

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

Хотя, может быть можно (можно ли?) понадеяться, что Форт-часть сможет дать заметно большее быстродействие, чем сам Питон, за счет "шитого кода". Но для частных случаев и так уже есть всякие numpy и tensorflow.

#31
(Правка: 10:59) 10:19, 29 авг 2021

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

P.S. А, само построение управляющих конструкций не так экзотично в сравнении с ассемблерами
хотя привыкшим к Си восприятию может корёжить мозг не по детски. :)
(но, например, близкая ассоциация с билингвами, то для них всё нормально понимается)
+ ещё СЛОВА из малого количества букв тоже могут оттолкнуть от изучения "абракадабры" Forth.

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

#32
10:27, 29 авг 2021

Dmitry_Milk
> Не знаю, с моей точки зрения это какое-то извращение, интеллектуальная
> мастурбация. Если есть возможность использовать Питон - то вот абсолютно
> никакой надобности в Форте уже нет.
"Форт" использование можно найти в разных ипостасях - в отладчике для Radare2
ESIL

#33
(Правка: 11:11) 11:10, 29 авг 2021

Коль уж заговорили о разных языках, приведу здесь ещё более экзотические языки.

Brainfuck: http://progopedia.ru/language/brainfuck/

Отечественная пардия брэйнфака - Lux: http://progopedia.ru/language/lux/

Интересный диалект Brainfuck - интерперетация в цветах: http://progopedia.ru/dialect/brainloller/

Ну и в заключение - Piet: http://progopedia.ru/language/piet/

Последний заинтересовал своей необычностью визуализировать код в цветах: https://www.dangermouse.net/esoteric/piet/samples.html

Вот пример какого-то генератора чисел:

Изображение

Насколько данные языки мощные?  Ечсть ли у них будущее?  Какова серьёзность их применения?

Или это всё не более, чем утехи программистов и компиляторо-писателей?

#34
(Правка: 11:24) 11:18, 29 авг 2021

Gradius
> Насколько данные языки мощные? Ечсть ли у них будущее? Какова серьёзность их
> применения?
>
> Или это всё не более, чем утехи программистов и компиляторо-писателей?
А, откуда такие вопросы по эзотерическим языкам?
Неужели и Форт так воспринимается?

Или навеяно этой заметкой и обсуждений к ней: Пол Грэм: Странные языки программирования https://habr.com/ru/company/itelma/blog/575128/

Максимально серьёзность их применения, если в их вычислительную модель, например, максимально уложить алгоритм и сравнить с выводами, что из этого интересно к использованию. :)
(типа адресных переходов в 2-ух мерном пространстве Befunge)

P.S. Форт, отчасти, можно "считать" Лиспом, но без скобок если если ещё задействовать в нём Лисп методики. :)
Factor, PostScript - вероятно более Лисповые в своём наполнении.

#35
11:45, 29 авг 2021

Gradius
> экзотические языки

Форт не экзотический язык. Это баланс удобства, быстродействия и минимализма по требованиям к памяти, вот, например:
https://ru.wikipedia.org/wiki/Open_Firmware

#36
(Правка: 13:03) 12:07, 29 авг 2021

Dmitry_Milk
> https://ru.wikipedia.org/wiki/Open_Firmware
Вот этот стандарт IEEE
открытых загрузчиков

ANS Forth стандарт 94г. (перевод)

P.S. Forth литература есть здесь

#37
13:16, 29 авг 2021

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

А если мыслить шире, то можно прийти к выводу: "если знаешь С, этот Форт становится нафиг не нужен".

Ибо аппаратных привилегий Форт в отличие от Си - не имеет.

Банально.  запись в ячейку памяти на Си:

*(volatile int*)register_address = value;

Форт вообще изолирован от всего и вся. Некий конь в вакууме.  И без расширителя он не нужен.  А расширитель - пишется на Си или асме.  Но тогда Форт не нужен, если есть Си - так пиши на нём всё.

Аналогичная ситуация с Питоном и Lua.  Это для дибилов, которые не знают, как просмотреть содержимое регистров микроконтроллера.

#38
(Правка: 13:40) 13:37, 29 авг 2021

Gradius
> Форт вообще изолирован от всего и вся. Некий конь в вакууме. И без расширителя
> он не нужен. А расширитель - пишется на Си или асме. Но тогда Форт не нужен,
> если есть Си - так пиши на нём всё.
Забавно, назвать  ассемблер, Си расширителем Форт :)

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

#39
13:39, 29 авг 2021

Gradius, ну представь, что у тебя необходимость сделать что-то с железкой, где у тебя память для кода исчисляется сотнями байт, ну, скажем, какой-нибудь микроконтроллер 90-х годов. О каком Си там может идти речь? Только ассемблер, только хардкор! (ну или все же форт-машина :) )

#40
13:54, 29 авг 2021

Gradius
> Аналогичная ситуация с Питоном и Lua. Это для дибилов, которые не знают, как
> просмотреть содержимое регистров микроконтроллера.

Чтоб сделать это на Си или на Асме, тебе нужно:
- написать программу
- откомпилировать ее
- залить бинарник в контроллер
- запустить бинарник

И только после этого твоя твоя программа, если она без ошибок написана, сможет сделать обращения к регистрам. А если есть какие-то ошибки/опечатки - тебе придется все вышеперечисленные шаги делать заново.

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

#41
(Правка: 14:04) 13:55, 29 авг 2021

Dmitry_Milk
> О каком Си там может идти речь? Только ассемблер, только хардкор! (ну или все
> же форт-машина :) )
Алпатов Г.Р. Применение PIC-контроллеров в измерительной технике (Ростов-на-Дону: ЮФУ, 2008.)

F2P

PIC Projects

P.S. Ну вот нравится кому то программировать и такие контроллеры на Forth, а свой, к тому же, сделанный инструментарий он же и душу греет. :)

Разместить FORTH в 512 байтах (боот сектора x86)

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

#42
14:02, 29 авг 2021

Dmitry_Milk
> А потом просто общаться с этой средой. При этом форт-машина у тебя влезет даже
> в крошечную память древних контроллеров.
Там что, интерпретатор? Или жит-компиляция?

#43
(Правка: 14:07) 14:06, 29 авг 2021

1 frag / 2 deaths
Интерпретатор - самая простая реализация.
Но модно делать шитый код когда каждое слово это машинное call something что можно сравнить с компиляцией, но легко может перейти к интерпретации если надо.

#44
14:08, 29 авг 2021

Gradius
> Я вот тут озадачился языком Forth. Краем уха слышал, что это простой и гибкий
> язык, в котором есть поддержка изменяющегося синтаксиса.
>
> Поиск литературы в интеренете приводит к скучным ветхозаветным книгам советских
> времён, или мутным статьям на хабре.
>
> Я не втыкаю, зачем нужен Forth? Что на нём можно сделать?
>
> Можно ли на нём писать игры? Управлять регистрами аппаратуры на нём можно?
> Как управлять спрайтами на Форте?
>
> В интернете куча упоминаний: "Форт летал в космос", "На Форте писались игры для
> Atari".

Это довольно сложный вопрос. На него лучше отвечать несколько издалека. Вот есть такой, кгхм, язык программирования - лисп. На нём тоже куча упоминаний "на лиспе написано..." Их даже для удобства на какой-то сайт собрали, специально посвящённый историям успеха на лиспе (а то упоминаний-то - куча, но все настолько маргинальные, что поди найди, не зная, чего искать). Один любитель лиспа тут с этим сайтом всё время носился... Что такое лисп, если описать в двух словах? Это рафинированная деградация в некотором направлении, доведённая до той точки, когда деградировать дальше некуда, после чего возведённая в ранг центральной концепции языка.
Ну так вот, форт - это то же самое, что лисп, только деградировавший в другую сторону.
Можно ли на нём что-то писать? Как и на лиспе - разве что для боли и трудностей, прохождение которых ведёт к раздутию ЧСВ. Для получения результатов с более практичным соотношением боль/профит и менее экзотическим наполнением понятия "профит" - лучше писать всё-таки на чём-то более мейнстримном.

Страницы: 1 2 3 4 536 Следующая »
ФлеймФорумПрограммирование