Какая модель построения программ лежит в основе технологии процедурного программирования

В результате исследовательских работ 60-70-ых годов XX века была разработана технология процедурного (говорят еще структурного, модульного программирования), внесшая ясность в написание программ, простоту тестирования и отладки, легкость модификации. Технология процедурного программирования – это дисциплинированный подход к написанию программ по сравнению с неструктурированными программами. Процедурное программирование основано на модели построения программы как иерархии подпрограмм (процедур), отсюда и название метода.

Для изучения процедурного программирования в 1971 году Н. Виртом был создан язык программирования Pascal, нашедший большое применение в университетах. На протяжении 70-ых годов создавался язык С на базе концепции предшествующих двух языков – BCPL и B, разработанных для написания компиляторов и операционных систем. Язык C получил широкую популярность в результате его использования в разработке операционной системы UNIX. В конце 70-ых был создан «классический» язык Кернигана и Ритчи. На этом языке были написаны фактически все новые операционные системы и системные программные продукты.

Ликбез программиста #1: Парадигмы программирования — ООП, ФП…

Технология процедурного программирования основана на использовании следующих методов (приёмов) программирования:

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

Метод структурного программирования заключается в следующем:

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

Наиболее известными процедурными языками программирования являются PL1, ALGOL-68, Pascal, C, C++.

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

В связи с этим, проявились недостатки технологии процедурного программирования:

ПРОЦЕДУРНОЕ ПРОГРАММИРОВАНИЕ

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

Процедурное программирование не обеспечивает в достаточной степени абстракции данных. Потребовался основной принцип абстрактного типа данных: никакие другие подпрограммы, кроме специальных, не должны иметь доступа к этим данным. Для реализации абстрактного типа данных был предложен новый тип — класс, как совокупность данных и подпрограмм.

Источник: studfile.net

Что такое процедурное программирование?

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

Прежде чем мы начнем, важно знать, что такое парадигма. Согласно многим цитируемым определениям, парадигма – это «набор предположений, концепций, ценностей и практик, которые представляют собой способ рассмотрения реальности для сообщества, которое разделяет их, особенно в интеллектуальной дисциплине ».

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

Что такое процедурное программирование?

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

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

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

Ключевые особенности процедурного программирования

Ключевые особенности процедурного программирования приведены ниже:

  • Предопределенные функции. Предопределенная функция – это обычно инструкция, идентифицируемая именем. Обычно предопределенные функции встроены в языки программирования более высокого уровня , но они получены из библиотеки или реестра, а не из программы. Одним из примеров предопределенной функции является charAt (), которая ищет позицию символа в строке.
  • Локальная переменная . Локальная переменная – это переменная, которая объявлена ​​в основной структуре метода и ограничена локальной областью действия, которую она задает. Локальная переменная может использоваться только в том методе, в котором она определена, и, если она будет использоваться вне определенного метода, код перестанет работать.
  • Глобальная переменная . Глобальная переменная – это переменная, которая объявляется вне любой другой функции, определенной в коде. Благодаря этому глобальные переменные могут использоваться во всех функциях, в отличие от локальной переменной.
  • Модульность : Модульность – это когда две разные системы имеют под рукой две разные задачи, но сгруппированы вместе, чтобы сначала выполнить более крупную задачу. В этом случае каждая группа систем будет выполнять свои собственные задачи один за другим, пока все задачи не будут выполнены.
  • Передача параметров: Передача параметров – это механизм, используемый для передачи параметров в функции, подпрограммы или процедуры. Передача параметров может быть выполнена через «передача по значению», «передача по ссылке», «передача по результату», «передача по значению-результату» и «передача по имени».
Читайте также:
Как найти незакрытые программы на компьютере и закрыть

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

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

Преимущества

  • Процедурное программирование отлично подходит для программирования общего назначения
  • Закодированная простота наряду с простотой реализации компиляторов и интерпретаторов
  • Большое разнообразие книг и онлайн-материалов курсов по проверенным алгоритмам, облегчающих обучение в процессе
  • Исходный код переносим, ​​поэтому его можно использовать и для другого процессора
  • Код может быть повторно использован в разных частях программы, без необходимости копировать его
  • Благодаря методике процедурного программирования требования к памяти также сокращаются
  • Ход программы можно легко отследить

Недостатки

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

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

Что такое объектно-ориентированное программирование (ООП)

ООП – это подход к программированию, который распознает жизнь в том виде, в каком мы ее знаем, как совокупность объектов, которые работают в тандеме друг с другом для решения конкретной проблемы под рукой. Главное, что нужно знать об ООП, – это инкапсуляция, то есть идея, что каждый объект, содержащий программу, самодостаточен, что означает, что все компоненты, составляющие объект, находятся внутри самого объекта. Теперь, поскольку каждый модуль в рамках этой парадигмы самодостаточен, объекты могут быть взяты из одной программы и использованы для решения другой имеющейся проблемы с небольшими изменениями или без изменений.

Преимущества

  • Благодаря модульности и инкапсуляции, ООП предлагает простоту управления
  • ООП имитирует реальный мир, облегчая понимание
  • Поскольку объекты являются цельными внутри себя, они могут использоваться в других программах
Читайте также:
Как установить антивирусную программу без интернета

Недостатки

  • Объектно-ориентированные программы, как правило, работают медленнее и занимают много памяти
  • Чрезмерная обобщение
  • Программы, созданные с использованием этой парадигмы, могут занять больше времени

Процедурное программирование против объектно-ориентированного программирования: сравнение между собой

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

Процедурное программирование Объектно-ориентированного программирования
Использует неизменные данные Использует изменяемые данные
Следует декларативной модели программирования Следует модели императивного программирования
Расширяет поддержку параллельного программирования Не подходит для параллельного программирования
Порядок выполнения операторов не является основным направлением Порядок выполнения операторов очень важен
Управление потоком осуществляется с помощью вызовов функций Управление потоком осуществляется через условные операторы и циклы
Использует концепцию рекурсии для итерации коллективных данных Использует концепцию цикла для итерации сбора данных
Нет таких побочных эффектов его функций Метод может иметь определенные побочные эффекты
В процедурном программировании основное внимание уделяется тому, что вы делаете. Основное внимание в объектно-ориентированном программировании уделяется теме «Как вы это делаете»

Другая широко используемая парадигма программирования – функциональное программирование.

Функциональное программирование сильно отличается как от процедурного программирования, так и от объектно-ориентированного программирования, поскольку в нем используются математические функции. Благодаря этому операции выполняются только на основе введенных входных данных, и они не зависят от временных или скрытых переменных.

Преимущества

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

Недостатки

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

Вывод

Как мы уже говорили в этой статье, процедурное программирование – это больше, чем вы делаете, а не то, как вы это делаете. Это стандартный подход, используемый во многих компьютерных языках, таких как C, Pascal и BASIC. Хотя идеальной парадигмы программирования не существует, важно понимать, что правильная парадигма всегда будет зависеть от типа используемого вами языка и программы, которую вы хотите создать. Рекомендуется, чтобы для достижения максимальных результатов и сильного портфолио, нужно было владеть всеми тремя основными парадигмами программирования. Лучший способ попытаться стать лучше в программировании – это пытаться!

Источник: edoodoo.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru