Опубликован: 11.02.2005 | Уровень: специалист | Доступ: платный
Лекция 18:

Методы по отношению к стилям

< Лекция 17 || Лекция 18
Ключевые слова: конкретизация

Мы рассмотрим лишь методы высшего уровня. Их конкретизации (например, метод динамического программирования как конкретизация метода потока данных), конечно же, подчиняются общим закономерностям, но могут из-за большей конкретности либо сглаживать их, либо обострять1Чаще всего в одних аспектах они сглаживают концептуальные противоречия (не устраняя их полностью), а в других обостряют.. Скажем, метод динамического программирования приводит к почти безнадежной неэффективности либо неэстетичности программ во всех стилях, кроме циклического варианта структурного стиля.

Дадим первый вариант сводки известных сочетаемостей и несочетаемостей. Он не оформлен в виде таблицы, поскольку его пункты зачастую требуют комментариев.

  1. Метод потока данных.

    Отлично сочетается со структурным программированием в его циклической форме. Даже если поток данных слишком сложен для прямого представления в качестве структуры данных в программе, он является ядром понимания и перестройки алгоритма, заставляя осознать и документировать сеть данных.

    Хорошо сочетается:

    • с программированием от событий, если данные сами по себе не слишком сложные, а их взаимосвязи в потоке динамичны;
    • с сентенциальным программированием в форме конкретизации, если данные достаточно широкие, иерархически структурированы, а их перестройки в основном глобальные.

    Плохо сочетается с сентенциальными методами унификации и возвратов, программированием от приоритетов, функциональным программированием, автоматным программированием.

  2. Метод таблиц.

    Отлично сочетается с автоматным программированием как в последовательной, так и в параллельной форме.

    Хорошо сочетается с сентенциальным программированием в обоих видах и с программированием от приоритетов.

    Удовлетворительно сочетается с функциональным программированием.

    Плохо сочетается с программированием от событий и со структурным программированием в обеих формах.

  3. Метод нисходящего проектирования.

    Отлично сочетается со структурным программированием в обеих формах, с функциональным программированием и с унификационным вариантом сентенциального.

    Удовлетворительно либо плохо сочетается со всеми остальными.

  4. Метод восходящего проектирования.

    Отлично сочетается со всеми формами событийного и автоматного программирования.

    Удовлетворительно либо плохо сочетается с остальными.

  5. Метод программирования в ширину.

    Отлично сочетается с сентенциальным программированием, с событийным и автоматным программированием.

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

  6. Метод макроподстановок.

    Отлично сочетается с функциональным и сентенциальным программированием.

    Плохо сочетается с остальными.

  7. Метод динамического порождения программ.

    Отлично сочетается с функциональным и сентенциальным программированием.

    Плохо сочетается с остальными.

  8. Метод индукции и инвариантов.

    Отлично сочетается с рекурсивным вариантом структурного программирования.

    Хорошо сочетается с циклическим вариантом рекурсивного программирования, когда поток данных простой, и с унификационным вариантом сентенциального программирования.

    Плохо сочетается со всеми остальными.

< Лекция 17 || Лекция 18
Илья Ардов
Илья Ардов

Добрый день!

Я записан на программу. Куда высылать договор и диплом?

Дарья Федотова
Дарья Федотова
Феофан Миков
Феофан Миков
Россия, Томск, ТПУ, 2013
Виталий Лусников
Виталий Лусников
Россия, Киров, ВятГГУ, 2001