Введение

В информатике псевдокод — это описание шагов алгоритма с использованием сочетания общепринятых конструкций языков программирования (таких как оператор присваивания, условный оператор, цикл) и неформальной, как правило, понятной без дополнительных пояснений, записи действий и условий. Хотя псевдокод имеет общие черты с полноценными языками программирования, он предназначен для восприятия человеком, а не для непосредственного исполнения машиной. Псевдокод обычно не содержит деталей, необходимых для машинной реализации алгоритма. Язык программирования дополняется описаниями на естественном языке, где это целесообразно, или компактными математическими обозначениями. Преимущество использования псевдокода заключается в его большей понятности по сравнению с кодом на языке программирования, а также в том, что он представляет собой эффективное и не зависящее от конкретной среды описание основных принципов алгоритма. Он широко используется в учебниках и научных публикациях для документирования алгоритмов, а также при разработке программного обеспечения и других алгоритмов. Строгого стандарта синтаксиса псевдокода не существует, поскольку программа, написанная на псевдокоде, не является исполняемой; однако существуют некоторые ограниченные стандарты (например, для учебных целей). Псевдокод можно сравнить со скелетными программами, которые могут быть скомпилированы без ошибок. Блок-схемы, диаграммы Дракона и диаграммы Унифицированного языка моделирования (UML) можно рассматривать как графические альтернативы псевдокоду, но они требуют больше места для записи. Языки, такие как HAGGIS, сближают псевдокод и код, написанный на языках программирования.

Применение

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

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

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