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

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

Страницы: 1 2 3 434 Следующая »
#15
(Правка: 8:21) 8:20, 29 авг 2021

Gradius
> Проще говоря, для Форта отсутствует понятие "тулчейн" - комплект разработки.
> Это - уровень NES-ассемблера. Далеко на таком подходе не уедешь.
Почему отсутвует?
А, чем, например Win32Forth, iForth, Quest32, TpForth, VFX Forth, SwiftForth ... не тулчейны для x86 и прочего железа?
Да, привыкшего к каким то практикам использования  VScode многих возможностей нет, но говорить о "голом" поле IDE для Форт это опрометчиво. "Многим", при использовании Форт и компиляции текстовых исходников из командной строки или из bat-файла хватает.

#16
(Правка: 8:28) 8:27, 29 авг 2021

KPG
> Да, привыкшего к каким то практикам использования VScode многих возможностей
> нет, но говорить о "голом" поле IDE для Форт это опрометчиво. "Многим", при
> использовании Форт и компиляции текстовых исходников из командной строки или из
> bat-файла хватает.

При чём тут IDE и VSCODE ?
У вас всё, что не компилятор - уже студия?

Обозначу жестко, что есть тулчейн:

- компилятор
- препроцессор
- оптимизатор
- ассемблер
- отладчик
- санитайзер
- дизассемблер
- профайлер
- дампер

Тоесть всё, что может GCC.
И оно comand-line.

#17
(Правка: 8:31) 8:30, 29 авг 2021

Gradius
> Да, можно наворотить макросы или процедуры.... Но, покажите хоть реально
> нормальный пример масштабной игры на Форте!
  А, они есть?
  Надо спрашивать для выяснения этого вопроса мировой разум. :)

P.S. Хотя, если странслировать какой нибудь, например Си код, в Форт, то это не будет в зачёт такой игры, да и не в Форт "традициях" такие решения, хотя и есть проект и написание Си компилятора на Форт.

#18
(Правка: 8:44) 8:36, 29 авг 2021

Gradius
> Обозначу жестко, что есть тулчейн:
Полного комплекта может не быть (как санитайзера и профилёра ...) в каком то Форт инструментарии, но можно работать с тем что есть и думать о добавлении своих потребностей к существующему варианту или пробовать заинтересовать сообщество по его развитию в недостающей части.

Gradius
> У вас всё, что не компилятор - уже студия?
Если ставить такое сравнение, то в какой то степени да. (по существующим опционалам)

P.S. В рускоязычном Форт сообществе прижился SPF4 хотя из перечисленного в нём может чего то не быть, а добовлятся допонительными либами при использовании (если кому то это было интересно сделать), но макро-оптимизатор в нём встроен и показывает неплохие результаты для выходного кода.

#19
(Правка: 8:46) 8:44, 29 авг 2021

KPG
> Полного комплекта может не быть (как санитайзера и профилёра ...) в каком то
> Форт инструментарии, но можно работать с тем что есть и думать о добавлении
> своих потребностей к существующему варианту или пробовать заинтересовать
> сообщество по его развитию в недостающей части.

Я полагаю, что средний возраст представителей сообщества лежит где-то за пределами 45..50 лет.
Не думаю, что кто-нибудь возьмётся делать санитайзер, чтобы снизить порог вхождения Форта для таких нубов, как я lol | Язык Forth - зачем нужен, что можно делать на нём?

Меня беспокоят такие вопросы:

1) Почему на Форте никто не пишет сейчас?

2) Носители Форта - это люди с преклонным возрастом, умеющие на нём писать, потому что в их время не было лучшей альтернативы?  А сейчас уже не хотят переучиваться - Форт для них?

3) Что может привлечь в Форте новичка-программиста?

4) Что может привлечь в Форте опытного программиста, отпахавшего на С/C++ ***-дцать лет?

5) И самое главное:  почему Форт не поддерживатся промышленно?  Не вижу коммерческих тулчейнов Форта, типа Keil, IAR, ARMStudio и аналогичным им...

6) Уровень разработки на Форте - почему не доведён до промышленного и профессионального уровня? (нет доступных решений того же санитайзера)?

KPG
> Если ставить такое сравнение, то в какой то степени да. (по существующим
> опционалам)

Здесь я не согласен.
Наличие дополнительных утилит, дающих возможность отладки - это не VS IDE. Это полнстью консольный инструмент.  Никаких говно-студий.

#20
8:52, 29 авг 2021

Мое мнение - изначальная привлекательность форта была в том, что он с самого начала представлял из себя REPL, то есть в отличие от других высокоуровневых ЯП, которые требовали либо компилировать программу, либо скармливать все равно заранее написанный исходник интерпретатору.

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

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

#21
(Правка: 9:03) 9:02, 29 авг 2021

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

Так это же просто виртуализация.  Эмулятор СЕГи Gens тоже может такое делать - смотреть содержимое регистров, флагов, памяти,  таблицу спрайтов и даже проход по ассемблерному  коду  на лету выполнения программы.

Из скриптовых языков у меня есть опыт только в JavaScript и PHP.
Да, есть определённые плюсы от "размытой" типизации данных.

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

#22
9:06, 29 авг 2021

Gradius
> Так это же просто виртуализация. Эмулятор СЕГи Gens тоже может такое делать -
> смотреть содержимое регистров, флагов, памяти, таблицу спрайтов на лету
> выполнения программы.

Но ты при этом не можешь ПИСАТЬ/СОЗДАВАТЬ эту программу прямо в то время, пока она у тебя выполняется. То есть можешь, конечно, дописывать руками машинные коды (ну или в лучшем конвертировать ассемблерные инструкции в машинные коды, но только без удобств типа меток и названий переменных - только сразу адресами).

#23
(Правка: 9:15) 9:09, 29 авг 2021

Gradius
> Из скриптовых языков у меня есть опыт только в JavaScript и PHP.
> Да, есть определённые плюсы от "размытой" типизации данных.

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

#24
9:15, 29 авг 2021

Dmitry_Milk
> Но ты при этом не можешь ПИСАТЬ/СОЗДАВАТЬ эту программу прямо в то время, пока
> она у тебя выполняется.

Если писать новый код во время выполнения старого, то это UB получается.  Так как в момент внедрения нового куска кода состояние вычислительной системы может быть каким угодно, в зависимости от того, в какой момент времени мы коммитим новый код

#25
(Правка: 9:54) 9:25, 29 авг 2021

Gradius
> 1) Почему на Форте никто не пишет сейчас?
Пишут и этому есть примеры, но что, как и  для каких целей пишут и кто и как использует может не иметь объединяюшего консенсуса.

Например кто то пишет кадастровую систему , но часто даже неизвестно что.
Например только с форума radiokot узнал, что на Форт (авторском варианте) сделано ПО для Windows установки HLDI, а сам автор этого ПО, кроме данной темы это нигде не представлял.

> 2) Носители Форта - это люди с преклонным возрастом, умеющие на нём писать,
> потому что в их время не было лучшей альтернативы? А сейчас уже не хотят
> переучиваться - Форт для них?
Появляются и новые пользователи (учатся ещё в институте) и что то делают, как и ранее были тоже, но пути дальнейшие их неисповедимы.
Для меня Форт всегда был лучшей альтернативой, хотя начинал c asm, basic, turbo C и могу, в силу своих взглядов, его  и другие языки использовать, если есть в этом смысл :)
Смысл переучиваться имеет смысл, если возможности инструментария уже неактуальны, а развитие его бесперспективно в решении возможных задач. :)

> 3) Что может привлечь в Форте новичка-программиста?
Хорошая статья по  Forth есть на Лурке.

> 4) Что может привлечь в Форте опытного программиста, отпахавшего на С/C++
> ***-дцать лет?
В "целом" ничего, если уже смотреть на отличные вещи уже "зашоренным" взглядом.
Иначе, новый, отличный от этого экспиреенс, как например, разработчик Factor перешёл от программирования на Java и своих проектов на нём к разработке своего языка. (около этого языка небольшое текущее сообщество в настоящее время)


> 5) И самое главное: почему Форт не поддерживатся промышленно? Не вижу коммерческих
> тулчейнов Форта, типа Keil, IAR, ARMStudio и аналогичным им...
Потому что, рынок не видит возможности комерциализации на пользователях его использующих,
но сам для STM32 проверил возможности VFX Forth. (есть ещё коммерческий SwiftForth, iForth, 8-th)
т.к. немногочисленным  Forth пользователям даже достаточно сделанных "на коленке" Форт, например amForth, FlashForth для AVR, MecrispStellaris для STM32-MSP430- ... 
O, вспомнил есть даже такой сайт:) https://arduino-forth.com/

Gradius
> 6) Уровень разработки на Форте - почему не доведён до промышленного и
> профессионального уровня? (нет доступных решений того же санитайзера)?
А, как бы это выглядело, если например Форт, фактически может изменять всё понимание своего дальнейшего кода в момент своей трансляции/загрузки/компиляции.
А, вообще, какие то решения могут быть изменяющие вектор понимания и принятия Форт как промышленного стандарта, но этим с принятия стандартов ANSI94, IEEE наверное не так перспективно заниматься, а оставить Форт в его сложившехся реалиях


Jobs on embeded languages :)

#26
9:31, 29 авг 2021

Gradius
> Если писать новый код во время выполнения старого, то это UB получается.

Ты просто мыслишь категориями С/С++. ИМХО, если ты действительно не видишь необходимости в таком способе разработки программ, то Форт тебе точно нафиг не нужен, потому что REPL это неотъемлемая часть работы Форта

#27
(Правка: 9:42) 9:41, 29 авг 2021

Dmitry_Milk
> Ты просто мыслишь категориями С/С++. ИМХО, если ты действительно не видишь
> необходимости в таком способе разработки программ, то Форт тебе точно нафиг не
> нужен, потому что REPL это неотъемлемая часть работы Форта
Особенно удобная в рамках выяснения возможностей железа и ньюансов его работы
даже в рамках взаимодействия через обычный Uart. :)

#28
(Правка: 10:10) 9:50, 29 авг 2021

Dmitry_Milk
> Скажем, я так часто использую Питон, причем в достаточно нетривиальном виде -
На Github при вводе поиска по словосочетанию  "Forth Python" отображается некоторое число проектов c Forth использованием.
Есть даже один по отладке Питон кода в варианте использования Форт. :)

Насколько другие представленные проекты по встраиванию Форт в Питон интересны не знаю.

P.S. Почему обречён язык Форт (c точки зрения автора статьи и дискуссия около этого ) http://www.compiler.su/pochemu-obrechyon-yazyk-fort.php
(Gudleifr  тоже отметился в этой дискуссии)

Кстати по поводу гибкости Форт некоторый один из примеров.

+ Показать

Тыц
При запуске данный пример выведет в консоль встроенные данные в файле (перехватили управление в Форт исходнике входным потоком — обработки данных добавленных в файл) Структура данных при обработке может быть произвольно сложной.

#29
10:05, 29 авг 2021

KPG
> Особенно удобная в рамках выяснения возможностей железа

Это да. Скажем, если система на каком-то очень слабеньком микроконтроллере, куда никакой Питон не впихнешь, то "пощупать" особенности периферии Форт наверное будет самым удобным инструментом.

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