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

Неструктурированное программирование является исторически самой ранней парадигмой программирования, способной создавать Тьюринг-полные алгоритмы [ требуется ссылка ] . Его часто противопоставляют парадигме структурированного программирования , в частности, с использованием неструктурированного потока управления с использованием операторов goto или эквивалента. Это различие было особенно подчеркнуто в публикации влиятельного открытого письма « Go To Statement Considered Harmful » в 1968 году голландским ученым-компьютерщиком Эдсгером В. Дейкстрой , который ввел термин «структурированное программирование». [1]

Неструктурированное программирование подвергалось жесткой критике за создание трудночитаемого («спагетти») кода .

Существуют как высокоуровневые, так и низкоуровневые языки программирования , которые используют неструктурированное программирование. Некоторые языки, которые обычно упоминаются как неструктурированные, включают JOSS , FOCAL , TELCOMP , языки ассемблера , пакетные файлы MS-DOS и ранние версии BASIC , Fortran , COBOL и MUMPS .

Особенности и типичные концепции

Основные понятия

Программа на неструктурированном языке использует неструктурированные переходы к меткам или адресам инструкций. Строки обычно нумеруются или могут иметь метки: это позволяет потоку выполнения переходить к любой строке в программе. Это контрастирует со структурированным программированием , которое использует последовательные конструкции операторов, выбор (if/then/else) и повторение (while и for).

Ссылки

  1. ^ Дейкстра 1968, «Необузданное использование оператора go to имеет непосредственным следствием то, что становится ужасно трудно найти осмысленный набор координат, в котором можно описать ход процесса. ... Оператор go to в его нынешнем виде слишком примитивен, он слишком приглашает запутать программу».ошибка sfn: нет цели: CITEREFDijkstra1968 ( справка )

Дальнейшее чтение

  • Кобб, Гэри В. (1978). «Измерение структуры для неструктурированных языков программирования». ACM SIGSOFT Software Engineering Notes . 3 (5): 140–147. doi : 10.1145/953579.811114 . ISSN  0163-5948.
  • BPStruct — инструмент для структурирования параллельных систем (программ, моделей процессов)
Взято с "https://en.wikipedia.org/w/index.php?title=Неструктурированное_программирование&oldid=1202049531"