| Автор |
Сообщение |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
KPG писал(а): Что предполагается в отличиях, к примеру, от https://esp32.arduino-forth.com/ ? А что там отличается от Arduino? Собственно, те же функции, только переписанные на Форте. Я выше уже описывал общую идею - не повторять сделанное в библиотеках Arduino, а написать модуль, добавляемый в готовый проект и обеспечивающий ему Command Line Interface. Целью является резкое уменьшение количества перекомпиляций проекта за счет того, что изменения будут вноситься в скрипты на Форте, а не в сам проект.
[quote="KPG"]Что предполагается в отличиях, к примеру, от https://esp32.arduino-forth.com/ ?[/quote] А что там отличается от Arduino? Собственно, те же функции, только переписанные на Форте. Я выше уже описывал общую идею - не повторять сделанное в библиотеках Arduino, а написать модуль, добавляемый в готовый проект и обеспечивающий ему Command Line Interface. Целью является резкое уменьшение количества перекомпиляций проекта за счет того, что изменения будут вноситься в скрипты на Форте, а не в сам проект.
|
|
|
 |
Добавлено: Пн янв 12, 2026 16:03 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
Hishnik писал(а): Вот думаю, сделать открытый репозиторий по Форту для ESP32 с ардуиновским компилятором, или активных пользователей не будет? Что предполагается в отличиях, к примеру, от https://esp32.arduino-forth.com/ ?
[quote="Hishnik"]Вот думаю, сделать открытый репозиторий по Форту для ESP32 с ардуиновским компилятором, или активных пользователей не будет?[/quote] Что предполагается в отличиях, к примеру, от https://esp32.arduino-forth.com/ ?
|
|
|
 |
Добавлено: Пн янв 12, 2026 04:51 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
|
Вот думаю, сделать открытый репозиторий по Форту для ESP32 с ардуиновским компилятором, или активных пользователей не будет?
Вот думаю, сделать открытый репозиторий по Форту для ESP32 с ардуиновским компилятором, или активных пользователей не будет?
|
|
|
 |
Добавлено: Пн янв 12, 2026 00:35 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
|
Upd.
Мало того, что M5 Stack приехала, за ней доехала еще пачка плат на ESP32, причем платформа на удивление приятная в смысле использования в качестве "маленькой коробочки для простых вещей, при этом с беспроводной связью". А вот проекты Ардуино компилируются долго, даже при косметических изменениях программы. Поэтому есть идея оживить Форт для Ардуино, сделав его по архитектуре Ирбиса - сначала запустить основное приложение, а потом привязать основные функции к словам форт-системы, сделанной по switch/case.
Upd.
Мало того, что M5 Stack приехала, за ней доехала еще пачка плат на ESP32, причем платформа на удивление приятная в смысле использования в качестве "маленькой коробочки для простых вещей, при этом с беспроводной связью". А вот проекты Ардуино компилируются долго, даже при косметических изменениях программы. Поэтому есть идея оживить Форт для Ардуино, сделав его по архитектуре Ирбиса - сначала запустить основное приложение, а потом привязать основные функции к словам форт-системы, сделанной по switch/case.
|
|
|
 |
Добавлено: Чт окт 09, 2025 00:55 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
|
Ну, в принципе, включение вывода как GPIO и должно отключать режимы специального назначения. Со скоростью еще определенный резерв в том, что вычисление digitalPinToPort(pin) каждый раз при выводе - это вынужденная дань подходу Arduino как таковому. Просто чтобы "вывод в pin 13" всегда был зажиганием светодиода. Соответственно, для разработчиков это определенная головная боль, чтобы по аргументу 13 понять, где на их плате соответствующий регистр IO в МК.
Я сейчас жду еще одну интересную платформу на ESP32: M5Stack Core2 ESP32 IoT Памяти тут побольше, поэтому и разместить всякого тоже можно. Кроме того, чем больше памяти задействовано, тем дольше грузится прошивка, что опять-таки происходит при каждой перекомпиляции исходных текстов, и избавиться от части этого можно как раз с интерпретатором, работающим внутри Arduino.
Ну, в принципе, включение вывода как GPIO и должно отключать режимы специального назначения. Со скоростью еще определенный резерв в том, что вычисление digitalPinToPort(pin) каждый раз при выводе - это вынужденная дань подходу Arduino как таковому. Просто чтобы "вывод в pin 13" всегда был зажиганием светодиода. Соответственно, для разработчиков это определенная головная боль, чтобы по аргументу 13 понять, где на их плате соответствующий регистр IO в МК.
Я сейчас жду еще одну интересную платформу на ESP32: M5Stack Core2 ESP32 IoT Памяти тут побольше, поэтому и разместить всякого тоже можно. Кроме того, чем больше памяти задействовано, тем дольше грузится прошивка, что опять-таки происходит при каждой перекомпиляции исходных текстов, и избавиться от части этого можно как раз с интерпретатором, работающим внутри Arduino.
|
|
|
 |
Добавлено: Пн дек 25, 2023 03:31 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
Возможно, кому-нибудь будет полезно: Обнаружил, что на ESP8266 ардуиновская digitalWrite перед собственно установкой уровня пина ещё отключает на нём ШИМ и генерацию импульсов (которые могли быть запущены функциями analogWrite и tone соответственно). При большом числе вызовов эти вспомогательные действия могут занимать заметное время. Cоорудил макросы, которые просто устанавливают указанный уровень на пине и работают значительно быстрее: Код: #define pinHigh(pin) (*portOutputRegister(digitalPinToPort(pin)) |= digitalPinToBitMask(pin)) #define pinLow(pin) (*portOutputRegister(digitalPinToPort(pin)) &= ~digitalPinToBitMask(pin)) Скорее всего, будет работать и под ESP32, но пока не проверял.
Возможно, кому-нибудь будет полезно:
Обнаружил, что на ESP8266 ардуиновская digitalWrite перед собственно установкой уровня пина ещё отключает на нём ШИМ и генерацию импульсов (которые могли быть запущены функциями analogWrite и tone соответственно). При большом числе вызовов эти вспомогательные действия могут занимать заметное время.
Cоорудил макросы, которые просто устанавливают указанный уровень на пине и работают значительно быстрее: [code]#define pinHigh(pin) (*portOutputRegister(digitalPinToPort(pin)) |= digitalPinToBitMask(pin)) #define pinLow(pin) (*portOutputRegister(digitalPinToPort(pin)) &= ~digitalPinToBitMask(pin))[/code]
Скорее всего, будет работать и под ESP32, но пока не проверял.
|
|
|
 |
Добавлено: Пн дек 25, 2023 00:54 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
|
[url=https://arduino-forth.com/#menu-idExemples]https://arduino-forth.com/#menu-idExemples - раздел примеров сайта[/url]
P.S. [url=http://roboforum.ru/forum58/topic4406-60.html]Сообщения от Chu на форуме roboforum по amforth[/url]
|
|
|
 |
Добавлено: Вс дек 12, 2021 03:30 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
Починил-таки does>, добавил edit и кнопку run... Теперь Код: : abc create does> 0 + @ does> 1 + @ does> 2 + @ ; abc c 'a' , 'b' , 'c' , c . c . c . c . c . выводит Код: a b c c c Форт-исходник 3D-бродилки теперь "зашит" не в текстовой переменной, а в edit-е... По кнопке run содержимое edit-а интерпретируется/компилируется, а сам edit очищается и готов к приему новых порций кода... Есть еще нижний edit, куда добавляется уже обработанный код... Лежит тут: http://totalvacuum.ru/online3d.htmТ.е. фактически весь пример влез в 300 строк кода... Из них 50 строк - javascript-движок транслятора, еще 50 - объявления базовых слов ядра с "ассемблерными" вставками javascript-кода... Таким образом, получили компактный, но в то же время комфортный для работы набор примитивов, примерно 30-40 шт. (тут есть избыточность, но пусть будет), на базе которых можно строить все остальное: Код: ( : ; immediate create does> allot , variable constant array if else then while repeat do loop dup swap pick drop + - * = < > & | ^ ! @ . putpixel redraw 123 "string" 'c' `javascript` ) Ну а дальше практически чистый форт-код 3D-бродилки... Причем сам форт-код не оптимизирован, т.е. это "дословный" перевод кода 3D-бродилки с Си на Форт... Когда появится время и желание, утрамбую, ну а пока весит 9K...  Всё управление "персонажем" при помощи мыши... upd. Тут почти то же самое, но персонаж бегает по полю сам, при каждом ударе о стену направление движения и другие параметры меняются случайным образом: http://totalvacuum.ru/sky3d.htm Остановить самоубийство о стену можно нажав мышекнопку... Возобновить бессмысленное и беспощадное блуждание по полю можно при помощи команды Код: 1 forward ! В смартфоне событие onmousedown не срабатывает (в отличие от onmouseup), но вместо него вроде как можно использовать что-то типа Код: : "ontouchstart" 1 forward ! ; : "ontouchend" 0 forward ! ; А вот еще небольшой пример: http://totalvacuum.ru/fft.htm Переделал стек и область данных под комплексные числа, добавил слово i, которое кладет в стек мнимую единицу, сделал пока еще корявый литературный перевод си-шной реализации быстрого преобразования Фурье, нагло сворованной с rosetta code... А дальше замешиваем 2 синуса, берем косинус в качестве оконной функции и рисуем спектр этого безобразия: http://totalvacuum.ru/spectrum.htm Вообще, удобный онлайн-полигон для обкатки идей и алгоритмов получается...
Починил-таки does>, добавил edit и кнопку run... :D Теперь [code]: abc create does> 0 + @ does> 1 + @ does> 2 + @ ; abc c 'a' , 'b' , 'c' , c . c . c . c . c .[/code]выводит[code]a b c c c[/code]Форт-исходник 3D-бродилки теперь "зашит" не в текстовой переменной, а в edit-е... По кнопке run содержимое edit-а интерпретируется/компилируется, а сам edit очищается и готов к приему новых порций кода... Есть еще нижний edit, куда добавляется уже обработанный код... Лежит тут: [url]http://totalvacuum.ru/online3d.htm[/url] Т.е. фактически весь пример влез в 300 строк кода... Из них 50 строк - javascript-движок транслятора, еще 50 - объявления базовых слов ядра с "ассемблерными" вставками javascript-кода... Таким образом, получили компактный, но в то же время комфортный для работы набор примитивов, примерно 30-40 шт. (тут есть избыточность, но пусть будет), на базе которых можно строить все остальное:[code]( : ; immediate create does> allot , variable constant array if else then while repeat do loop dup swap pick drop + - * = < > & | ^ ! @ . putpixel redraw 123 "string" 'c' `javascript` )[/code]Ну а дальше практически чистый форт-код 3D-бродилки... Причем сам форт-код не оптимизирован, т.е. это "дословный" перевод кода 3D-бродилки с Си на Форт... Когда появится время и желание, утрамбую, ну а пока весит 9K... :D Всё управление "персонажем" при помощи мыши... :D
upd. Тут почти то же самое, но персонаж бегает по полю сам, при каждом ударе о стену направление движения и другие параметры меняются случайным образом: [url]http://totalvacuum.ru/sky3d.htm[/url] Остановить самоубийство о стену можно нажав мышекнопку... Возобновить бессмысленное и беспощадное блуждание по полю можно при помощи команды [code]1 forward ![/code]В смартфоне событие onmousedown не срабатывает (в отличие от onmouseup), но вместо него вроде как можно использовать что-то типа[code]: "ontouchstart" 1 forward ! ; : "ontouchend" 0 forward ! ;[/code]А вот еще небольшой пример: [url]http://totalvacuum.ru/fft.htm[/url] Переделал стек и область данных под комплексные числа, добавил слово i, которое кладет в стек мнимую единицу, сделал пока еще корявый литературный перевод си-шной реализации быстрого преобразования Фурье, нагло сворованной с [url=http://rosettacode.org/wiki/Fast_Fourier_transform#C]rosetta code[/url]... А дальше замешиваем 2 синуса, берем косинус в качестве оконной функции и рисуем спектр этого безобразия: [url]http://totalvacuum.ru/spectrum.htm[/url] :D
Вообще, удобный онлайн-полигон для обкатки идей и алгоритмов получается...
|
|
|
 |
Добавлено: Ср окт 06, 2021 16:03 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
|
Выкладывайте, посмотрим.
Выкладывайте, посмотрим.
|
|
|
 |
Добавлено: Ср июл 28, 2021 16:03 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
Victor__v писал(а): Total Vacuum писал(а): Еще загорелся идеей создания forth для x86 с такими же безразмерными ячейками стека, но это не вопрос ближайшего будущего...  Тут ООП или его подобие пилить придётся. А ещё сборку мусора) Сборку мусора - не так уж и сложно, как показала практика. Есть рабочий прототип с динамической типизацией значений на стеке; если интересно, выложу на форуме
[quote="Victor__v"][quote="Total Vacuum"]Еще загорелся идеей создания forth для x86 с такими же безразмерными ячейками стека, но это не вопрос ближайшего будущего... :)[/quote]
Тут ООП или его подобие пилить придётся. А ещё сборку мусора)[/quote]
Сборку мусора - не так уж и сложно, как показала практика. Есть рабочий прототип с динамической типизацией значений на стеке; если интересно, выложу на форуме
|
|
|
 |
Добавлено: Ср июл 28, 2021 15:38 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
Total Vacuum писал(а): Еще загорелся идеей создания forth для x86 с такими же безразмерными ячейками стека, но это не вопрос ближайшего будущего...  Тут ООП или его подобие пилить придётся. А ещё сборку мусора)
[quote="Total Vacuum"]Еще загорелся идеей создания forth для x86 с такими же безразмерными ячейками стека, но это не вопрос ближайшего будущего... :)[/quote]
Тут ООП или его подобие пилить придётся. А ещё сборку мусора)
|
|
|
 |
Добавлено: Ср июл 28, 2021 14:18 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
|
Отличная новость! У меня тут лежит парочка плат платформы Espruino (которые с JavaScript). У них есть еще вполне красивые смарт-часы bangle.js (но мне пока интереснее "таблетка" puck.js). Форт внутри как способ оперативно управлять всей набортной периферией - идеально. Для самих Ардуино это уже совершенно наглядно - любое изменение константы или цепочка действий заставляет пересобирать проект и заново программировать все (с сопутствующим закрыть-открыть терминал, чтобы не мешал загрузке). Неудобно. Посылать строки Форта в запущенный интерпретатор - гораздо лучше.
Отличная новость! У меня тут лежит парочка плат платформы Espruino (которые с JavaScript). У них есть еще вполне красивые смарт-часы bangle.js (но мне пока интереснее "таблетка" puck.js). Форт внутри как способ оперативно управлять всей набортной периферией - идеально. Для самих Ардуино это уже совершенно наглядно - любое изменение константы или цепочка действий заставляет пересобирать проект и заново программировать все (с сопутствующим закрыть-открыть терминал, чтобы не мешал загрузке). Неудобно. Посылать строки Форта в запущенный интерпретатор - гораздо лучше.
|
|
|
 |
Добавлено: Ср июл 28, 2021 01:20 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
Поковырял свою поделку пару дней, в первом приближении видно, что Форт в javascript (и, соответственно, в браузер) вполне себе впихуем...  Да, пока еще всё сырое, а некоторые вещи полностью отсутствуют или в зачаточном состоянии. Да и сам javascript я практически не знаю, да еще и забыл...  Так что на данный момент вариант с компиляцией кода средствами javascript работает медленнее, чем для такой же программы, но скомпилированной "на берегу" при помощи портативного транслятора "forth=>javascript": http://totalvacuum.ru/3d.htm versus http://totalvacuum.ru/jforth3d.htm \ можно бродить при помощи кнопок asdw или стрелок, удобнее зажать w или стрелку вверх, а направление движения менять при помощи мыши или http://totalvacuum.ru/haiku2.htm vs http://totalvacuum.ru/jforthh2.htmИспользовал такие интересные "фишки" javascript: - т.к. js - язык с динамической типизацией, то одна и та же переменная может в какой-то момент времени содержать строку, а в полночь превратиться в тыкву массив, функцию и т.д. Поэтому у нас будет необычный стек с блэкджеком и плюшками. Ячейки не имеют какой-то фиксированной разрядности. Число, строка, замысловатое ругательство? Все, что не найдено в словаре, пихается в стек и занимает там ровно одну ячейку. Непривычно, но с другой стороны очень удобно: значения читаются/записываются целиком при помощи слов @/!, а для вывода используется одно-единственное слово .; - js умеет "на лету" конструировать функции из строки: Код: let mul = new Function ('a,b','return a*b;'); let x = mul (3,4); // x = 12
Это позволяет организовать трансляцию слов прямо в подпрограммный шитый код, только в качестве примитивных машинных инструкций здесь будут использоваться вызовы функций и высоуровневые управляющие конструкции if/while/и т.д.; - в js имеется возможность доступа к элементам массива не только по индексу, но и по имени. Это дает возможность практически даром организовать словарь: Код: execute['mul'] = new Function ('', '...'); execute['div'] = new Function ('', '...');
..., а затем использовать слова из словаря Код: execute['mul'](); execute['div']();
Т.е. тут можно обойтись без списков, поиска и прочих прелестей, характерных для работы со словарями - еще узнал, что в js, оказывается, можно делить на 0, если очень хочется. В результате получается Infinity, но пока это не пригодилось...  На данный момент имеется сконструированное из говна и палок ядро Форт размером в пару-тройку килобайт (пример jforth3d.htm весит в районе 10K, но там больше половины занимает неоптимизированный исходник на Форте, т.к. переводил исходник с Си на Форт практически дословно), которое, тем не менее, в каком-то виде уже работает. Хотя, повторюсь, имеются определенные отличия от "классического" Форта: - ячейки стека/области данных неопределенной разрядности; - нестандартные управляющие конструкции и уже традиционно нетрадиционные строки вида "string"; - "для галочки" реализовал immediate и create does>, правда does> сейчас работает неправильно в ситуации с цепочками does> в одном определении Код: : abc ... does> ... does> ... does> ... ;,
но с простыми ситуациями типа Код: : constant create , does> @ ; справляется. Пока лень разбираться...  - Код: : "onmousemove" ... ; \ объявление обработчика события onmousemove; - Код: : 1000 ... ; \ объявление безымянного слова, которое будет запускаться по таймеру каждые 1000мс; - и т.д. и т.п. Так что, когда появится свободное время, буду доводить до ума. Словил себя на мысли, что forth-over-javascript - это едва ли не единственный способ получить форт-всегда-под-рукой, ведь браузеры есть и в компьютере, и в телефоне, а встроенный в них javascript работает везде примерно одинаково. А кроме того, этот вариант является одним из самых простых в реализации, т.к. многие вещи сильно упрощаются (работа со словарем, вещественная математика, графика, интернет и т.д.), а некоторые вовсе становятся ненужными. Похожие приемы сработают и в других скриптовых языках (php, python и д.р.) или в том же Лиспе, но все-таки javascript в этом плане удобнее. Еще загорелся идеей создания forth для x86 с такими же безразмерными ячейками стека, но это не вопрос ближайшего будущего... 
Поковырял свою поделку пару дней, в первом приближении видно, что Форт в javascript (и, соответственно, в браузер) вполне себе впихуем... :) Да, пока еще всё сырое, а некоторые вещи полностью отсутствуют или в зачаточном состоянии. Да и сам javascript я практически не знаю, да еще и забыл... :) Так что на данный момент вариант с компиляцией кода средствами javascript работает медленнее, чем для такой же программы, но скомпилированной "на берегу" при помощи портативного транслятора "forth=>javascript": [url]http://totalvacuum.ru/3d.htm[/url] [b]versus[/b] [url]http://totalvacuum.ru/jforth3d.htm[/url] \ можно бродить при помощи кнопок asdw или стрелок, удобнее зажать w или стрелку вверх, а направление движения менять при помощи мыши или [url]http://totalvacuum.ru/haiku2.htm[/url] [b]vs[/b] [url]http://totalvacuum.ru/jforthh2.htm[/url]
Использовал такие интересные "фишки" javascript: - т.к. js - язык с динамической типизацией, то одна и та же переменная может в какой-то момент времени содержать строку, а в полночь превратиться в [s]тыкву[/s] массив, функцию и т.д. Поэтому у нас будет необычный стек с блэкджеком и плюшками. Ячейки не имеют какой-то фиксированной разрядности. Число, строка, замысловатое ругательство? Все, что не найдено в словаре, пихается в стек и занимает там ровно одну ячейку. Непривычно, но с другой стороны очень удобно: значения читаются/записываются целиком при помощи слов @/!, а для вывода используется одно-единственное слово .; - js умеет "на лету" конструировать функции из строки: [code]let mul = new Function ('a,b','return a*b;'); let x = mul (3,4); // x = 12 [/code]Это позволяет организовать трансляцию слов прямо в подпрограммный шитый код, только в качестве примитивных машинных инструкций здесь будут использоваться вызовы функций и высоуровневые управляющие конструкции if/while/и т.д.; - в js имеется возможность доступа к элементам массива не только по индексу, но и по имени. Это дает возможность практически даром организовать словарь: [code]execute['mul'] = new Function ('', '...'); execute['div'] = new Function ('', '...'); [/code]..., а затем использовать слова из словаря [code]execute['mul'](); execute['div'](); [/code]Т.е. тут можно обойтись без списков, поиска и прочих прелестей, характерных для работы со словарями - еще узнал, что в js, оказывается, можно делить на 0, если очень хочется. В результате получается Infinity, но пока это не пригодилось... :)
На данный момент имеется [s]сконструированное из говна и палок[/s] ядро Форт размером в пару-тройку килобайт (пример jforth3d.htm весит в районе 10K, но там больше половины занимает неоптимизированный исходник на Форте, т.к. переводил исходник с Си на Форт практически дословно), которое, тем не менее, в каком-то виде уже работает. Хотя, повторюсь, имеются определенные отличия от "классического" Форта: - ячейки стека/области данных неопределенной разрядности; - нестандартные управляющие конструкции и уже традиционно нетрадиционные строки вида "string"; - "для галочки" реализовал immediate и create does>, правда does> сейчас работает неправильно в ситуации с цепочками does> в одном определении [code]: abc ... does> ... does> ... does> ... ;, [/code]но с простыми ситуациями типа [code]: constant create , does> @ ; [/code]справляется. Пока лень разбираться... :) - [code]: "onmousemove" ... ; \ объявление обработчика события onmousemove;[/code]- [code]: 1000 ... ; \ объявление безымянного слова, которое будет запускаться по таймеру каждые 1000мс;[/code]- и т.д. и т.п.
Так что, когда появится свободное время, буду доводить до ума. Словил себя на мысли, что forth-over-javascript - это едва ли не единственный способ получить форт-всегда-под-рукой, ведь браузеры есть и в компьютере, и в телефоне, а встроенный в них javascript работает везде примерно одинаково. А кроме того, этот вариант является одним из самых простых в реализации, т.к. многие вещи сильно упрощаются (работа со словарем, вещественная математика, графика, интернет и т.д.), а некоторые вовсе становятся ненужными. Похожие приемы сработают и в других скриптовых языках (php, python и д.р.) или в том же Лиспе, но все-таки javascript в этом плане удобнее. Еще загорелся идеей создания forth для x86 с такими же безразмерными ячейками стека, но это не вопрос ближайшего будущего... :)
|
|
|
 |
Добавлено: Ср июл 28, 2021 00:43 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
|
Если рассматривать Форт как полуфабрикат - да, сразу проблема "нет последователей и учеников". Только надо самому писать конечные проекты, а не захламлять и дальше полуфабрикатами помойку opensource. Форт как модуль проекта вполне смотрится.
Если рассматривать Форт как полуфабрикат - да, сразу проблема "нет последователей и учеников". Только надо самому писать конечные проекты, а не захламлять и дальше полуфабрикатами помойку opensource. Форт как модуль проекта вполне смотрится.
|
|
|
 |
Добавлено: Чт июл 08, 2021 19:44 |
|
|
 |
|
|
| |
Заголовок сообщения: |
Re: Forth over Arduino |
 |
|
Total Vacuum писал(а): nested IF умиляет... Кстати, Форт вполне может быть over что угодно, взять, например, тот же JavaScript, который в браузерах обитает. Главный вопрос тут в возможности и удобстве вызова и использования стандартных библиотечных функций и констант. Да, конечно можно, но вопрос в том кто это будет использовать и когда при незначительной базе пользователей и интереса к Форт. P.S. И, да Forth на JS в разных вариантах есть в разных исполнениях.
[quote="Total Vacuum"]nested IF умиляет... :D
Кстати, Форт вполне может быть over что угодно, взять, например, тот же JavaScript, который в браузерах обитает. Главный вопрос тут в возможности и удобстве вызова и использования стандартных библиотечных функций и констант.[/quote] Да, конечно можно, но вопрос в том кто это будет использовать и когда при незначительной базе пользователей и интереса к Форт.
P.S. И, да Forth на JS в разных вариантах есть в разных исполнениях.
|
|
|
 |
Добавлено: Чт июл 08, 2021 18:43 |
|
|
 |
|