Программирование основанное на модульной структуре

Структурированное программирование (иногда известное как модульное программирование) — это парадигма программирования. Которая облегчает создание программ с читаемым кодом и повторно используемыми компонентами. Все современные языки программирования поддерживают структурированное программирование. Но механизмы поддержки. Как и синтаксис языков программирования, различны.

Там, где модули или элементы кода могут быть повторно использованы из библиотеки. Также может быть возможно построение структурированного кода с использованием модулей. Написанных на разных языках. Если они могут подчиняться общему интерфейсу модуля или спецификации интерфейса прикладной программы (

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

Структурированное программирование поощряет разделение прикладной программы на иерархию модулей или автономных элементов, которые. В свою очередь. Могут содержать другие подобные элементы. Внутри каждого элемента код может быть дополнительно структурирован с использованием блоков связанной логики. Предназначенных для улучшения читаемости и ремонтопригодности. Они могут включать case, который проверяет переменную на соответствие набору значений; Repeat, while и for, которые строят циклы. Продолжающиеся до тех пор. Пока условие не будет выполнено. Во всех структурированных языках программирования безусловная передача управления. Или goto заявление. Которое устарело. А иногда даже недоступно.

Разница между структурированными и неструктурированными языками программирования

Структурированный язык программирования облегчает или навязывает практику структурированного программирования. Эти методы также могут быть поддержаны неструктурированными языками. Но это потребует определенных шагов в разработке и реализации программ. Таким образом. Практика структурированного программирования восходит к появлению структурированных языков программирования.

Теоретическая основа структурированного программирования восходит к 1950-м годам. Когда появились языки ALGOL 58 и 60. До тех пор ясность кода снижалась из-за необходимости создавать тесты условий/действий. Заставляя программистов писать связанные тесты и действия явно (используя оператор goto или его эквивалент). Что приводило к тому. Что часто называлось спагетти-кодом. АЛГОЛ включал блочную структуру. Где элемент кода включал условие и действие.

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

Современные языки программирования универсально способны создавать структурированный код. Точно так же они также способны создавать код. Справедливо описываемый как неструктурированный. Если он используется неправильно. Некоторые скажут. Что неструктурированный язык программирования содержит операторы goto и. Таким образом. Не требует Лучше сказать. Что механизмы принуждения к структуре варьируются в зависимости от языка. Причем некоторые языки требуют структуры. А другие принимают менее структурированный код.

Типы структурированного программирования

Структурированное программирование можно разделить на три категории. В том числе:

Процедурное программирование. Определяет модули как Процедурный язык начнет процесс. Которому затем будут даны данные. Это также самая распространенная категория и недавно была разделена на следующие:

  • Сервис-ориентированное программирование просто определяет повторно используемые модули как
  • Программирование микросервисов фокусируется на создании модулей. Которые не хранят данные внутри. И поэтому являются масштабируемыми и устойчивыми в облачном развертывании.
  • Функциональное программирование, с технической точки зрения, означает. Что модули пишутся из функций. А выходные данные этих функций выводятся только из их входных данных. Разработанное для бессерверных вычислений определение функционального программирования с тех пор расширилось и стало в значительной степени синонимом микросервисов.

Объектно-ориентированное программирование (ООП). Определяет программу как набор объектов или ресурсов. Которым передаются команды. Объектно-ориентированный язык определяет ресурс данных и отправляет его в команды обработки. Например, процедурный программист может сказать

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

Компоненты структурированного программирования

На высоком уровне структурированные программы состоят из структурной иерархии. Начинающейся с основного процесса и разлагающейся вниз на более низкие уровни. Как диктует логика. Эти нижние структуры являются модулями программы. И модули могут содержать как вызовы других (более низкого уровня) модулей. Так и блоки. Представляющие структурированные комбинации условий/действий. Все это может быть объединено в один модуль или блок кода или разбито на несколько модулей. Находящихся в библиотеках.

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

Структурированные программы и модули. Как правило. Имеют файл заголовка или раздел. Который описывает модули или библиотеки. На которые ссылаются. И структуру параметров и интерфейса модуля. В некоторых языках программирования описание интерфейса абстрагируется в отдельный файл. Который затем реализуется одним или несколькими другими блоками кода.

Преимущества структурированного программирования

Основными преимуществами структурированного программирования являются:

  1. Он поощряет реализацию сверху вниз. Что улучшает как читабельность. Так и ремонтопригодность кода.
  2. Это способствует повторному использованию кода. Поскольку даже внутренние модули могут быть извлечены и сделаны независимыми. Размещенными в библиотеках. Описанными в каталогах и ссылками на многие другие приложения.
  3. Общепризнано. Что время разработки и качество кода улучшаются благодаря структурированному программированию.

Эти преимущества обычно рассматриваются как убедительные. Даже решающие. И почти все современные разработки программного обеспечения используют структурированное программирование.

Недостатки структурированного программирования

Самым большим недостатком структурированного программирования является снижение эффективности выполнения с последующим увеличением использования памяти. Обе эти проблемы возникают из-за введения вызовов к модулю или процессу. Который затем возвращается к вызывающему. Когда это сделано. Системные параметры и системные ресурсы сохраняются в стеке (очередь. Организованная как LIFO. Или last-in-first-out) и выскакивала при необходимости. Чем больше программная логика декомпозируется. То есть чем больше модулей задействовано. Тем больше накладные расходы. Связанные с интерфейсом модуля. Все структурированные языки программирования подвержены риску

Структурированное программирование также может быть применено неправильно. Если выбранный тип структуры не подходит для данной задачи. Самый известный пример — решение математических задач. RPL-это эффективный способ постановки и решения математической задачи. Поскольку он устраняет необходимость явно указывать порядок выполнения и устраняет рекурсию в коде. Однако, если бы эта проблема была поставлена в процедурной или объектной форме структурированного программирования. Полученный код был бы гораздо менее эффективным. Чем версия RPL.