На Ардуино (AVR) это одно и то же.
Хотя бы один раз, да есть!
На Ардуино (AVR) это одно и то же.
Хотя бы один раз, да есть!
Друзья, пока вот эта сентенция нормально работает. Тем не менее, штудирую предложенные ссылки. Не все понимаю, но стараюсь.
Всем спасибо!
а что там непонятно? В С/С++ выражение вычисляется в типе операндов, а не в типе переменной результата
Я на работе пишу программу для панели HMI, от Delta Electronics.
Так вот там в качестве ЯП(помимо макросов), предлагается использовать Lua.
Вот где трэш и угар.
Переменную обьявляй где захочешь, для объявления достаточно в любом месте написать что то типа: myVal=2 или myVal2=”hello”, все переменные глобальные, тип компилятор сам определит. Все числа по умолчанию float.
Вот с этими числами прям засада.
Для вывода на панель нужны целые, а они все после умножения или деления дробные. Приходится округлять.
Скажем:
myVal может быть целым числом.
А
myVal=myVal*3
или
myVal=myVal/5
Уже дробное, (даже если первое значение было 10).
Но потом после
myVal=math.ceil(myVal) или myVal=math.floor(myVal)
Оно уже обратно целое.
Причем компилятору пофигу на этот момент, что бы понять что херню написал, надо загрузить все в панель и тогда она уже орать начинает, при чем только в том месте программы которое вызывается в данном окне.(Короче когда интерпретатор дойдет до этого места в программе)
Ужасный язык, лучше бы на С/С++ было.
На самом деле, всё ещё проще. Присваивание – это такая же операция, как все остальные. Т.е. присваивание это новая операция, а не “запоминание результата предыдущей”.
Не тот язык назвали брейнфаком ![]()
Там ещё танцы и пляски с массивами.
Которые могут быть так же таблицами .
Программа сама решит, что ты хотел, массив или таблицу ![]()
И вся эта шляпа только из-за того, что размер интерпретатора всего пара сотен килобайт. А стало быть его можно запихать в железяку. (Эта же херь используется в качестве языка в NodeMCU на базе ESP8266 я ей там ни разу не пользовался).
А на амперке один «товарищ» обожает Lua )))
Я всегда думал, что самый “мозголомный” это Forth.
Так и не смог в него “въехать”.
А где его сейчас применяют?
Везде, где нужна автоматизация
Наверное уместнее вопрос не “где”, а “кто”.
Так то Forth есть для чего угодно, для avr в том числе.
О как. Не знал…
Писать лень, ответ от ДипСик:
Если коротко, Forth применяется там, где нужен полный контроль над “железом” в условиях крайне ограниченных ресурсов.
Вот основные области его применения:
Это, пожалуй, самый известный пример успеха Forth.
· Космический аппарат “Иннопорт” и “Иннопорт-2”: Разработанные в России, эти аппараты использовали Forth в качестве бортового языка программирования. Это позволило инженерам гибко управлять системами аппарата и даже обновлять ПО уже в полете.
· Спутники и МКС: Forth использовался для программирования бортовых компьютеров некоторых спутников и для управления экспериментами на Международной космической станции (например, эксперимент “Плазменный кристалл”).
· Шаттлы: Некоторые системы шаттлов NASA также были запрограммированы на Forth.
Почему здесь? Надежность, возможность отладки и изменения кода в реальном времени, а также крошечный размер интерпретатора.
Это самая обширная область применения Forth сегодня.
· Промышленная автоматизация: Программируемые логические контроллеры (ПЛК), управление станками, роботами и производственными линиями.
· Бытовые устройства: Прошивки для принтеров, жестких дисков (известный пример — контроллеры фирмы Seagate), модемов, маршрутизаторов.
· Медицинское оборудование: Для устройств, где требуется точное управление и обработка данных в реальном времени.
· Автомобильная электроника: Управление двигателем, антиблокировочной системой (ABS).
Почему здесь? Прямой доступ к портам ввода-вывода, очень малое потребление памяти (как RAM, так и ROM), высокая производительность.
Forth часто используется на самых ранних этапах разработки нового “железа”.
· Прошивки (Firmware): Forth может быть прошит в ПЗУ микроконтроллера и служить основой для дальнейшей разработки.
· Тестирование оборудования: Инженеры используют Forth для быстрого создания тестовых программ, проверяющих работу новых чипов и плат.
· Bootloader’ы: Некоторые загрузчики операционных систем написаны на Forth из-за их компактности.
· Радиоастрономия: Например, Forth использовался для управления большими радиотелескопами.
· Экспериментальная физика: Для сбора данных и управления сложными установками в реальном времени.
· Океанография: На бортовых компьютерах исследовательских зондов и буев.
Почему здесь? Возможность быстрого прототипирования и взаимодействия с нестандартным лабораторным оборудованием.
· Изучение компьютерной архитектуры: Forth — прекрасный инструмент для понимания того, как работают компьютеры на низком уровне. Его можно запустить на простейшем микроконтроллере (например, Arduino или ESP32).
· Самодельные компьютеры: Энтузиасты, создающие компьютеры “с нуля” (например, на базе процессоров 6502 или Z80), часто выбирают Forth в качестве своей первой операционной системы и языка программирования из-за его простоты и мощи.
· Retrocomputing: Forth был популярен на домашних компьютерах 80-х (например, Sinclair ZX Spectrum, BBC Micro), и до сих пор используется энтузиастами этой эпохи.
Ключевые преимущества, определяющие области применения:
Не всё так однозначно. Forth использует “шитый” код, когда из нескольких исполняемых конструкций (слов), создается другое слово, запоминается в “словаре” и потом может использоваться для составления других исполняемых слов. В классической гарвардской архитектуре, где в ОЗУ нельзя хранить исполняемый код, это делать несколько проблематично. Вернее, хранить то что угодно можно, выполнять нельзя.
Кстати, в деццтве я думал, что “шитый” код - это от слова “shit”. И был недалёк от истинов.
КМК, всё тоже делается на макроассемблере, с которым значительно проще и нагляднее.
Да ё-моё! Это вам, гуру, все понятно! А я на каждой итерации или вспоминаю, что делал (“по совету друзей“) или лезу сюда на сайт или в справочники. Слава Богу, хоть с логикой у меня прилично. И то не всегда помогает. У нас разные “весовые категории”. Я знаю, как человека правильно разрезать, а потом правильно сшить. А как “сшить“ простейший скетч - приходится напружинивать мозги. Иногда без толку… Так что, не бейте по больному.
Нельзя, это чрезвычайно опасно.
Вы ведь лучше меня знаете, что боль – это защитный механизм предотвращения повреждения тканей или психологического неблагополучия.
Так что бьём по больному исключительно из заботы о Вас! ![]()
Я запихивал его в железяку, как замену PHP . У нас был веб сервер на железке, а скриптового языка - не было. Вкорячили Lua. Отлично справился с задачей ![]()
запросы отрабатывал не PHP а LUA?