1.5. ОСОБЕННОСТИ ПРОГРАММНЫХ РАЗРАБОТОК
1.5. ОСОБЕННОСТИ ПРОГРАММНЫХ РАЗРАБОТОК
Томас Кун в 1977 г. определил термин «парадигма» как свод норм научного мышления. Парадигма — это правило (modus operandi) развития научного знания. Оно в течение определенного времени дает научному сообществу модель постановки проблем и их решений.
Когда та или иная методология применяется во время стадии кодирования (реализации), очень часто ее называют парадигмой программирования — способом мышления в программировании.
В программировании существуют различные концепции языков (парадигмы), которые при написании программ могут приводить как к одним и тем же, так и радикально различным подходам. Более того, для ряда языков необходим «свой» тип мышления, особые технологии разработки, особая школа обучения. Большинство программистов используют в работе один-два языка программирования в рамках одной парадигмы. Иногда программисту бывает трудно понять чью-то программу, реализованную в непривычной для него парадигме. В противовес изменению цели проекта под используемый язык в ряде проектных случаев рационально избрать иной язык программирования.
Приемы и способы программирования конкретного программиста определяются используемым языком. Часто в стороне остаются альтернативные подходы к цели, а следовательно, не используются оптимальные решения в выборе парадигмы, соответствующей решаемой задаче. Ниже дан список основных парадигм программирования вместе с присущими им видами абстракций:
— процедурно-ориентированные — алгоритмы;
— объектно-ориентированные — классы и объекты;
— логически-ориентированные — цели, выраженные в исчислении предикатов;
— ориентированные на правила — правила «если…, то…»;
— ориентированные на ограничения — инвариантные соотношения;
— параллельное программирование — потоки данных. Существуют и другие парадигмы. Почему же их столько? Отчасти потому, что программирование — сравнительно новая
дисциплина, а отчасти — из-за желания людей решать разные задачи. Кроме того, наиболее популярная в данный момент компьютерная архитектура не является единственной. В настоящее время проводится большое число экспериментов с машинами, имеющими нестандартные архитектуры, многие из которых рассчитаны на применение других парадигм программирования, например числа Фибоначчи. Общая природа цифровых машин позволяет с большей или меньшей эффективностью моделировать одну архитектуру с помощью другой. Из архитектур наиболее удачны те, в которых за счет аппаратуры и программного обеспечения достигнута наивысшая скорость и простота использования.
Невозможно назвать какую-либо парадигму наилучшей во всех областях практического применения. Например, для проектирования баз знаний более пригодна парадигма, ориентированная на правила. Объектно-ориентированная парадигма является наиболее приемлемой для широкого круга задач, связанных с большими промышленными системами, в которых основной проблемой является сложность.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Глава 23 Будущее программных продуктов
Глава 23 Будущее программных продуктов Напрашивается закономерный вопрос: «Какие технологии помогут созданию продуктов, обеспечивающих безопасность, в будущем?» Конечно, криптография постоянно улучшается. Несомненно, мы все лучше и лучше проектируем брандмауэры. Будет
1.11. Найдите хорошего партнера, работающего в сфере веб-разработок
1.11. Найдите хорошего партнера, работающего в сфере веб-разработок Сложность создания и поддержки современного веб-сайта настолько велика, что решение этой задачи только собственными силами компании, как правило, невозможно и экономически нецелесообразно (хотя на первый
Применение «родных» программных интерфейсов
Применение «родных» программных интерфейсов Всесторонний программный интерфейс Qt удовлетворяет большинству требований на всех платформах, но при некоторых обстоятельствах нам может потребоваться базовый, платформозависимый программный интерфейс. В данном разделе
4.11. Ограничения программных каналов и FIFO
4.11. Ограничения программных каналов и FIFO На программные каналы и каналы FIFO системой накладываются всего два ограничения:? OPEN_MAX — максимальное количество дескрипторов, которые могут быть одновременно открыты некоторым процессом (Posix устанавливает для этой величины
Автоматизированное внедрение программных продуктов
Автоматизированное внедрение программных продуктов Методология ASAP — это классический пример CASE-среды, которая направлена на ускорение проекта внедрения с помощью опыта, накопленного за время предыдущих проектов SAP, и нацелена на дальнейший прогресс в этом направлении.
Глава 2 ОПТИМИЗАЦИЯ ПРОГРАММНЫХ РАЗРАБОТОК
Глава 2 ОПТИМИЗАЦИЯ ПРОГРАММНЫХ РАЗРАБОТОК 2.1. ВЫБОР ОПТИМАЛЬНОГО ВАРИАНТА ПРОЕКТНОГО РЕШЕНИЯ На разных этапах проектирования (особенно часто на начальных этапах) перед разработчиком встает задача выбора наилучшего варианта из множества допустимых проектных решений,
Глава 6 АРХИТЕКТУРА ПРОГРАММНЫХ СИСТЕМ
Глава 6 АРХИТЕКТУРА ПРОГРАММНЫХ СИСТЕМ 6.1. ПОНЯТИЕ АРХИТЕКТУРЫ ПРОГРАММНОЙ СИСТЕМЫ Разработка архитектуры системы — это процесс разбиения большой системы на более мелкие части. Для обозначения этих частей придумано множество названий: программы, компоненты,
Глава 12 МЕНЕДЖМЕНТ ПРОГРАММНЫХ РАЗРАБОТОК
Глава 12 МЕНЕДЖМЕНТ ПРОГРАММНЫХ РАЗРАБОТОК 12.1. УПРАВЛЕНИЕ РАЗРАБОТКОЙ ПРОГРАММНЫХ СИСТЕМ Управление разработкой программных систем (software management) — это деятельность, направленная на обеспечение необходимых условий для работы коллектива разработчиков программного
12.1. УПРАВЛЕНИЕ РАЗРАБОТКОЙ ПРОГРАММНЫХ СИСТЕМ
12.1. УПРАВЛЕНИЕ РАЗРАБОТКОЙ ПРОГРАММНЫХ СИСТЕМ Управление разработкой программных систем (software management) — это деятельность, направленная на обеспечение необходимых условий для работы коллектива разработчиков программного обеспечения (ПО), на планирование и контроль