Ma'ruzalar kursi dasturlash paradigmalarining turli XIL ko'rinishlari va ularni dasturlash tillari va tizimlarida qo'llab-quvvatlashga oid yondashuvlar bilan tanishtiradi (lsp)


Download 35.75 Kb.
Sana29.11.2020
Hajmi35.75 Kb.
#154474
Bog'liq
1-maruza. Dasturlash paradigmalarining vujudga kelishi


KIRISH

 

Ma'ruzalar kursi dasturlash paradigmalarining turli xil ko'rinishlari va ularni dasturlash tillari va tizimlarida qo'llab-quvvatlashga oid yondashuvlar bilan tanishtiradi (LSP). Asosiy e'tibor g'oyalar va ularni amalga oshirishning amaliy natijalari ko'rinadigan tarixiy ahamiyatga ega va kontseptual dasturlash tillariga qaratilgan. Ko'rib chiqilayotgan paradigmalarga xos bo'lgan dasturlash uslublari va tillari dasturiy ta'minotning hayotiy tsiklini qo'llab-quvvatlashni o'z ichiga olgan apparat va interfeysdagi kompyuter dasturlash vositalaridan interfeysdagi dasturiy informatika muammolarini echishda qo'llaniladigan dasturlash texnologiyalarining (TP) evolyutsiyasini aks ettiradi. Hayot sikli). 



Dasturlash tillari va tizimlarini yaratish va ulardan foydalanishda rivojlangan ma'lumotni qayta ishlashga muqobil yondashuvlar odatda dasturlash paradigmalari deb ataladi. Dasturiy ta'minot dasturlarini o'rganish va aniq tasniflash dasturiy ta'minot loyihalarini shakllantirishda va axborot texnologiyalarini (IT) takomillashtirishda oqilona tanlashga ham, kompyuter tillarini yaratishga ham yordam beradi. 

Dasturlash tillari va tizimlari ko'rinishidagi dasturiy paradigmalar IT salohiyati haqidagi bilimlarni aks ettiradi. Yaratilishida dasturlash tili (PL) ITni qo'llash sohasiga nisbatan ma'lum bir prognozni aks ettiradi. Dasturlash tizimlarini (SP) ishlab chiqish va ishlatish amaliyoti bunday bilimlarni disk raskadrovka qilingan dasturlar ko'rinishida ular uchun ma'lumotlar to'plamlari va ularni muvaffaqiyatli qo'llash pretsedentlari bilan konkretlashtiradi va takomillashtiradi. PL dasturining muvaffaqiyati , shaxsiy va umumiy tushunchalarni ta'kidlab, faktlar, hodisalar, hodisalar va jarayonlarni "vakolatli" tavsiflash uchun qulay vosita yordamida muammolarni qo'yishning kontseptual sxemasini va ularni hal qilish usullarini belgilaydigan PPni muvaffaqiyatli tanlash natijasi deb hisoblash mumkin . Dasturiy ta'minotni ishlab chiqish murakkab dasturiy ta'minot tizimlarini yaratishda foydalaniladigan til tushunchalari va amalga oshirish tuzilmalarining amaliyligini aks ettiradi. Shunisi qiziqki, dasturlash tillarining mashhurlik darajasi muvaffaqiyatli bajarilgan loyihalarda qo'llaniladigan dasturlash tillari reytingidan farq qiladi.

Dasturiy paradigmalarga Robert Floyd Turing ma'ruzasini bag'ishlagan bo'lib, unda dasturchilarni tayyorlash muammosi nuqtai nazaridan ushbu kontseptsiyaning ahamiyatiga e'tibor qaratgan. Dasturlarni tahlil qilish va tekshirish nazariyasining asoslarini yaratgan, ma'lumotlarni qayta ishlashning bir qator samarali usullari muallifi bo'lgan nufuzli olim dasturiy ta'minotning dasturlash loyihalarining muvaffaqiyatiga, turli dasturlarni o'rganish xususiyatlariga va dasturlash tillarida qanday qo'llab-quvvatlanishi kerakligiga ta'sirini ta'kidlashni lozim topdi. Tarkibiy dasturlash misolini dominant dasturlash metodologiyasi sifatida ko'rib chiqqan holda, R. Floyd, birinchi navbatda, ushbu paradigmaning yuqoridan pastga dizayni, bosqichma-bosqich takomillashuvi va muammoni oddiyroq pastki vazifalarga keltirishga yo'naltirilganligini ta'kidladi; ikkinchidan, mashina darajasidagi aniq ob'ektlar va funktsiyalardan ko'proq mavhum ob'ektlar va funktsiyalarga o'tish, yuqoridan pastga loyihalash paytida ajratilgan modullar orqali fikr yuritish imkonini beradi. 

Dasturlash tajribasida R. Floyd qiziqarli kuzatuv o'tkazdi: dasturlash san'ati ishlatilgan paradigmalar repertuarini kengaytirishni o'z ichiga oladi. Uning e'tiborini noaniq determinizm nuqtai nazaridan qulay tarzda tuzilgan rekursiv korutinlarni tayyorlash muammosi jalb qildi, uning samarasizligi makrotexnologiya tomonidan deyarli bartaraf etiladi. R. Floyd MIT-da yaratilgan Universal Lisp tilida dasturlash imkoniyatlarining ko'plab misollarini yuqori baholadi, eng sodda ro'yxatlardan universal ma'lumotlar tuzilmalariga (SD) o'tish yo'lini ko'rsatdi, bu ma'lumotlar sifatida dasturlarning manipulyatsiyasini osonlashtirdi.

R.Floyd dasturiy ta'minot loyihasining barcha darajalari uchun bir qator bunday semantik usullarni aniq o'qitishni yo'lga qo'yish mumkinligiga ishonch hosil qildi, shunda o'qitilgan talabalar soddalashtirilgan ta'lim muammolari bayonidan tortib to doimiy ravishda kengayib boradigan amaliy masalalar sinfigacha barcha muammolarni hal qilish uchun etarlicha boshga ega bo'ladilar.

Shuni ta'kidlash kerakki, R. Floydning Turing ma'ruzasidan beri o'ttiz yil ichida turli tillar va dasturlash tizimlari soni bir necha yuzdan o'n minglabgacha ko'paygan. Bundan tashqari, paradigmalar soni unchalik ko'p emas. Turli xil manbalarda yigirmadan qirqgacha paradigmalar, ko'pincha ularning ro'yxatiga individual usullar va usullar kiritilgan. 

Mavjud dasturiy ta'minotni o'rganish va aniq tizimlashtirish turli xil AT va turli xil sharoitlarda ishlatiladigan xizmatlardan foydalangan holda ishlab chiqilgan murakkab ISlarning ishlashi, ishonchliligi va samaradorligini ta'minlashga qaratilgan yondashuvlarni oqilona tanlashga yordam berish uchun ishlab chiqilgan. 

Past darajadagi dasturlash vositalari zaif himoyalangan SD-ga umumiy kirishdan foydalanish evaziga samarali echimlarni amalga oshirish qobiliyati bilan tavsiflanishi mumkin. Yuqori darajadagi tillar kengaytirilgan SD ierarxiyasidan foydalanishga moyil bo'lib, uning tarkibiy qismlari mustaqil ravishda yaratilgan dastur qismlarining nazoratsiz o'zaro ta'siridan himoyalangan. Yuqori darajadagi mexanizmlar (spetsifikatsiya tillari, parallel dasturlash tillari, bilimlarni namoyish qilish tizimlari va boshqalar) uzoq muddatli dasturlarni ishlab chiqish va ulardan foydalanish bilan bog'liq muammolarning ayrim sohalarida aniqlangan echimlarni amalga oshirish maydonining to'liqligiga qaratilgan.

Yuqori darajadagi tillar (HLL) tufayli dasturlash ommaviy kasbga aylandi. JCU-da dasturlash insonning echilayotgan vazifalarni tushunishi va ularni hal qilish jarayonlarini tashkil etish xususiyatlarini aks ettiruvchi tushunchalarning kengaytiriladigan iyerarxiyasini ifodalashga moslashtirilgan. JLU ga o'tish dastur matnlarini tayyorlashda tuzilmalarni muntazam ravishda kattalashtirishga imkon berdi. Buning uchun murakkab ma'lumotlar tuzilmalari, dasturlash texnikasining stereotiplari, ob'ekt nomlarining lokalizatsiya qilinadigan ko'lamlari va ularni qayta ishlash protseduralari talab etilib, dasturni bosqichma-bosqich disk raskadrovka jarayonini birlashtirishga imkon beradigan tizimli-mantiqiy boshqaruv modeliga bo'ysunishi kerak edi. Grafik interfeyslar va komponent texnologiyalari samarali bo'lib, disk raskadrovka qilingan natijalarni turli tizimlarga uzatishni qo'llab-quvvatlaydi . Asosiy e'tibor protseduralar kutubxonalari bilan integratsiyalashuvga, dasturlarni samarali kompilyatsiya qilishga, ma'lumotlar turini boshqarishga, dastur sohasi standartlariga va qulay xizmat ko'rsatiladigan texnologiyalarni tezkor rivojlantirishga mos keladi. Bir qator samaradorlik muammolari JLDga past darajadagi vositalarni kiritish orqali hal qilinadi. Blok-diagrammalarga ehtiyoj deyarli yo'qoladi va o'z-o'zini hujjatlashtirish va mos yozuvlar quyi tizimlarini amalga oshirish usuli hujjatlarning rolini yumshatadi. Java dasturi odatda qabul qilinadigan jarayonlar oilasiga to'g'ri keladi , ularning ta'rifi tilning rasmiy semantikasi bilan ifodalanadi. JVU-ni qo'llab-quvvatlaydigan dasturlash tizimi (SP), qoida tariqasida, ushbu oilaning jarayonlaridan birini ishlab chiqaradi. Ushbu torayish nafaqat HLUni amalga oshirish pragmatikasi, balki dasturlarni disk raskadrovka qilishda jarayonlarni ko'paytirish zarurati bilan ham belgilanadi.

JLU-dagi dastur matni odatda biplanitarlikka ega bo'ladi - undagi ma'lumotlarni qayta ishlash jarayonining majburiy vakili, ishlov berilayotgan ma'lumotlar turlari, spetsifikatsiyalar, pragmalar va boshqalarni deklarativ tavsifi bilan birlashtiriladi, bu erda dasturlarning to'g'riligini tekshirish uchun ishlatiladigan hisoblash jarayonining fazoviy yaqinlashuvi, ma'lumotlar turlarini statik yoki dinamik boshqarish kabi narsalar mavjud. HLU kontseptsiyalarini ishlab chiqish aniq amaliy va noaniqlik, doimiy va o'zgaruvchan qiymatlar bo'shliqlari, boshlang'ich va kompozit ma'lumotlar bo'shliqlari, ochiq va yopiq protseduralar, satrlar va fayllarni qayta ishlash vositalari, faol va "dangasa" hisoblash imkoniyatlari, ketma-ket va parallel hisoblash sxemalaridan foydalanish o'rtasidagi nisbat bilan tavsiflanadi. Barcha QKlar katta tuzilmalarni amalga oshirishda va mahalliy ma'lumotlarni himoya qilishda stekdan foydalanadilar. JCU uslubi ma'lumotlar tuzilmalarini loyihalash, algoritmlarni kodlash, dasturlash nazariyasi mezonlari asosida dasturlarni tahlil qilish va kompilyatsiya qilish usullari bilan chambarchas bog'liq.

Odatda tilning yuqori darajasi dasturiy ta'minot bilan ta'minlanadi, ammo dasturchilar va mikroprogramma paydo bo'lishi bilan dasturiy ta'minot va apparat o'rtasidagi farq shartli bo'lib qoldi. Lisp, Paskal, Prolog, Smalltalk, Algol va boshqa HLUlar mashina kodi sifatida kirish tillari sifatida amalga oshirildi. Assembler Elbrus - bu Java-ning apparat tomonidan amalga oshirilishining yorqin namunasidir.

JLU paradigmalarini tahlil qilishda quyidagi xususiyatlarni hisobga olish kerak:

- lakonik dasturni yozib olish uchun ma'lum tushunchalarni taqdim etishning yopiq shakllari qo'llaniladi; 

- ifodalar ko'pincha ma'lum uzunlikdagi yoki kompleks qiymatdagi skalar bo'yicha oldindan hisoblash sxemasi uchun ishlab chiqiladi (birinchi navbatda, operandlar hisoblanadi, so'ngra amallar natijasi hisoblanadi); 

- har xil turdagi shoxchalar va tsikllar, funktsiyalar toifalari va protseduralari; 

- ma'lumotlar turlari PLda belgilangan qoidalar asosida tuziladi va qo'shma korxonada qabul qilingan andozalarga muvofiq amalga oshiriladi; 

- hisoblashni boshqarish sxemalari ko'pincha tilda o'rnatiladi va dasturlash tizimida aniq amalga oshiriladi; 

- turli xil semantik tizimlarga taalluqli vositalar va usullarning o'zaro aloqasi va muvofiqligi, ular dasturlash tizimida amalga oshirilganda, an'analar va pretsedentlar bilan belgilanadi va kodda u yashirin yoki tarqoq bo'lib, tuzilmaga ega emas; 

- dasturlash samaradorligi xotirada ma'lumotlar tuzilmalari qiymatlari va ishlovchilarini tatbiq etish usullarini bilishga asoslangan; 

- dastur natijasi, qoida tariqasida, har xil o'zgaruvchiga tarqaladi, lekin ko'plab HLUlarda bitta natijani hosil qiladigan iboralar va funktsiyalar mavjud. 

 

Jadval 0


 

Ba'zi JAVU nomlari, 

turli xil dasturiy paradigmalar bilan bog'liq

 


SP

FP

LP

OOP

Oo

Fortran Algol Alpha

C

Modula



Elbrus

Okkam


BLISS

BO'LING


 

YACC


Lex

 


Lisp

Rad etish

ML

Cmucl


Erlang

Interlisp

MuLisp S bilan Bas, 

Umid


Toza

Dilan


Miranda

Python


Xaskell

Rubi


F #

Rejalashtiruvchi

Snobol


Prolog

Konniver


QLisp

Merkuriy


Oz

 


Simula-67

Smalltalk-80

C ++

Eyfel


Yaqin

Java


C #

Scala


 

Paskal

Asosiy


O'sish

Logotip


Oberon

Robik


Rapier

Oz

 



(IP - imperativ (standart / tizim) dasturlash, FP - funktsional / amaliy dasturlash, LP - mantiqiy / deklarativ dasturlash, OOP - ob'ektga yo'naltirilgan dasturlash, UY - ta'lim dasturlash tillari[1] ).

 

JLU semantikasi past darajadagi tillar bilan taqqoslaganda arifmetikani o'z ichiga oladi, bu butun sonlar va haqiqiy sonlarni turli diapazonlarda qayta ishlash uchun bir qator yordamchi tizimlarga bo'linadi, odatda manzillar va mashina so'zlarining bitligiga bog'liq. Ko'rsatkichlar, belgilar va satrlar bilan ishlash uchun qo'shimcha tizimlar va ma'lumotlar turlarini qurish vositalari mavjud. Standart hisoblashni boshqarish operatorlari to'plami qo'llab-quvvatlanadi: filiallar, tsikllar va protsedura / funktsiya chaqiriqlari. Global ob'ektlar bilan ishlashdan tashqari, xotirada saqlanadigan ob'ektlarni lokalizatsiya qilishning turli xil sxemalari qo'llaniladi, bu ma'lumotlar tuzilmalarini tavsiflash iyerarxiyasi yoki ijro dinamikasi printsipiga muvofiq tashkil etish orqali ta'minlanadi.



JLU ning instrumental yadrosi bitta arifmetik tizim bilan cheklanishi mumkin. Turli xil paradigmalarning qo'llab-quvvatlanadigan JLD ning boshlang'ich darajalarini bunday yadroning kengayishi yoki konkretlashtirilishi deb ta'riflash mumkin. 

JVU paradigmalarini tahlil qilishda shuni ta'kidlash kerakki, tizim dasturiy ta'minotini takomillashtirishning muhim bosqichlari: 

- birinchi JVU Fortran amaliyotga alohida kompilyatsiya kiritdi, bu modulni yig'ish texnikasi ajratilganligi sababli disk raskadrovka dasturlari uchun mehnat xarajatlarini kamaytirdi;   

- universal Lisp tili paradigmani keltirib chiqargan ramziy ma'lumotlarni qayta ishlashning mashinadan mustaqil uslubiga hayot bag'ishladi 

funktsional dasturlash; 

- C tilining mashhurligi bir vaqtning o'zida ko'plab arxitekturalarga ko'chirishni qo'llab-quvvatlaydigan dasturlarni mashinaga bog'liq holda ko'chirish muammolarini hal qilish bilan bog'liq;   

- Prolog tilidagi mantiqiy dasturlash, aniqlanmagan muammoli bayonotlar bilan ishlashga imkon berdi, ularning darajasini oshirdi 

o'qish; 


- C ++ va OOP paydo bo'lishi dastur ko'lamini kengaytirdi 

dizayni takroriy dasturlashni talab qiladigan axborot tizimlari. 

 

Nazariy jihatdan, SPlar orasidagi farq operatsion semantik darajasida juda aniq ifodalangan bo'lib, xotira tuzilmalari va kattalashtirilgan harakatlarni amalga oshirish mexanizmlari tafsilotlarini aks ettiradi. Amaliy tavsiyalarni ishlab chiqish uchun dastur ta'rifining barcha darajalarida, shu jumladan dasturlash mumkin bo'lgan echimlarning hisoblash va samaradorlik chegaralarini belgilaydigan praktika, sintaktik jihatdan ajralib turadigan tushunchalar to'plamini, dastur maydonchasi terminologiyasini dasturiy ta'minot konstruktsiyalari va dasturiy ta'minotning murakkabligini belgilaydigan operatsion pragmatikalarni xaritasini belgilash qulayligini ko'rsatuvchi pragmatikani o'z ichiga olgan tafovutlarni batafsil shakllantirish zarur. ishlab chiqilgan dasturlarning hayotiyligi.



PLlarni taqqoslashda paradigmalarning o'ziga xos tafsilotlarini namoyish qilish dasturlash paradigmalarini qo'llab-quvvatlovchi asosiy PL-larni amalga oshirish pragmatikasi va ontologik spetsifikatsiyasi bilan to'ldirilgan mavhum sintaksis (AS) va mavhum mashina (AM) darajasida taqqoslangan tillarning uchidan uchiga tushunchalarini ajratib turadigan tarjimonning normalangan predikat shakli shaklida ifodalanishi mumkin. 

SP, FP, LP va OOP paradigmalarining qiyosiy tavsifida C, Lisp 1.5, Clisp, Prolog, C ++, Clos mos yozuvlar tillari sifatida ishlatiladi [2] asosida

Vena dasturini aniqlash va dinamik dasturni optimallashtirish yondashuvlarini aniqlash uchun Vena metodologiyasi.

Ma'ruzalar kursi dasturlashning turli xil muammolarini va dasturlashda qabul qilingan qarorlarni umumiy tushunishdan boshlanadi. Shundan so'ng dasturlash tillarini aniqlash usullari, shu jumladan dasturiy ta'minotni qo'llab-quvvatlashning asosiy vositasi sifatida dasturlash tizimlarini qurish masalalari bo'yicha qisqacha ekskursiya o'tkaziladi. Maqolada dasturiy ta'minotni semantik tizimlar ko'rinishida taqdim etilgan operatsion semantikasi xususiyatlarini tahlil qilish, ularni amalga oshirish pragmatikasi, tipik mexanizmlar va operatsion pragmatikalar misollarida keltirilgan, ularni qo'llash amaliyotini ko'rsatadigan tahlillari asosida pragmatik tasniflash masalalari ko'rib chiqilgan. Quyida quyi darajadagi tillarni qo'llab-quvvatlashning o'ziga xos vositalari va usullari, yuqori darajadagi tillarning asosiy paradigmalari, parallel dasturlash va ta'limiy ahamiyatga ega bo'lgan ta'lim tillari va dasturlash tizimlarining asosiy paradigmalari tasvirlangan. Xulosa qilib aytganda, dasturlash paradigmalarining rivojlanish xususiyatlarini sarhisob qilishga, ularning kristallanish dinamikasini tavsiflashga va dasturlash tillari va tizimlarining paradigmatik tavsiflari texnikasini bayon qilishga harakat qilinadi. Tushunishi chalkashlikka olib kelishi mumkin bo'lgan shartlarning qisqacha mazmuni berilgan.

MA'RUZA 1. PROGRAMLASH Paradigmalarining namoyon bo'lishi

So'nggi (XX) asrning o'rtalarida "dasturlash" atamasi kompyuter bilan aloqani anglatmaydi. Masalan, "Kompyuter dasturlash" kitobining nomini ko'rishingiz mumkin. Endi sukut bo'yicha "dasturlash" atamasi kompyuterlarda va kompyuter tarmoqlarida jarayonlarni tashkil qilishni anglatadi. 

Dasturlash fan sifatida matematikadan va fizikadan tadqiqot natijalarini baholash nuqtai nazaridan ancha farq qiladi. Fiziklar va matematiklar tomonidan olingan natijalar darajasi odatda o'xshash yoki undan yuqori malakali mutaxassislar tomonidan baholanadi. Dasturlash natijalarini baholashda dasturlash bo'yicha bilimga ega bo'lib ko'rinmaydigan foydalanuvchini baholash muhim rol o'ynaydi. Shuning uchun dasturlash sohasidagi mutaxassislar o'zlarining professional atamalarini foydalanuvchi tushunchalariga aylantirish funktsiyasini qisman bajaradilar.

Dasturlash natijalarning ishonchliligini o'rnatishning o'ziga xos uslubiga ega - bu kompyuter tajribasi. Agar matematikada ishonchlilik dalillarga asoslangan konstruktsiyalarga qisqartirilsa, faqat mutaxassislar uchun tushunarli bo'lsa, fizikada - maxsus uskunalarni talab qiladigan takrorlanadigan laboratoriya tajribasiga, keyin kompyuter tajribasi keng ommaga taqdim etiladi.



1.1. Ko'p qirrali dasturlash

Dasturlashning yana bir xususiyati - bu tez rivojlanayotgan elementar va instrumental bazaga bog'liqligi. Bilim va ko'nikmalarni tezda yangilash uchun klassik asos zarur. Dasturlash bo'yicha bilim - bu klassik va modaning kombinatsiyasi.

Dasturlar sifatining mezonlari juda xilma-xildir. Ularning tanlovi va buyurtmasi asosan muammolar sinfiga va dasturlardan foydalanish shartlariga bog'liq:

- samaradorlik; - ishonchlilik;                    

- barqarorlik;                    

- avtomatlashtirish;                    

- resurslardan (vaqt, xotira, qurilmalar, ma'lumotlar, odamlar) samarali foydalanish;                    

- ishlab chiqish va foydalanish qulayligi;                    

- dastur matnining ravshanligi;                    

- dastur jarayonining kuzatilishi; - nima bo'layotganini diagnostika qilish.                    

 

Mezonlarning tartibi ko'pincha dasturning dastur sohasi rivojlanib borishi, foydalanuvchilarning malakasi o'sishi va uskunalar, axborot texnologiyalari va dasturiy ta'minot texnologiyalari yangilanishi bilan o'zgarib turadi. Natijada paydo bo'lgan bo'shliqning uzluksiz rivojlanishi axborot tizimlarini dasturlash uslubiga qo'shimcha talablarni kiritadi:



- egiluvchanlik;                    

- o'zgaruvchanlik;                    

- tekshirilishi mumkinligi;                    

- xavfsizlik;                    

- harakatchanlik / portativlik;                    

- moslashuvchanlik;                    

- konstruktivlik;                    

- xususiyatlar va sifatning o'lchovliligi;                    

- yaxshilanishi.                    

 

Dasturlash fan, san'at va texnika sifatida dasturlarni yaratish va ulardan foydalanish jarayonlarini o'rganadi va ijodiy rivojlantiradi, xilma-xilligi amalda va eksperimentlarda rivojlanib, PL shaklida belgilanadigan dasturlarni yaratish vositalari va usullarini belgilaydi. Tez kengayib borayotgan PL to'plamini tasniflashdagi qiyinchiliklar soni "unchalik tez o'zgarmas" "dasturlash paradigmasi" tushunchasini aniqlashga olib keladi. Bu dasturiy ta'minotning ma'lum bir dasturiy ta'minotga tegishli ekanligini yoki ma'lum bir dastur tomonidan dasturiy ta'minotni qo'llab-quvvatlashini aniqlash muammosini keltirib chiqaradi. Ushbu muammoni hal qilish uchun SPni hisoblash, ma'lumotlar tuzilmalarini qayta ishlash, ma'lumotlarni saqlash va ma'lumotlarni qayta ishlashni boshqarish kabi asosiy semantik tizimlarning o'zaro ta'siri xarakterlidir. Ba'zi SPni qo'llab-quvvatlaydigan PL, SP-da, operatsion semantikaning mavjud bo'lgan apparat imkoniyatlaridan abstraktsiya darajasida amalga oshirilganda, uning xususiyatlarini katta darajada egallaydi . Ushbu yondashuv paradigmalarning uchta umumiy toifasini ajratib turadi: 



- past darajadagi dasturlash;                      

- yuqori darajadagi tillarda dasturlash;                      

- yuqori darajadagi tillarga asoslangan dasturlarni tayyorlash.                    

 

Past darajadagi dasturlash arxitektura va apparatga xos bo'lgan ma'lumotlar tuzilmalari bilan shug'ullanadi. Ma'lumotlar va dasturlarni saqlashda global xotira va ma'lumotlarni qayta ishlashni boshqarishning avtomatik modeli qo'llaniladi. 



Yuqori darajadagi tillarda dasturlash echilayotgan muammolar mohiyatini aks ettiruvchi ma'lumotlar tuzilmalarini belgilashga moslashtirilgan. Ma'lumotlar tuzilmalarining ko'rish maydonlarining kengaytiriladigan iyerarxiyasi va ularni qayta ishlash protseduralari qo'llaniladi, bu dasturni disk raskadrovka jarayonini birlashtirishga imkon beradigan tizimli-mantiqiy boshqaruv modeliga bo'ysundirilgan.

Yuqori darajadagi tillarga asoslangan dasturlarni tayyorlash muntazam ravishda, samarali bajarilgan ma'lumotlar tuzilmalarini namoyish etishga qaratilgan bo'lib, ularni qayta ishlash jarayonida ma'lumotlar va dasturlarning namoyishini o'zgartirish, dasturni ishlab chiqish jarayonining yuqori hisoblash ko'rsatkichlari va ishonchliligini kafolatlaydigan o'xshashlik va isbot konstruktsiyalaridan foydalanish, shu jumladan ko'p protsessorli konfiguratsiyalar uchun dasturlarni tayyorlash mumkin. 

Qo'shimcha ma'lumotlar dasturiy ta'minotni qo'llab-quvvatlaydigan qo'shma korxonalar uchun odatiy echimlarning o'ziga xos xususiyatlariga bog'liq.

Dasturlash paradigmalarining repertuarini kengaytirishga R.Floyd ta'kidlagan ehtiyoj, bilimlarni namoyish etish dinamikasi bilan bog'liq, bu muammolarni ishlab chiqishda echimlarni pastdan yuqoriga va yuqoridan pastga tushirish bosqichlarining o'zgarishiga kamayadi. Bilimlarni namoyish etish dinamikasi bir vakillikdan ikkinchisiga o'tishgacha kamayadi. Bilimlarning induktiv va deduktiv rivojlanish bosqichlarining o'zgarishini, etuklikka, echilayotgan muammoni o'rganish darajasiga qarab dasturlash usulini tanlashning asosi deb hisoblash mumkin.

Dasturlash metodologiyasida instantiya yuqoridan pastga yo'naltirilgan usullarga mos keladi. (Lingvistik assotsiatsiyadan farqli o'laroq, yuqoridan pastgacha yuqoriga qarab usullarni teskari deb hisoblash uchun hech qanday sabab yo'q. Umumlashtirish konkretlash uchun psixologik jihatdan nosimmetrik emas. Top_Down - Bottom_Up.)

O'rganish darajasiga ko'ra, muammoli bayonotlarning quyidagi toifalari sezilarli darajada farqlanib, fikrlash uslubiga va muammolarni hal qilish usullarini tanlashga ta'sir qiladi: 

- yangi;    

- tadqiqot; - amaliy;    

- samarali.  

 

Vazifalarning yangi formulalari muammoni hal qilish uchun qulay pretsedentning yo'qligi, ishlatilgan vositalarning yangiligi yoki ijrochilar tajribasining etishmasligi bilan tavsiflanadi. Tadqiqot muammolarini bayon qilish odatda o'ziga xoslik va ko'p qirralilik talablari bilan murakkablashadi. Amaliy maqsadlarni belgilash dolzarbligi va foydalanishga qaratilgan. Muammolarni samarali belgilashga, yaratilgan dasturni tashkil etish o'lchovi va amalga oshirilgan echimlarning ishlash darajasi bilan bog'liq bo'lgan ishlatiladigan vositalarning imkoniyatlarini o'rganishni o'z ichiga oladi.



Yangi masalani echish uchun maket namunasi, agar muallif ozgina mos ma'lumot to'plamini taqdim etsa, samarali bo'ladi. Tadqiqot muammolari echimlarini disk raskadrovka qilish uchun eksperimental sinov maydonchasi kirish sifatida ko'rsatilishi mumkin bo'lgan deyarli barcha ma'lumotlarni qayta ishlashga moslashuvchanlikni talab qiladi. Amaliy versiya, aslida uni qo'llash sohasida yuzaga keladigan ma'lumotlarni qayta ishlash bilan cheklanishi mumkin. Samarali amalga oshirish uchun muammoning unchalik mohirlik bilan bajarilmagan echimlaridan ustunligini ko'rsatadigan maxsus tanlangan ma'lumotlar kerak.

Dasturlashning o'ziga xos xususiyatlariga ko'ra, quyidagi toifadagi vazifalar sezilarli darajada farqlanadi:

- maxsus hal etish usullari bilan juda muhim va murakkab masalalar uchun ko'p darajali abstraktsiya;  

- inson ishlab chiqarish faoliyati dinamikasiga bog'liq bo'lgan biznes dasturlari;  

- aniq bo'lmagan vazifalar uchun faktlarni to'plash va bilimlarni to'plash;  

- yangi algoritmlar va ma'lumotlar tuzilmalarini o'rganish va ishlab chiqish, shu jumladan yangi tillarni yaratish;  

- to'g'ri masalalar uchun yaxshi o'rganilgan algoritmlarni amalga oshirish.  

 

Qaysi sohada qo'llanilishidan qat'i nazar, dasturlash paradigmalari abstraktlik darajasi bilan apparatning imkoniyatlaridan , muammoli formulalarni o'rganish darajasidan, tashkilotning darajasi va muammolarni echish dasturlarining samaradorligi darajasidan farq qilishi mumkin. Dasturiy ta'minotlarning keyingi tasnifi dasturlash texnologiyalari, dasturlarning hayotiy tsikllari va dasturlash lug'atida namoyon bo'ladi.



1.2. Dasturlash texnologiyalari

"Texnologiya" tushunchasi maqsadli ishlab chiqarish jarayonining mavjudligini nazarda tutadi, uning doirasida ma'lum bir vaqt ichida ma'lum texnik protseduralar uchun xodimlarning ma'lum malakasiga ega bo'lgan cheklangan resurslar bo'yicha rejalashtirilgan natija kafolatlanishi mumkin.

Dasturlashda mehnat unumdorligini texnologik jihatdan oshirishning sof dasturiy yo'nalishining asosiy bosqichlari ma'lum PLlarni yaratish, SPni amalga oshirish uchun yangi printsiplarni ixtiro qilish, yangi TPlarning paydo bo'lishi tufayli ba'zi PPlarning kristallanishi bilan bog'liq:

- Fortran tilining yaratilishi alohida kompilyatsiya texnologiyasining paydo bo'lishi bilan birga kechdi;   

- Lisp tili ramziy hisoblash va funktsional dasturlash texnologiyasiga hayot bag'ishladi;   

- operatsion tizimlarni amalga oshirish vositasi sifatida C tilini rivojlantirish, mashinaga bog'liq dasturni ko'chirish texnologiyasiga olib keldi;   

- Paskal tilida o'quv tilidan foydalanish amaliyoti dominant ta'lim metodikasi rolini o'ynaydigan tizimli dasturlash tamoyillarini shakllantirishga imkon berdi. 

dasturlash; 

- Prolog tili mantiqiy dasturlash paradigmasi va amaliyot uchun etarli bo'lgan echimlarni qisman aniqlash asosida xulosa chiqarish vositalarini amalga oshirish bilan bog'liq; 

- Simula 67 tilidagi jarayonlarni tashkil etish va SmallTalk 80 tilidagi ob'ektlar bilan ishlashni amalga oshirish g'oyasi OOPga dasturlarning sinflar ierarxiyasiga muvofiq parchalanish texnologiyasi bilan turtki berdi, bu esa kengayish imkonini beradi, bu avval tuzatilgan ta'riflarni buzmaydi. 

- TeX / LaTeX nashrlari uchun mualliflik matnlarini formatlash vositalarining ishlab chiqilishi vakolatli dasturlash texnologiyasiga (muvaffaqiyatli, ammo dasturchilar tomonidan qabul qilinmagan) va Haskell tilidagi funktsional dasturlarning nashrga yo'naltirilgan tarmog'iga urinishni keltirib chiqardi . 

 

Lisp tili bundan mustasno, ushbu yondashuvlarning aksariyati dasturni statik ob'ekt sifatida ko'rib chiqadi, aslida esa u rivojlanadi va ishlab chiqish va bajarish jarayonida qisman o'zgartirilishi mumkin. Tekshiruv zaxiralari o'z vaqtlarini kutib, zamonaviy texnologiyalarga amaliy ta'sir ko'rsatmoqda.



1990-yillarning oxirida ikkita istiqbolli texnologiyalar yangilik yoki tadqiqot komponentlari bo'lgan dasturlarni ishlab chiqish uchun oqilona kelishuv sifatida qabul qilinishni boshladi - ekstremal dasturlash (XP) va funktsiyaga asoslangan dizayn (FDD). 

Ekstremal dasturlash texnologiyasi o'yin dasturlarini ishlab chiqarishda rivojlandi. Umuman olganda, ekstremal dasturlash tez-tez yangilanib turadigan muammoli bayonotlarda rag'batlantiruvchi natijalarni ko'rsatadi va pastdan yuqoriga qarab dasturlash bilan mos keladi. 

Funktsional dizayn yuqoridan pastga dasturlash metodologiyasiga amal qiladi va bir qator inson omillarini hisobga oladi, bu esa rivojlanish jarayoniga barqarorlikni ta'minlashga imkon beradi. Ushbu texnologiya sezilarli tadqiqot komponenti bilan murakkab muammolarni hal qilish uchun javob beradi.

Shuni ta'kidlash kerakki, zamonaviy dasturlash texnologiyalarining ko'plab mualliflari dasturlash amaliyotini yordamsiz qilib, dasturlash uslubi va texnikasi bo'yicha vakolatli tavsiyalardan shikoyat qilmoqdalar. Bu erda axborot texnologiyalarini rivojlantirishning yuqori sur'atlarini esga olish maqsadga muvofiq, ularning imkoniyatlarini anglab etish uchun vaqt topolmaydi.

Parallel dasturlashning murakkabligi, dasturiy ta'minot komponentlarini kompilyatsiya qilish va optimallashtirishni tekshirish usullarini ishlab chiqish zarurligini ta'kidlash kerak, kodlarning miqyosli makro generatsiyasi vositalari va dasturlarning oldindan tuzatilgan komponentlardan birlashtirilganda xossalarini saqlash sertifikati bilan avtomatlashtirilgan konvertatsiya qilish. 

Dastur jismoniy jihatdan eskirmasa ham, xatolarni aniqlash va tuzatish bilan bog'liq bo'lgan murakkab ta'sirlarga duchor bo'ladi va nafaqat amalga oshirilgan echimlarning, balki asl muammo bayonotining ham eskirganligi.

Har qanday ishlab chiqarish nuqsonlarni topish va yo'q qilish jarayonlarini o'z ichiga oladi. Dasturlashda bu disk raskadrovka va sinov haqida. PP va TP dan qat'i nazar, dasturlarni ishlab chiqish jarayonida mehnat xarajatlarining taxminan 45% avtonom va kompleks sinov va dasturlarni disk raskadrovka qilish ulushiga to'g'ri keladi. Amaliy dasturlashda sinovlarga bunday katta yuk tabiiy lingvistik tushunchalardan sezilarli farq qiladigan maqsadlarini tushunishda aniqlikni talab qiladi.

Sinov - bu dasturning bunday qo'llanilishini tashkil etish, unda nuqson borligi aniqlanadi: xato yoki foydalanuvchilarning aniq guruhlari kutishlariga mos kelmaslik. Bu shuni anglatadiki, to'plamni aniqlash uchun uning elementlarini ko'rsatish etarli emas, shuningdek, to'plamga kira olmaydigan hamma narsani aniqlash kerak.

Odatda test ma'lumotlarini tayyorlash mehnatni tejashga va test natijalarining ishonchliligiga qaratilgan bir qator printsiplar va gipotezalarga bo'ysunadi:

- tanlangan kirish ma'lumotlari uchun kutilgan chiqish ma'lumotlari darhol tanlanadi; 

- xatoni aniqlamagan test sinov sifatida mantiqiy emas, lekin namoyish materiali sifatida foydali bo'lishi mumkin; 

- sinov bu ijodiy jarayon, chunki dasturda xato qilish imkoniyatlari uning to'g'ri tuzilishidan ko'ra xilma-xildir; 

- muvaffaqiyatli test yangi, ilgari sezilmaydigan xatoni ochib beradi; 

 

Sinovlarni avtomatlashtirish quyidagi muammolarni hal qiladi:



- yaxshi testlar to'plamini yaratish va to'plash; 

- to'plamni bir qator mezonlarga muvofiq to'liqligini baholash; 

- testlar bo'yicha dasturlarni bajarish, natijalarni baholash va ularni saqlash; 

- dasturlarning ramziy bajarilishi; 

- rivojlanish shartlaridan farqli ravishda muqobil sharoitda dasturlarni bajarish. 

 

Sinov materialini tanlashning nozik tomonlari S.K.Chernonojkinning kitobida batafsil tavsiflangan.



Xatolar manbalariga munosabat va ularning oldini olish choralari turli xil PPda farq qiladi. Agar imperativ protsessual dasturlash (IP) dasturlarni kompilyatsiya qilishda statik boshqarish imkoniyatini ta'minlaydigan ma'lumotlar turlarining (TD) spetsifikatsiyasiga murojaat qilsa , u holda funktsional dasturlash (FP) hisob-kitoblarning to'g'riligini kafolatlaydigan har qanday sharoitlarni to'liq dinamik boshqarishni afzal ko'radi.

Matematik nuqtai nazardan, sinov jarayoni ushbu funktsiya o'tmasligi kerak bo'lgan amalga oshirilgan funktsiya grafigidagi nuqtalarni aniqlash sifatida ifodalanishi mumkin. Xatolarni lokalizatsiya qilish - bu burilish nuqtasini o'rnatish. Xatolarni tuzatish - bu funktsiya ta'rifini uning aniqlangan grafikasini beradigan shaklga o'tkazish. Dasturning qiyosiy bajarilishi va uning prototipidan foydalanish mumkin.

Umuman olganda, dasturlarni ishlab chiqish jarayoni muammoni shakllantirish, uni hal qilish usullari, echim dasturi matni va testlar va "noanestlar" ni aks ettiruvchi ma'lumotlar to'plamini aniqlashtirish uchun bosqichlar ketma-ketligi sifatida ifodalanishi mumkin. Agar ketma-ketlik aniqlangan ob'ektlar mos keladigan holatga etib borsa, unda dastur disk raskadrovka tugatgan deb hisoblanadi.

Nosozliklarni tuzatish yondashuvlari sinov usullaridan kam emas, lekin talab qilinadigan disk raskadrovka xarajatlari miqdorini tasdiqlangan shablonlardan dasturlarni loyihalash uslubini tanlash, ishonchli standartlar doirasidan foydalanish, qulay amalga oshirilgan modellardan foydalanish orqali kamaytirish mumkin. Bu erda funktsional dasturlash paradigmasi ko'p narsani beradi.

Dasturni disk raskadrovka jarayonining murakkabligi, dasturni ishga tushirish kerak bo'lgan ma'lumotlar to'plamining muhimligi bilan baholanishi mumkin. Masalan, tsiklni o'z ichiga olgan dasturni disk raskadrovka uchun ma'lumotlar to'plami kamida uchta to'plamni o'z ichiga olishi kerak:

- tsikl tanasiga kirmasdan; 

- tsikl tanasiga bir martalik kirish bilan

- tsikl tanasining ko'p marta o'tishi bilan. 

 

Shunday qilib, ma'lum bir darajadagi bilimlarni, tashkilotning o'lchovlari, abstraktsiya darajasi va dasturning bajarilish darajasi muammolarini echishni qo'llab-quvvatlaydigan dasturlash tillari va tizimlari shaklida taqdim etilgan TP ning rivojlanishi bilan bog'liq bo'lgan bir qator SPlar mavjud bo'lib, ular sinov va disk raskadrovka muammolarini yomon ko'rib chiqish bilan, shuningdek rivojlanish jarayonini qo'llab-quvvatlaydi. (to'liq hayot aylanishi) dasturlari.



1.3. Dasturlarning hayotiy tsikli (hayot aylanishi)

Dasturlash texnologiyasining eng muhim vazifasi dasturni disk raskadrovka jarayonining yaqinlashishini ta'minlash, ya'ni. muammolarni echishning o'zaro yozishmalariga erishish, uni hal qilish usullari, yechim dasturi matni va testlar va "noontestlar" ni ifodalovchi ma'lumotlar to'plami. Muammoning yakuniy formulasi, uning echimi dasturda amalga oshirilgan bo'lib, umumiy masalani ham qisqartirish, ham umumiy atama - "aniqlashtirish" deb atash mumkin. Dasturni ishlab chiqish jarayonida qonuniyatlarning kashf etilishi "dasturiy hayot aylanishi" tushunchasiga olib keldi.

Dasturlarni yaratish jarayonida SP repertuarini o'zgartirish amaliy dasturlashda qarorlar qabul qilinadigan kengaytiriladigan makon tuzilishi bilan bog'liq. 

Eng sodda masalani echishda hal qilishga tayyorgarlik, echimlarni amalda bajarish va olingan natijalarni baholash kabi bosqichlarni ajratish mumkin. 

Amaliy dasturlashda kompyuterdan oldingi dasturlash natijalaridan foydalangan holda dastlab dasturni ishlab chiqish va ishlash bosqichlari ajratib ko'rsatildi. Bosqichlar o'z vaqtida qat'iy tartibda va muammoni hal qilish dasturi shaklida yakuniy natijaga olib borishi tushunilgan. Dastlab dasturlash uchun etarlicha o'rganilgan muammolar sinfi tezda tugadi va dasturlashda mehnatni tashkil etish tamoyillarini bir necha bor qayta ko'rib chiqish zarur edi. Haqiqat bizni bosqichlarning takrorlanishiga toqat qilishga majbur qildi, ularning har biri takroriy o'tishni talab qilishi mumkin edi, bu "palapartishlik printsipi" deb nomlanadi. Bundan tashqari, vaqt o'tishi bilan yangi muammolarni hal qilish dasturlarini ishlab chiqish bosqichidan oldinroq bo'lgan muammoning bayonotini tayyorlash bosqichiga e'tibor qaratildi. Ko'p o'tmay, "ehtiyojlarni aniqlash" bosqichi paydo bo'ldi - umuman dastur ishlab chiqish to'g'risida qaror qabul qilish.

Ishlab chiqarishni dasturlashda hayot tsikli kontseptsiyasi ishlab chiqildi, uning tuzilishi nafaqat savollarga aniq javobni talab qiladi "Nima? Qanday? Kim? ", Shuningdek, ular orasidagi ustuvor yo'nalishlarni tushunish.



Nima? Muammoni hal qilish natijasi qanday bo'lishi kerak? Dasturda ishlov beradigan dastlabki ma'lumotlar qanday? Ma'lumotlarni qayta ishlash natijasi qaysi shaklda taqdim etiladi?

Qanday? Qayta ishlash dasturi qanday tartibga solinadi? Ma'lumotlarni ishlash algoritmi nima? Dasturning ishlashi qanday harakatlarga asoslangan?

JSSV! Rivojlanishni kim qila oladi? Uning malakasi qanday bo'lishi kerak? U ma'lum bir muddat ichida mavjud bo'lgan uskunada dasturlashni talab qilinadigan dastur darajasiga etkaza oladimi?

Ushbu va boshqa ko'plab boshqa savollarga turli xil javoblar bilan, hayotni rivojlantirish dasturida etuk uzoq umr ishlab chiqarish uchun zarur bo'lgan qo'shimcha dasturlarni aniqlash uchun asoslar mavjud edi, bu dasturlarni modernizatsiya qilishni va dasturga qo'yiladigan talablarning rivojlanishini nazarda tutadi.

Yechilishi kerak bo'lgan muammolar sinflari va ularning echimlarini qo'llash sohalarining kengayishi bilan kaskadli hayot tsikli sxemasi ishlab chiqildi, unda fazalarni bajarish mezonlari belgilanadi, bu rivojlanish sifatini nazorat qilish imkonini beradi.

 

1-jadval



 

Hayotiy tsikl bosqichini yakunlash shartlari

 


Bosqich №

Faza nomi

Bosqichni yakunlash sharti

0

muammoni shakllantirish

ishlab chiqilgan dasturning sifat menejmenti vositalarining etarliligi tasdiqlangan;

1

talablarni belgilash

hujjatning tayyorligi tan olinadi,

 

 

dasturning kerakli natijalari haqida umumiy ma'lumot berish;

2018-04-01 121 2

talablar spetsifikatsiyasi

dastur natijalarini tasdiqlash uchun vositalarni tanlash amalga oshirildi

3

dizayn

loyihaning to'g'riligini tekshirish usullari aniqlanadi;

4

dasturni amalga oshirish

dastur tarkibiy qismlari tanlangan vositalarning to'liq to'plamida sinovdan o'tkazildi;

besh

sinov

dasturni oldindan tayyorlangan va ishlab chiqilgan tarkibiy qismlardan birlashtirish / yig'ish amalga oshirildi;

6

eskort

dastur sertifikatlandi, bu uning bajarilishining haqiqiy chegaralarini ko'rsatdi;

7

rivojlanish

muammoning echimi uchun dasturning foydalanuvchi talablariga muvofiqligi tekshirildi.

 

Muammolar sinf kengaytirish, darajasida bo'lgan hal usullari dastlabki tadqiqotlar, olib keldi bir o'xshash rivojlantirish ijro etuvchi vaqt, jihatidan bosqichlarida minishi, jadval taqdimot G. Günter ning diagrammalar . Tasnifi rivojlantirish jarayonida etiladi nazorat nuqtalari va iloji bosqich qaytib belgilarini bilan ikki o'lchovli fazo hosil bosqichlarida va texnologik vazifalari tuzilgan.

 

Bosqichlar:

1) tadqiqotlar;                   

2) texnik-iqtisodiy asoslash;                   

3) mumkin bo'lgan echimlarni loyihalash;                   

4) dasturlash; 5) dastur xususiyatlarini baholash; 6) dasturdan foydalanish. Vazifalar:                   

1) rejalashtirish;       

2) rivojlanish;       

3) xizmat;       

4) hujjatlar;       

5) sinov; 6) qo'llab-quvvatlash;       

7) akkompaniment. 

 

Bunday jadvalni yaratishda quyidagi hodisalarni hisobga olish tavsiya etiladi:



- dasturlar takroriy ishlab chiqilishi kerak;

- dasturdan foydalanishning barqaror stsenariylari mavjud; 

- dasturlashtiriladigan va bajariladigan funktsiyalar kompleksining muqarrar ravishda ko'payishi

- rivojlanishda hech narsa bir marta va umuman amalga oshirilmaydi;

- fazalar sonini ko'paytirish istisno qilinmaydi.

 

Dasturlashning murakkabligining hal qilinayotgan vazifalarni o'rganish darajasiga / yangilik darajasiga bog'liqligining namoyon bo'lishi, dasturlashning yuqori moslashuvchanligi bilan bir qatorda, har qanday o'rganilgan vazifalarni tayyor kutubxona modullari darajasiga o'tkazishga imkon beradi, bu "dasturning to'liq hayotiy tsikli" (LCP) tushunchasiga olib keldi. Hayotiy tsikl dasturidan farqi shundaki, dasturni birinchi demosidan, prototiplaridan va prototiplaridan dasturchining ishtirokisiz to'laqonli ishlashga yaroqli tayyor dasturiy mahsulotga o'tishda muammolar echimini pishib etish bosqichlarini aks ettiradigan va amalga oshirilgan echimlar makonini rivojlantirishga imkon beradigan sxemalar taqdimotida. 



Jismoniy nuqtai nazardan, dasturda eskirgan narsa yo'q. Uning ishlashidagi kutilmagan hodisalar, ishlab chiqarish jarayonida sezilmaydigan kamchiliklar bilan emas, balki uskunaning yangi imkoniyatlari, foydalanuvchi ko'nikmalarining o'zgarishi va dasturlash usullarini ishlab chiqish bilan bog'liq qarorlar o'rtasidagi farqning paydo bo'lishi bilan bog'liq bo'lishi mumkin. Shuning uchun, dasturlar axloqiy eskirishga duchor bo'lmoqdalar, bu esa ilgari yakunlangan hayot tsikli bilan dasturlarni ishlab chiqishni davom ettirishga olib keladi, bu esa dasturni ishlab chiqish bosqichlari ro'yxatini aniqlashtirishga olib keladi. 

Hayotiy tsikl rejalari hal qilinayotgan vazifalarni o'rganishning turli darajalarini hisobga olgan holda dastur hayotining bosqichlarini yoritib beradi, bu esa dasturlarni ishlab chiqarishda zarur takrorlanishlar sonini xolisona baholashga imkon beradi.

Takrorlashni minimallashtirish Gunter jadvallari bo'yicha kaskadli hayot aylanishi sxemasi va sifat menejmentining afzalliklariga zid ravishda meros qilib oladigan maxsus sanoat dasturlash texnologiyalarini yaratish orqali ta'minlanadi:

- majburiy qaror qabul qilish - darhol va iloji boricha;   

- sifatni boshqarish va asossiz muddatidan oldin qabul qilingan qarorlarning oldini olish. 

 

Sifat menejmentida qo'llaniladigan bosqichlar sharshara sxemasidagi bosqichni yakunlash mezonlari ta'riflariga mazmunli o'xshashdir.



Katta tizimlar uchun dasturlashning o'zi modullarni amalga oshirish yoki tanlash, modullardan dasturlarni yig'ish va olingan natijalarni hujjatlashtirish bilan qisqartiriladi. Shuni ta'kidlash kerakki, modullarni tatbiq etish funktsional jihatdan teng bo'lgan mustaqil dasturlarni ishlab chiqishga qaraganda ancha katta (3-9 marta) mehnat zichligiga ega. Dasturlarni tayyor modullardan yaratish, ularning tuzilishi va ishlashini mas'uliyatli o'rganishda qo'shimcha yukga ega. 

Ma'lumki, vazifa formulalarini o'rganish darajasi bo'yicha ishlab chiqish dasturning amaldagi versiyasini amalga oshirishning murakkabligini o'zgartirishdagi bir xillikka ega emas. Ya'ni, asosiy maqsad g'oyaning afzalliklarini namoyish etish bo'lgan prototipni ishlab chiqish uchun kichik mehnat xarajatlaridan so'ng, eksperimental sinov maydonchasini yaratish tadqiqotning to'liqligi va muammoni hal qilish vositalari va usullarini ishlab chiqish va uni amalga oshirishning amaliyligi chegaralarini aniqlash uchun juda katta mehnat xarajatlarini talab qiladi. Amaliy versiyani ishlab chiqarish murosasi darajasida amalga oshirishning murakkabligini intuitiv baholash sezilarli darajada kam bo'lib, bu odatda amaliylik chegaralarini taxmin qilish umidida dastlabki tadqiqotlarda tejamkorlikni keltirib chiqaradi, lekin odatda muammoni hal qilishning bir nechta versiyalari zarurligiga olib keladi. 

Shuni ta'kidlash kerakki, uzoq muddatli dasturni ishlab chiqish usuli bilan hal qilingan yangi vazifaning hayotiy tsikli kontseptsiyasi hayot aylanishi dasturi kontseptsiyasining orqasida turadi. Aytishimiz mumkinki, har bir bosqich, bosqich, bosqich, uning echimini qo'llashning o'zgaruvchan sharoitida hal qilinayotgan muammoning formulasi to'g'risidagi ma'lumotlarga aniqlik kiritilmoqda. 

Dasturlash amaliyotida vazifalarni va muammolarni hal qilish usullariga yondashuvlarni belgilashda fikrlash uslubida farq qiladigan bir qator hayot tsikllari sxemalari mavjud. Dasturiy ta'minotni tanlash nafaqat mehnat zichligiga ta'sir qilmaydi, balki sezilarli darajada ishlab chiqilgan dasturning ishlashi va hayotiyligini belgilaydi.



1.4. Dasturlash paradigmalarini ishlab chiqish

Falsafa va tilshunoslikdan yaxshi tanish bo'lgan "paradigma" so'zi kompyuter fanida va dasturlashda tor professional ma'noga ega. Dasturlash paradigmasi muammolarni qo'yish va ularni hal qilishning dastlabki kontseptual sxemasi sifatida bir vaqtning o'zida mavjud bo'lmasligi mumkin bo'lgan, ammo intuitiv ravishda umumiy tushunchaga birlashtirilgan faktlar, hodisalar, hodisalar va jarayonlarni grammatik tavsiflash vositasidir. 



Imperativ nazorat va dasturiy ta'minotlarning protsessual-operatorlik uslubiga asoslangan amaliy dasturlashning eng keng tarqalgan amaliyoti ellik yildan ko'proq vaqt oldin hisoblash va axborot jarayonlarini tashkil qilish bo'yicha mutaxassislarning tor kasbiy faoliyati sohasida mashhurlikka erishdi . Nazariy va eksperimental dasturlash sohasidagi mutaxassislar rasmiy modellarning dasturlashdagi ahamiyati va tub mohiyatini va ularni amalga oshirishning samarali vositalarini o'rganishdi. So'nggi o'n yilliklarda informatika geografiyasi keskin kengayib, uni ommaviy kommunikatsiya va hordiq chiqarish sohasi qamrab oldi. Bu axborotni qayta ishlash vositalari va usullarini tanlashda axborot tizimlari va afzalliklarini baholash mezonlarini o'zgartiradi.

Amaliy dasturlash kompyuterlar paydo bo'lishidan ancha oldin o'rganilgan ma'lumotlarning kompyuterlashtirilishini va sonli ishlov berishning hisoblash jarayonlarini aks ettiruvchi muammoli yo'nalishga bo'ysundirilgan. Aynan shu erda aniq amaliy natija tezda paydo bo'ldi. Tabiiyki, bunday sohalarda dasturlash kodlashdan unchalik farq qilmaydi: buning uchun, qoida tariqasida, harakatlarni aks ettirish operatori uslubi etarli. Amaliy dasturlash amaliyotida tasdiqlangan shablonlarga va protsedura kutubxonalariga ishonish va xavfli tajribalardan qochish odat tusiga kiradi. Ilmiy hisob-kitoblarning aniqligi va barqarorligi baholanadi. Amaliy dasturlashning faxriysi Fortran asta-sekin bu sohada Paskal va C ga, super kompyuterlarda esa Sisal kabi parallel dasturlash tillariga yo'l bera boshladi. Endi ularga Java, C #, Scala-dagi yangiliklar ham qo'shildi.

Nazariy dasturlash nashrlarda keltirilgan dasturlash va informatika sohasidagi ilmiy tajribalar natijalarining ravshanligi va taqqoslanishiga qaratilgan. Rasmiy modellar o'zaro bog'liq matematik tushunchalarning asosiy xususiyatlarini meros qilib oldilar va o'zlarini kompyuter fanida algoritmik yondashuv sifatida namoyon qildilar. Dalillarga asoslangan konstruktsiyalarga intilish va ularning samaradorligi, ehtimolligi, to'g'riligi, to'g'riligi va diagrammalar va dastur matnlaridagi boshqa rasmiylashtirilgan munosabatlarni baholash tizimli dasturlash va dasturni ishlab chiqish jarayonining ishonchliligiga erishish uchun boshqa usullar uchun asos bo'lib xizmat qildi, masalan, D. Knut tomonidan taklif qilingan "vakolatli dasturlash". Dasturlash nazariyasi uchun ishchi material bo'lib xizmat qilgan Algol va Paskalning standart kichik to'plamlari eksperimentlar uchun qulayroq amaliy tillar bilan almashtirildi, masalan ML, Miranda, Scheme, Haskell, Real, C-light va boshqalar.

Eksperimental dasturlash tizim dasturlash muammolarini o'rganish, sun'iy intellekt va informatika fanida yangi ufqlarni rivojlantirishda shakllandi. Axborotni taqdim etishga mavhum yondashuv, funktsiyalarni tuzishning lakonik, universal uslubi, turli xil toifadagi funktsiyalar uchun ijro etish muhitining ravshanligi, rekursiv konstruktsiyalarning erkinligi, matematik va tadqiqotchining sezgi sezgisiga ishonish, xotirani ajratish bo'yicha printsipial bo'lmagan muammolarni vaqtidan oldin hal qilish yukidan qochish, ta'riflar doirasidagi asossiz cheklovlardan voz kechish - bularning barchasi Jon Makkarti tomonidan universal Lisp tili g'oyasida bog'langan. Lispning birinchi tatbiq etilishining mulohazali va uslubiy asosliligi yangi muammolarni echishda tezkor tajriba to'plashga, ularni amaliy va nazariy dasturlashga tayyorlashga imkon berdi, bu esa funktsional dasturlash (FP) g'oyalarining kristallanishiga olib keldi. Hozirgi vaqtda turli xil sinflar muammolari va texnik vositalar turlariga yo'naltirilgan yuzlab funktsional dasturlash tillari mavjud. 

Hozirgi kunda asosiy dasturlash paradigmalari sifatida quyidagilar tan olingan: IP, FP, mantiqiy dasturlash (LP) va ob'ektga yo'naltirilgan dasturlash (OOP) - va ular LP va OOP ni kengaytma deb hisoblagan holda, FP, parallel dasturlash, IP kabi asosiy dasturlash paradigmalarining tarbiyaviy ahamiyatini ta'kidlaydilar. asosiy paradigmalar.

Shuni ta'kidlash kerakki, asosiy dasturiy ta'minot dasturlari turli xil sinflar muammolari uchun har xil yo'llar bilan namoyon bo'ladi va dasturiy ta'minot dasturlarini tanlash dasturlashning murakkabligi, dasturlash texnologiyasining muvaffaqiyati va dasturlarni qo'llashning ishonchliligiga ta'sir qiladi.

1.5. Operatsion pragmatikasi Operatsion pragmatikasining asosiy nuqtalarini ta'kidlab o'tamiz:

- dasturlash jarayonida dasturning sifat mezonlari o'zgarishi mumkin, bu ko'plab ilgari qabul qilingan qarorlarni qayta ko'rib chiqishga olib kelishi mumkin; 

- bilimlarni namoyish etish tizimlarining rivojlanishi dasturlash texnologiyasini tanlashga ta'sir etuvchi, ma'lumotni yuqoriga va pastga qarab aniqlashtirish bosqichlarining o'zgarishiga qadar kamayadi; 

- hal qilinayotgan vazifalarni o'rganish darajasi muallif bo'lmagan foydalanishga yaroqli dasturga erishish uchun mehnat zichligini prognoz qilishda etakchi omil; 

- dasturlash texnologiyalari texnologik talablarga rioya qilingan holda rivojlanish natijasining kafolatlangan olinishini ta'minlaydi; 

- dasturni sinovdan o'tkazish va disk raskadrovka qilish uchun maxsus uskunalar talab qilinadi, ularning vositalari kamdan-kam istisnolardan tashqari, PLda ko'rsatilmaydi, lekin qo'shma korxonada bo'lishi mumkin; 

- hayot tsikli dasturining yaqinlashishi hal qilinayotgan muammoni o'rganish darajasi va hayot tsikli dastur sxemasi o'rtasidagi moslikni malakali tanlash bilan ta'minlanadi, bu esa tegishli texnologiya bilan berilgan sifat mezoniga javob beradigan dasturni disk raskadrovka qilishga imkon beradi; 

- amalga oshirilayotgan echimlarning ishlash darajasi dasturni ishlab chiqish jarayonida yaratilgan dasturiy ta'minot komponentlarining to'liqligi va ko'p qirraliligiga bog'liq. 

 

xulosalar

1. Dasturiy ta'minotni tanlash TP ning muvaffaqiyati va hayot tsikli dasturining mehnat zichligiga ta'sir qiladi, shuningdek, hal qilinayotgan muammoning bilim darajasi, shu jumladan uni hal qilish usullari, ishlab chiqilgan dasturni tashkil etish, samaradorligi va yashashga yaroqliligiga ta'sir qiladi.                    



2. SP o'zini muammoning bayonini, uni hal qilish usulini, dasturni qismlarga, modullarga, jihatlarga yoki tarkibiy qismlarga ajratish va ushbu SPni qo'llab-quvvatlovchi LSP dasturlash nuqtai nazaridan loyihada qabul qilingan qarorlarni taqdim etish qulayligini ko'rsatishda namoyon bo'ladi.                    

3. LSP-larni qo'llab-quvvatlanadigan dasturiy ta'minot bo'yicha tasniflash ularning operatsion semantikasi va amalga oshirish pragmatikasini tahlil qilishni talab qiladi.                      
Download 35.75 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling