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

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

Разное

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


ВЗГЛЯД НА АЛГОРИТМЫ

Г. И. Рузайкин

Передано для опубликования в журнале "Мир компьютерной автоматизации", 2001, № 3.

Взяв в руки книгу А.А.Шалыто, выпущенную Санкт-Петербургским издательством "Наука", я испытал чувство удовлетворения не столько от ее фундаментального объема, сколько от того что она находится в обойме произведений, дающих представление о программировании не через описание "оконного" интерфейса, а посредством реализации алгоритмов. Хорошо известно, что, отправляясь от понимания программы в виде текста, в ходе работы над ней непременно приходится выделять алгоритмическую и аппаратную сущности, поэтому данная книга, излагающая методы аппаратной и программной реализации алгоритмов, будет полезна не только специалистам в области управляющих систем, но и широкому кругу читателей, интересующихся проблемами программирования. Так, "Методы аппаратной и программной реализации алгоритмов" (www. techkniga.spb.ru) займут достойное место рядом с "Искусством программирования" Д.Кнута и "Структурами данных и алгоритмами" А.Ахо, Дх.Хопкрофта и Д.Ульмана.

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

Не оставлены без внимания в книге методы построения бинарных графов для автоматов без памяти и программная реализация автоматов с памятью. Особый интерес в книге представляет завершающая глава (с номером 21) "SWITCH-технология. Алгоритмизация и программирование для систем логического управления и "реактивных" систем", которая содержит "основные положения" концепции программирования, предлагаемой автором. По существу автор исходит из системного взгляда на взаимодействие алгоритма и программы при рассмотрении логического управления. В основу положено понятие "состояниe", что позволяет разработчику не только наиболее полно отразить сущность объекта, но и адекватно построить алгоритм управления. На сегодня необходимость подобного подхода стала очевидной в связи с широко распространенным представлением систем управления в виде менеджмент-систем, в которых вместо состояний рассматриваются бизнес-процессы, т.е. вместо исходных систем их суперпозиции. При этом равносильность, как правило, не устанавливается. Отсюда проистекает большинство бед, преодолеваемых автором с помощью предлагаемой технологии. Разумеется, что в рамках SWITCH-технологии, по мнению А.А.Шалыто, работают изложенные в книге методы.

Завершая рецензию, следует заметить, что книга вполне академический труд, но она рекомендована в качестве пособия для студентов и аспирантов. Далее, при столь обстоятельном разговоре с читателем все же остается сожаление, что в ней отсутствует исторический раздел. Необходимость в нем, по крайней мере, двоякая. Во-первых, чтобы творчески воспринимать материал книги, полезно получить его в историческом контексте. Во-вторых, на сломе веков, возможно в связи с быстрым ростом информационных технологий, в печатной продукции охотнее описывают отличия в версиях продуктов, нежели их технологические особенности, что, естественно, приводит к разрыву теоретических и технологических знаний. Вот здесь история и поможет. Еще раз проголосую за полезность и своевременность данной книги.