UAVpilot писал(а):torvn77 писал(а):Нет, hal правильнее определить как язык описания потоков данных между источниками, обработчиками и приёмниками.
Не надо выдумывать!

Есть такие языки как Verilog - HAL в LinuxCNC очень упрощённый вариант такого языка.
1) Хал не может быть языком отношений, каким к примеру является Пролог, по той причине, что в нём присутствует время.
Например в прологе двойное отрицание будет выполнятся сразу, в хале правильный результат будет приходить с задержкой.
2) продолжая сравнение с тем же прологом встаёт вопрос, как осуществить получение новых значений с пина, ведь датчик может быть замкнут или разомкнут(в Прологе вообще нового значения нет как понятия).
В Прологе скорее всего это будет какая то всё возрастающей глубины рекурсия от первоначального запроса, то есть хал должен был бы хранить все свои предыдущие состояния и забить ими всё ОЗУ.
Но хал не хранит свои состояния и не ищет ответ как рекурсию от начала, он просто передаёт данные о состоянии пина, что больше похоже не на логическое описание, а на описание связей элементов с императивным программированием.
3) Если воспринимать хал как язык логических отношений, то если я при запущенной программе что либо меняю в хал с помощью halcmd то это будет две разных программы.
Но по факту то программа остаётся той же, перезагрузки её в ОЗУ не происходит, и на этот момент программа выпадает из твоей концепции хала как языка описания логических отношений.
А вот если смотреть на хал как на язык описания потоков, то выпадения программы из концепции не происходит, с этой точки зрения либо осуществляется прокладка трубы(net), либо подкручивание краника(setp,sets)
Я не настаиваю на придуманных мной терминах источник, приёмник и обработчик, может есть другие слова,
но для меня именно эти слова лучше всего описывают то, как хал ощущается при непосредственной с ним работе.
У гуманитариев есть наблюдение:
"Смысл литературного произведения состоит из трёх вещей:
1. То, что писатель сказал
2. То что писатель хотел сказать, но не смог
3. и то, что писатель не собирался говорить, но тем не менее сказал.
Вот по п.3 хал и является языком описания потоков, хотя как я тебя понимаю он происходит от языка описания логических отношений.