- •1. Парадигмы программирования: императивная, функциональная, логическая. Применение различных парадигм программирования для решения различных задач.
- •Применение различных парадигм программирования для решения различных задач.
- •If логическое условие then оператор_1
- •Оператор выбора
- •Результат выполнения:
- •Оператор перехода
- •Поток управления. Управляющие конструкции языка программирования.
- •Примеры программирования вычислительных процессов с разветвлением
- •Информация во время выполнения программы имеет вид:
- •Вопрос 2
- •Модульное программирование.
- •Модульность программного кода
- •Модульная технология программирования
- •5 Формализация синтаксиса и семантики языков программирования. Способы описания языков программирования
Модульное программирование.
Модульность в языках программирования — принцип, согласно которому программное средство (ПС, программа, библиотека, веб-приложение и др.) разделяется на отдельные именованные сущности, называемые модулями. Модульность часто является средством упрощения задачи проектирования ПС и распределения процесса разработки ПС между группами разработчиков. При разбиении ПС на модули для каждого модуля указывается реализуемая им функциональность, а также связи с другими модулями.[1]
Роль модулей могут играть структуры данных, библиотеки функций, классы, сервисы и др. программные единицы, реализующие некоторую функциональность и предоставляющие интерфейс к ней.
Модульность программного кода
Программный код часто разбивается на несколько файлов, каждый из которых компилируется отдельно от остальных. Такая модульность программного кода позволяет значительно уменьшить время перекомпиляции при изменениях, вносимых лишь в небольшое количество исходных файлов, и упрощает групповую разработку. Также это возможность замены отдельных компонентов (таких как jar-файлы, so или dll библиотеки) конечного программного продукта, без необходимости пересборки всего проекта (например, разработка плагинов к уже готовой программе).
Одним из методов написания модульных программ является объектно-ориентированное программирование. ООП обеспечивает высокую степень модульности благодаря таким свойствам, как инкапсуляция, полиморфизм и позднее связывание.
Модульное программирование является фундаментом многих используемых сегодня технологий программирования, базирующихся на самодостаточных кодовых модулях. Им не требуется внешняя поддержка, поэтому, как правило, они могут работать на различных аппаратных платформах и под различными операционными системами. Любую часть логической структуры модульной программы можно изменить, не вызывая изменений в остальных частях программы. Модуль характеризуются тем, что: - на входе программный модуль получает определенный набор исходных данных, выполняет их содержательную обработку и возвращает один набор результатных данных; - модуль в состоянии выполнить все предписанные ему операции (функциональная завершенность); - результат работы программного модуля зависит только от исходных данных, но не зависит от работы других модулей (логическая независимость); - обмен информацией между модулями должен быть по возможности минимизирован; - модуль должен быть обозримого размера и сложности. Модульный подход обладает рядом неоспоримых преимуществ, однако, он накладывает определенные ограничения на программиста и требует аккуратности на этапе проектирования. Модульное программирование поддерживается многими алгоритмическими языками, начиная от Модула, который был одним из первых языков этого класса, и кончая развитием идей модульности в языках Модула-2, Аda-95 и др..
В структурированных программах обычно легко прослеживается основной алгоритм, они удобнее в отладке и менее чувствительны к ошибкам программирования. Эти свойства являются следствием важной особенности подпрограмм, каждая из которых представляет собой во многом самостоятельный фрагмент программы, связанный с основной программой лишь с помощью нескольких параметров. Такая самостоятельность подпрограмм позволяет локализовать в них все детали программной реализации того илииного алгоритмического действия, и поэтому изменение этих деталей, например в процессе отладки, обычно не приводит к изменениям основной программы.
