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

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

Не существует широкого стандарта синтаксиса псевдокода , поскольку программа в псевдокоде не является исполняемой программой, однако существуют определенные ограниченные стандарты (например, для академической оценки). Псевдокод напоминает скелетные программы , которые можно скомпилировать без ошибок. Блок - схему , Drakon-графика и Unified Modeling Language (UML) диаграммы можно рассматривать как графическую альтернативу псевдокод, но нужна больше места на бумаге. Такие языки, как HAGGIS, устраняют разрыв между псевдокодом и кодом, написанным на языках программирования.

Заявление [ править ]

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

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

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

Псевдокод обычно фактически не подчиняется правилам синтаксиса какого-либо конкретного языка; не существует систематической стандартной формы. Некоторые авторы заимствуют стиль и синтаксис управляющих структур из некоторых традиционных языков программирования, хотя это не рекомендуется. [1] [2] Некоторые источники синтаксиса включают Fortran , Pascal , BASIC , C , C ++ , Java , Lisp и ALGOL . Объявления переменных обычно опускаются. Вызовы функций и блоки кода, такие как код, содержащийся в цикле, часто заменяются однострочными предложениями на естественном языке.

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

Это пример псевдокода (для математической игры fizz buzz ):

Псевдокод в математическом стиле [ править ]

В численных вычислениях псевдокод часто состоит из математических обозначений , обычно из теории множеств и матриц , смешанных со структурами управления обычного языка программирования, а также, возможно, из описаний на естественном языке . Это компактное и часто неформальное обозначение, которое может понять широкий круг математически подготовленных людей, и часто используется как способ описания математических алгоритмов . Например, оператор суммы ( заглавная сигма-нотация ) или оператор произведения ( заглавная-пи ) может представлять цикл for и структуру выбора в одном выражении:

Возвращаться 

Обычно для математических уравнений используется набор текста, отличный от ASCII , например, с помощью языков разметки, таких как TeX или MathML , или проприетарных редакторов формул .

Псевдокод математического стиля иногда называют кодом pidgin , например, pidgin ALGOL (источник концепции), pidgin Fortran , pidgin BASIC , pidgin Pascal , pidgin C и pidgin Lisp .

Общие математические символы [ править ]

Пример [ править ]

Ниже приводится более подробный пример псевдокода математического стиля для алгоритма Форда – Фулкерсона :

Алгоритм Форд-Фалкерсон является  вводом: График G с мощностью потока с , исходный узел s ,Выход приемного узла t  : поток f такой, что f максимален от s до t (Обратите внимание, что f (u, v) - это поток от узла u к узлу v, а c (u, v) - это пропускная способность потока от узла u к узлу v) для каждого ребра ( u , v ) в  G E  do  f ( u , v ) ← 0 f ( v , u ) ← 0 в то время как существует путь p из s в t  в остаточной сети G f  , пусть c f будет пропускной способностью потока остаточной сети G f  c f ( p ) ← min { c f ( u , v ) | ( u , v ) in  p } для каждого ребра ( u , v ) в  p  do  f ( u ,v ) f ( u , v ) + c f ( p )  f ( v , u ) ← - f ( u , v ) вернуть  f

Машинная компиляция языков в стиле псевдокода [ править ]

Грамматика естественного языка в языках программирования [ править ]

Различные попытки привнести элементы грамматики естественного языка в компьютерное программирование привели к появлению таких языков программирования, как HyperTalk , Lingo , AppleScript , SQL , Inform и в некоторой степени Python . В этих языках круглые скобки и другие специальные символы заменены предлогами, что приводит к довольно разговорчивому коду. Эти языки обычно динамически типизированы , что означает, что объявления переменных и другой шаблонный кодможно не указывать. Такие языки могут облегчить человеку без знания языка понимание кода и, возможно, также выучить язык. Однако сходство с естественным языком обычно скорее косметическое, чем подлинное. Правила синтаксиса могут быть такими же строгими и формальными, как и в обычном программировании, и не обязательно облегчают разработку программ.

Языки математического программирования [ править ]

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

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

  • Обозначение Z
  • Венский язык спецификации методов разработки (VDM-SL).

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

  • Язык программирования (APL) и его диалекты APLX и A + .
  • MathCAD .

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

  • Концептуальное программирование
  • Дракон-карта
  • Схема
  • Грамотное программирование
  • Язык разработки программ
  • Короткий код
  • Структурированный английский

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

  1. ^ МакКоннелл, Стив (2004). Код завершен . п. 54. ISBN 978-0-7356-1967-8. Избегайте синтаксических элементов целевого языка программирования
  2. ^ Приглашение в информатику, 8-е издание, авторство Шнайдер / Герстинг, «Держите утверждения независимыми от языка», цитируется в [1]

Дальнейшее чтение [ править ]

  • Зобель, Джастин (2013). «Алгоритмы». Написание для компьютерных наук (второе изд.). Springer. ISBN 978-1-85233-802-2.

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

  • Стандарт псевдокода
  • Собраны алгоритмы ACM
  • Руководство по псевдокоду , файл PDF.