~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 54D58F54B6C3BEF78C33095AEC04D703__1711660740 ✰
Заголовок документа оригинал.:
✰ Procedural programming - Wikipedia ✰
Заголовок документа перевод.:
✰ Процедурное программирование — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Procedural_language ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/54/03/54d58f54b6c3bef78c33095aec04d703.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/54/03/54d58f54b6c3bef78c33095aec04d703__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 09:47:44 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 29 March 2024, at 00:19 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Процедурное программирование — Википедия Jump to content

Процедурное программирование

Из Википедии, бесплатной энциклопедии
(Перенаправлено с процедурного языка )

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

Первые крупные процедурные языки программирования появились ок. 1957–1964 , включая Fortran , ALGOL , COBOL , PL/I и BASIC . [2] Паскаль и C были опубликованы c. 1970 –1972.

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

Практики разработки [ править ]

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

Модульность и область применения [ править ]

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

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

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

Делюсь [ править ]

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

Сравнение с другими парадигмами программирования [ править ]

Императивное программирование [ править ]

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

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

Объектно-ориентированное программирование [ править ]

(ООП) , также классифицируемое как императивное, Объектно-ориентированное программирование предполагает разделение реализации программы на объекты, которые предоставляют поведение (методы) и данные (члены) через четко определенный интерфейс. Напротив, процедурное программирование заключается в разделении реализации программы на переменные , структуры данных и подпрограммы . Важным отличием является то, что, хотя процедурный подход включает в себя процедуры работы со структурами данных, ООП объединяет их вместе. Объект — это структура данных и поведение, связанное с этой структурой данных. [3]

Некоторые языки ООП поддерживают концепцию класса, которая позволяет создавать объект на основе определения.

Номенклатура варьируется между ними, хотя они имеют схожую семантику:

процедурный Объектно-ориентированный
Процедура Метод
Записывать Объект
Модуль Сорт
Вызов процедуры Сообщение

Функциональное программирование [ править ]

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

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

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

  • В то время как процедурные языки моделируют выполнение программы как последовательность императивных команд, которые могут неявно изменять общее состояние, языки функционального программирования моделируют выполнение как оценку сложных выражений, которые зависят друг от друга только с точки зрения аргументов и возвращаемых значений. По этой причине функциональные программы могут иметь свободный порядок выполнения кода, а языки могут мало контролировать порядок выполнения различных частей программы; например, аргументы вызова процедуры в Scheme оцениваются в произвольном порядке.
  • Языки функционального программирования поддерживают (и активно используют) первоклассные функции , анонимные функции и замыкания , хотя эти концепции также были включены в процедурные языки, по крайней мере, начиная с Algol 68 .
  • Функциональные языки программирования, как правило, полагаются на оптимизацию хвостовых вызовов и функции более высокого порядка, а не на конструкции императивного цикла.

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

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

Логическое программирование [ править ]

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

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

Ч:- Б 1 , …, Б н .

имеют двойную интерпретацию: как процедуры

показать/решить H , покажи/реши В 1 и … и Б н

и как логические последствия:

B 1 и … и B n подразумевают H .

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

См. также [ править ]

Ссылки [ править ]

  1. ^ «Парадигмы программирования» .
  2. ^ «Добро пожаловать в IEEE Xplore 2.0: использование процедурных языков программирования для управления производственными системами». Слушания. Седьмая конференция IEEE по применению искусственного интеллекта . ieeexplore.ieee.org. дои : 10.1109/CAIA.1991.120848 . S2CID   58175293 .
  3. ^ Стивенсон, Джозеф (август 2013 г.). «Процедурное программирование против объектно-ориентированного программирования» . neonbrand.com . Проверено 19 августа 2013 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 54D58F54B6C3BEF78C33095AEC04D703__1711660740
URL1:https://en.wikipedia.org/wiki/Procedural_language
Заголовок, (Title) документа по адресу, URL1:
Procedural programming - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)