Неструктурированное программирование
Неструктурированное программирование - это исторически самая ранняя парадигма программирования, способная создавать полные по Тьюрингу алгоритмы. [ нужна ссылка ] . Его часто противопоставляют парадигме структурированного программирования , в частности, использованию неструктурированного потока управления с использованием операторов goto или их эквивалентов. Это различие было особенно подчеркнуто в 1968 году во влиятельном « Перейти к заявлению, которое считается вредным открытом письме голландского ученого Эдсгера В. Дейкстры » , которое ввело термин «структурное программирование». [1]
Неструктурированное программирование подвергалось резкой критике за создание трудночитаемого кода («спагетти») .
Существуют языки программирования как высокого, так и низкого уровня , использующие неструктурированное программирование. Некоторые языки, которые обычно называют неструктурированными, включают JOSS , FOCAL , TELCOMP , языки ассемблера , MS-DOS пакетные файлы и ранние версии BASIC , Fortran , COBOL и MUMPS .
Особенности и типовые концепции
[ редактировать ]Основные понятия
[ редактировать ]Программа на неструктурированном языке использует неструктурированные переходы к меткам или адресам команд. Строки обычно пронумерованы или могут иметь метки: это позволяет потоку выполнения перейти к любой строке программы. В этом отличие от структурного программирования , в котором используются последовательные конструкции операторов, выбора (if/then/else) и повторения ( while и for).
Ссылки
[ редактировать ]- ^ Дейкстра 1968 : «Необузданное использование оператора перехода к немедленному последствию приводит к тому, что становится ужасно трудно найти значимый набор координат, в которых можно описать ход процесса. ... Оператор перехода в его нынешнем виде - это просто слишком примитивно, это слишком сильное приглашение испортить свою программу».
Дальнейшее чтение
[ редактировать ]- Кобб, Гэри В. (1978). «Измерение структуры неструктурированных языков программирования» . Заметки по разработке программного обеспечения ACM SIGSOFT . 3 (5): 140–147. дои : 10.1145/953579.811114 . ISSN 0163-5948 .
Внешние ссылки
[ редактировать ]
- BPStruct — инструмент для структурирования параллельных систем (программ, моделей процессов).