Strukturaviy dasturlash teoremasi
Teorema italiyalik matematiklar Korrado Böhm va Juzeppe Yakopini tomonidan tuzilgan va isbotlangan. Ular uni 1965 yilda italyan va 1966 yilda ingliz tilida nashr etishdi. Teorema bilan bir qatorda, Boem va Jacopini maqolasida misol tariqasida Bom tomonidan yaratilgan P′′ dasturlash tilidan foydalanib, strukturaviy boʻlmagan algoritmlarni strukturaviy algoritmlarga aylantirish usullari tasvirlangan. P'' tili goto operatori bo'lmagan birinchi Turing-to'liq dasturlash tilidir.
Böhm-Yakopini teoremasi murakkab tilda va noodatiy yozuvda yozilgan. Agar biz zamonaviy terminologiya va yozuvlardan foydalansak, u quyidagi shaklni oladi:
Sxema shaklida berilgan har qanday dastur uchta boshqaruv tuzilmasi yordamida taqdim etilishi mumkin:
ketma-ketlik - belgilangan: f KEYIN g,
shoxlanish - belgilangan: AGAR p bo'lsa, f BOSHQA g,
tsikl - belgilangan: WHILE p DO f,
Bu erda f, g - bitta kirish va bitta chiqishga ega blok diagrammalar,
P - shart, THEN, IF, ELSE, WHILE, DO - kalit so'zlar.
Tushuntirish. f KEYIN g formulasi quyidagilarni bildiradi: avval f dasturi, keyin g dasturi bajariladi.
Boem va Jacopini "strukturali dasturlash" atamasini ishlatmagan. Shunga qaramay, ular isbotlagan teorema (va uning turli mualliflar tomonidan keyingi o'zgarishlari) keyinchalik "Tuzilishli dasturlash haqidagi teorema", "Tuzilish teoremasi" (Struktura teoremasi), "Tuzilish haqidagi teorema" deb nomlana boshladi.
Strukturaviy dasturlash tamoyillari
Strukturaviy dasturlashning shakllanishi va rivojlanishi Edsger Deykstra nomi bilan bog'liq.
1-tamoyil. Goto shartsiz o'tish operatoridan foydalanishdan voz kechish kerak.
tamoyil 2. Har qanday dastur uchta asosiy boshqaruv tuzilmasidan qurilgan: ketma-ketlik, tarmoqlanish, tsikl.
3-tamoyil. Dasturda asosiy boshqaruv tuzilmalari o'zboshimchalik bilan bir-biriga joylashtirilishi mumkin. Operatsiyalar ketma-ketligini nazorat qilishning boshqa vositalari taqdim etilmaydi.
4-tamoyil. Dasturning takrorlanuvchi fragmentlari shaklda tartibga solinishi mumkin pastki dasturlar(protseduralar va funktsiyalar). Xuddi shu tarzda (kichik dasturlar ko'rinishida) dasturning mantiqiy integral bo'laklarini, agar ular takrorlanmasa ham tartibga solish mumkin.
5-tamoyil. Har bir mantiqiy to'liq ko'rsatmalar guruhi blok sifatida joylashtirilishi kerak. Bloklar tuzilgan dasturlashning asosidir.
Blok - bu mantiqiy guruhlangan manba kod qismi, masalan, dasturning dastlabki kodida qatorda yozilgan ko'rsatmalar to'plami. tushuncha blok ko'rsatma blokiga bitta ko'rsatma sifatida qarash kerakligini anglatadi. Bloklar o'zgaruvchilar va funktsiyalar doirasini cheklash uchun xizmat qiladi. Bloklar bo'sh yoki bir-birining ichiga joylashtirilishi mumkin. Blok chegaralari qat'iy belgilangan. Masalan, if operatorida blok BEGIN..END (Paskalda) yoki jingalak qavslar (...) (Cda) yoki chekinish (Pythonda) bilan chegaralanadi.
6-tamoyil. Barcha sanab o'tilgan tuzilmalar bitta kirish va bitta chiqishga ega bo'lishi kerak.
O'zboshimchalik bilan boshqaruv tuzilmalari (masalan, spagetti idishidagi kabi) kirish va chiqishlarning ixtiyoriy soniga ega bo'lishi mumkin. Bitta kirish va bitta chiqish bilan tuzilmalarni boshqarish bilan cheklanib, biz oddiy va ishonchli mexanizmlar yordamida har qanday murakkablikdagi o'zboshimchalik algoritmlarini qurish qobiliyatiga ega bo'lamiz.
7-tamoyil. Dasturni ishlab chiqish bosqichma-bosqich, "yuqoridan pastga" usuli yordamida amalga oshiriladi. (yuqoridan pastga usuli) .
Do'stlaringiz bilan baham: |