SoftCraft
разноликое программирование

Отправная точка
Программирование
Windows API
Автоматы
Нейроинформатика
Парадигмы
Параллелизм
Проектирование
Теория
Техника кодирования
Трансляторы
Учебный процесс
Прочие вопросы

Разное

Беллетристика
Брюзжалки
Цели и задачи
Об авторе


Рецензия на книгу Шалыто А. А. "Логическое управление. Методы аппаратной и программной реализации алгоритмов"

Дмитрий Гориловский, mitgor@mail.ru

Опубликована в журнале "Компьютерра", 2002, #14, С.59.

Прослушав в институте курс лекций автора этой книги, я не мог ее не купить. В душе я патриот и потому искренне радуюсь, когда осознаю, что прочтенная мною книга является неотъемлемой частью как российской, так и мировой computer science. Уж больно осточертело видеть на лотках сплошные переводы западных бестселлеров, когда большинство наших авторов если и пишут на компьютерную тематику, то по большей части об особенностях использования тех или иных программных и аппаратных средств.

Как говорит сам автор, в книге рассматриваются методы аппаратной и программной реализации алгоритмов логического управления. В рамках проблемы логического проектирования возникает необходимость исследования класса булевых функций, а также их частного случая - булевых формул. Особое внимание уделяется бесповторным (в определенном базисе) булевым формулам. Рассмотрен метод реализации булевых функций из произвольных, но заранее оговоренных элементов, а также реализация схемами из мультиплексоров. Очень интересны главы о нетрадиционных методах вычисления булевых функций и об их реализации с помощью арифметических полиномов.

Логическим завершением книги является глава, посвященная Switch-технологии. Автор предлагает новую, более систематизированную парадигму программирования и аппаратной реализации алгоритмов. В корень системы поставлено понятие "Состояние", что автоматически заставляет разработчика вводить жесткую иерархию как на саму систему, так и на внутрисистемное управление. Более того, предложенная технология позволяет достичь максимального соответствия постановки задачи и ее реализации в коде, а ведь именно на этом этапе закрадывается большинство ошибок при программировании.

Проведенная в книге аналогия между аппаратными и программными реализациями алгоритмов позволяет надеяться, что в недалеком будущем появятся программы, работающие столь же надежно, как и современное "железо". Многие читатели поспешат упрекнуть меня в наивности, но мой однокурсник, написав программу по Switch-идеологии, удивлено воскликнул: "Она заработала с первого раза!" И в самом деле, сколько можно терпеть: даже признанные лидеры софтверного бизнеса (в отличие от бизнеса "железного") во всех лицензиях на свои продукты пишут, что никакой "серьезной" ответственности за некорректную работу программ они не несут.

Итак, подведем итоги: "Конец разгильдяйству в программировании! Даешь Надежный Код!" Всем, кто хоть как-нибудь согласен с этим лозунгом, настоятельно рекомендую прочесть книгу А. Шалыто.