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

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

Неструктуирано програмирање је историјски најраније програмирање парадигма способно за креирање Тјуринг-комплетних алгоритама. То историјски прати процесно програмирање, а затим објектно-оријентисано програмирање, оба се сматрају као структурирано програмирање.

Неструктуирано програмирање је жестоко критиковано за производњу тешко читљивог ("шпагети") кода и понекад се сматра као лош приступ за стварање великих пројеката, али је похваљен за слободу коју нуди програмерима и да је у поређењу са тим како је Моцарт написао музику.[1]

Постоје и високи и ниски нивои програмских језика који користе неструктурирано програмирање. Ово укључује ране верзије Бејсика (као што је MSX Бејсик и GW-Бејсик), Фортран, JOSS, FOCAL, MUMPS, TELCOMP, Кобол, прву генерацију програмског језика, ране системе за монтажу (без процедуралних мета оператора), монтер дебагер и неке скрипт језике као што је MS-DOS batch датотека језика.

Карактеристике и карактеристични концепти[уреди]

Основни појмови[уреди]

Програм у неструктуираном језику се обично састоји од доследно наредних команди, или изјава, обично у свакој линији. Линије су обично обележене бројевима или могу имати етикете: ово омогућава проток извршења да скочи на било коју линију у програму. Неструктуирано програмирање уводи основне концепте контрола протока као што су петље, гране и скокови. Иако не постоји концепт процедура у неструктуираним парадигмама (уреди), подпрограми су дозвољени. За разлику од поступка, потпрограми можгу имати неколико улазних и излазних тачака, и директан скок у или из потпрограма је (теоретски) дозвољено Ова флексибилност омогућава реализацију coroutines-а.

Не постоји концепт локалних scoped варијабли у неструктуираном програмирању (мада за монтажу програма, општа сврха регистра може да послужи у исту сврху након снимања при уласку), али ознаке и променљиве могу да имају ограничен простор деловања (на пример, група линија). То значи да нема (аутоматски) контекст освеже приликом позивања потпрограм, тако да све променљиве могу задржати своје вредности из претходног позива. Због тога уопште рекурзија је тешка, али неки случајеви рекурзије - где нису потребни потпрограми стања вредности након рекурзивног позива - су могуће ако променљиве посвећене рекурзивним потпрограмима су експлицитно избачене (или поново постављају на своје оригиналне вредности) о упису на потпрограмима. Дубина гнежђења такође ће бити ограничена на један или два нивоа.

Типови података[уреди]

Неструктуирани језици дозвољавају само основне врсте података, као што су бројеви, стрингови и низови (уреди) (обележен бројевима комплета променљивих истог типа). Увођење низова у неструктуирани језик био је значајан корак напред, чинећи пренос обраде података могућим упркос недостатку структурираних типова података (уреди).

Референце[уреди]

Литература[уреди]

  • Коб Гари В. (1978). "Мерење структуре за неструктуриране програмске језике". ACM SIGSOFT Софтвер Инжењеринг белешке 3 (5): 140–147. doi:10.1145/953579.811114. ISSN OCLC 423488690.

Спољашње везе[уреди]

  • BPStruct - Алат на структури истовремених система (програми, процес модели)