ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
12 июля
421175 Топик полностью
fk0, легенда (01.07.2013 20:43, просмотров: 76) ответил scorpion на жуть какая ... А мы то всё об армах-кортексах :)
И мне подумалось. Вообще есть два метода подхода к разработке чего-либо, особенно в области, где речь идёт о задачах управления. Первый подход: а-ля кофе-машина. Которая не понимает, что предыдущий пользователь забыл забрать стакан, поверх него выстреливает ещё один стакан и заливает горячим кофе ноги следующего пользователя... Работа машины управляется просто, например, с привязкой ко времени: в нужные моменты включаются и выключаются нужные механизмы, рисуются надписи на дисплее и т.п. "Логики" там нет никакой, только жёстко заданная последовательность операций. В лучшем случае -- какие-либо датчики препятствующие запуску, в т.ч. и "датчик денег". Преимущества такого подхода, при всех прочих -- простота. А если что-то не работает или работает неправильно -- с точки зрения пользователя это просто "не работает" и ему не важно, кончилась вода, кончилось кофе, что-то сломалось, заклинило стакан и т.п. И такой подход может же использоваться и в сфере программного обеспечения, например. Типичный пример -- последовательно вызываются функции ОС для выполнения каких-либо действий без проверки ошибок, без какой-то логической обработки входных данных, в надежде на то, что в 90% случаев оно сработает (ошибок не возникнет, виндовс обязательно установлен на диск C:, нужные файлы находятся на нужных местах и т.п.) И есть второй подход, не знаю как его назвать, "логический". Он может состоять из множества шагов или состояний, которые предваряются различными логическими условиями -- алгоритм не линейный и зависит от внешних данных и результат тоже от них зависит. Такой подход существенно сложней, он практически не реализуем при механическом управлении, трудно реализуем при электронном (жёстко заданная схема), и в основном реализуется посредством встроенного ПО. А внутри может быть методология программмирования конечных автоматов Шалыто, например (в рамках embedded) или что по-хуже с Lisp'ами и Prolog'ами. И поведение автомата может быть вовсе недетерминированным вне зависимости от входных данных (одинаковое поведение при одинаковых входных данных может вести к зацикливанию в ошибочной ситуации, когда она постоянно повторяется и выход из ошибочной ситуации обрабатывается одинаковым образом) -- некий элемент fuzzy logic. И мне подумалось. Может быть второй подход он и не нужен никому, кроме космонавтов, да и те летают по "циклограмме". Слишком он сложный в разработке. Утрирую, но чаще так.
[ZX]