Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

6-lekciya_paradigma_qq

.pdf
Скачиваний:
0
Добавлен:
18.01.2026
Размер:
229.58 Кб
Скачать

6-lekciya. Imperativ programmalastırıw túrleri.

Jobası:

1.Imperativ programmalastırıwdıń klassifikaciyası: Tariyxıy kózqaras.

2.Strukturalanbaǵan (Monolit) programmalastırıw: Túp-tamırları hám mashqalaları.

3.Strukturalı hám Proceduralıq programmalastırıw: Tártip hám funkciyalar.

4.Modullik programmalastırıw: Úlken sistemalardı basqarıw usılı.

Strukturalanbaǵan (Monolit) hám Strukturalı túrleri

Imperativ programmalastırıw paradigmaları óz ishinde rawajlanıw dárejesine hám kodtı shólkemlestiriw usılına qaray bir neshe túrge bólinedi. Olardıń eń áyyemgisi hám eń ápiwayısı – bul "Strukturalaspaǵan" (Unstructured) yamasa monolit programmalastırıw. Bul túrdegi programmalar baslanıwınan aqırına shekem bir pútin blok retinde jazıladı. Kodtıń orınlanıw tártibi júdá ápiwayı: buyrıqlar izbe-iz orınlanadı hám basqarıw aǵımı GOTO (belgili bir qatarǵa ótiw) operatorı arqalı qálegen jerge sekirip ótiwi múmkin. Dáslepki Basic versiyaları, JOSS hám dáslepki Fortran kodları usı túrge kiredi. Strukturalaspaǵan imperativ programmalastırıwdıń tiykarǵı kemshiligi – bul úlken kólemdegi kodtı basqarıwdıń qıyınlıǵı. Programma kólemi artqan sayın, GOTO operatorları arqalı qatarlar arasındaǵı baylanıs shiyelenisip ketedi. Bul qubılıs "Spagetti kod" dep ataladı, sebebi programmanıń logikasın baqlap barıw, tabaqtaǵı aralasıp ketken makaronlardı ajıratıw sıyaqlı qıyın jumısqa aylanadı. Bunday kodtı ońlaw, jańalaw yamasa basqa baǵdarlamashıǵa túsindiriw derlik múmkin emes. Sol sebepli, bul túr házirgi waqıtta tek tariyxıy áhmiyetke iye yamasa júdá kishi skriptlerde ǵana ushırasadı.

Bul mashqalanı sheshiw ushın 1960-70-jılları "Strukturalı imperativ programmalastırıw" (Structured Programming) túri payda boldı. Onıń tiykarǵı ideyası – GOTO operatorınan waz keship, onıń ornına standart basqarıw konstrukciyaların (bloklardı) qollanıw. Bul túrdegi programmalar úsh tiykarǵı bloktan quraladı: izbe-izlik, tarmaqlanıw (if/else) hám cikller (while/for). Strukturalı programmalastırıw kodtıń oqılıwın hám logikalıq turaqlılıǵın támiyinleydi. Pascal hám C tilleri bul túrdiń klassikalıq wákilleri bolıp tabıladı.

Strukturalı programmalastırıwdıń jáne bir ózgesheligi – ol "Joqarıdantómenge" (Top-down) proektlestiriw usılına tiykarlanadı. Yaǵnıy, dáslep máseleniń ulıwma sheshimi jazıladı, keyin ol mayda detallarǵa bólinedi. Bul jerde kod endi bir pútin monolit emes, al logikalıq bloklarǵa bólinedi. Bul usıl imperativ paradigmanıń eń áhmiyetli evolyuciyalıq qademi boldı, sebebi ol programmalastırıwdı kórkem ónerden injenerlik pánge aylandırdı.

Proceduralıq programmalastırıw

Imperativ programmalastırıwdıń eń keń tarqalǵan túri – bul "Proceduralıq programmalastırıw". Kóbinese strukturalı programmalastırıw menen birge

qollanılsa da, proceduralıq usıldıń ózine tán ayrıqshalıǵı bar. Bul usıldıń orayında "Procedura" (basqa atamaları: funkciya, subprogramma, metod) túsinigi turadı. Proceduralıq programmalastırıw kodtı qayta qollanıwǵa (Code Reusability) baǵdarlanǵan. Eger birdey kod programmanıń bir neshe jerinde qollanılsa, onı bólek atama menen funkciyaǵa aylandırıp, kerek jerinde sol atama arqalı shaqırıw múmkin.

Proceduralıq túrdiń eń úlken jeńislerinen biri – bul "Abstrakciya" mexanizmi. Procedura sırtqı dúnya ushın "qara qutı" (black box) sıyaqlı isleydi: biz oǵan maǵlıwmat beremiz (argument) hám ol bizge nátiyje qaytaradı. Ishinde qanday esaplawlar bolıp atırǵanı, qanday ózgeriwshiler jaratılıp atırǵanı tiykarǵı programma ushın qızıq emes. Bul programmistke quramalı algoritmlerdi bir márte jazıp, keyin olardıń islew detalların umıtıp, tek nátiyjesinen paydalanıwǵa imkaniyat beredi. C tili – proceduralıq programmalastırıwdıń eń jarqın mısalı.

Proceduralıq programmalastırıwda "Kórinis tarawı" (Scope) hám "Ómir súriw waqtı" (Lifetime) qaǵıydaları júdá qatań saqlanadı. Procedura ishinde jaratılǵan ózgeriwshiler (lokal) sırtqı ózgeriwshilerge (global) tásir etpeydi (eger arnawlı kórsetilmese). Bul "kapsulyaciya"nıń (izolyaciyanıń) dáslepki kórinisi edi. Imperativ kodtıń qáwipsizligi usı lokalizaciyalarǵa baylanıslı. Mısalı, esaplaw() degen funkciyanıń ishindegi i ózgeriwshisi, basqa shıǵarıw() funkciyasındaǵı i ózgeriwshisi menen heshqanday baylanısqa iye emes.

Degen menen, proceduralıq programmalastırıwdıń sheklewleri de bar. Programma júdá úlkeyip ketkende, funkciyalar sanı júzlegen yamasa mıńlaǵan bolıwı múmkin. Bunday jaǵdayda qaysı funkciya qaysı global maǵlıwmatlardı ózgertip atırǵanın qadaǵalaw qıyınlasadı. Proceduralar tek háreketlerdi (kodtı) toparlaydı, biraq maǵlıwmatlardı (data) toparlawda hálsizlik etedi. Bul kemshilik keyinirek Obyektke Baǵdarlanǵan Programmalastırıw (OBP) arqalı sheshildi, biraq OBP-nıń ózi de proceduralıq usıldıń logikalıq dawamı bolıp esaplanadı.

Modullik programmalastırıw

Imperativ programmalastırıwdıń úshinshi áhmiyetli túri – bul "Modullik programmalastırıw" (Modular Programming). Bul usıl proceduralıq stildi jáne de bir basqısh joqarı kóteredi. Eger proceduralıq usıl kodtı funkciyalarǵa bólse, modullik usıl funkciyalar menen maǵlıwmatlardı "Modullerge" (fayllarǵa, paketlerge, kitapxanalarǵa) bóliwdi usınıs etedi. Modul – bul logikalıq jaqtan baylanısqan funkciyalar hám ózgeriwshilerdiń jıyındısı. Mısalı, grafika menen isleytuǵın barlıq funkciyalar graphics.h moduline, al fayllar menen isleytuǵınları io.h moduline jıynaladı. Modullik programmalastırıwdıń eń baslı principi – "Interfeys hám Implementaciya"nı (Interface vs Implementation) ajıratıw. Modul óziniń ishindegi ayırım funkciyalardı sırtqı paydalanıwshıǵa ashıq qaldıradı (public interface), al qalǵan ishki kómekshi funkciyalardı hám ózgeriwshilerdi jasırıp qoyadı (private implementation). Bul basqa programmistlerdiń moduldiń ishki dúzilisin buzıp qoyıwınıń aldın aladı. Ada hám Modula-2 tilleri arnawlı usı paradigma ushın islep shıǵılǵan, al C tilinde bul header (.h) hám source (.c) fayllar arqalı ámelge asırıladı.

Bul túrdiń ámeliy áhmiyeti "Bólek kompilyaciya" (Separate Compilation) imkaniyatında kórinedi. Úlken proektlerde millionlaǵan qatar kod bolıwı múmkin. Eger biz kishkene ózgeris kirgizsek, pútkil programmanı bastan-ayaq qayta kompilyaciya etiw kóp waqıt aladı. Modullik usılda tek ǵana ózgeris kirgizilgen modul qayta kompilyaciyalanadı hám keyin basqa moduller menen biriktiriledi (linking). Bul programma islep shıǵıw tezligin onlaǵan ese arttıradı.

Búgingi kúngi imperativ tillerdiń kópshiligi (Go, Rust, C) usı úsh túrdiń (strukturalı, proceduralıq hám modullik) sintezi bolıp tabıladı. Olar GOTO-dan bas tartqan, funkciyalarǵa tiykarlanǵan hám kúshli modullik sistemaǵa iye. Imperativ programmalastırıw túrleri zamanagóy programmalıq injeneriyanıń negizi bolıp, olar operaciyalıq sistemalardan baslap, mikrokontrollerlerge shekemgi barlıq tarawlarda eń isenimli usıl retinde qallanılmaqta.

BAQLAW SORAWLARÍ:

1."Strukturalaspaǵan" (Monolit) programmalastırıw hám "Spagetti kod" túsinikleri arasında qanday baylanıs bar?

2.Strukturalı programmalastırıwdıń úsh tiykarǵı blogı (konstrukciyası) qaysılar?

3.Proceduralıq programmalastırıwda "Abstrakciya" hám "Kapsulyaciya" (Scope) qalay ámelge asırıladı?

4.Modullik programmalastırıwdıń "Interfeys" hám "Implementaciya" túsiniklerin ajıratıwdaǵı roli qanday?

5.Bólek kompilyaciya (Separate Compilation) neni ańlatadı hám ol qanday payda beredi?

Соседние файлы в предмете Programmalastiriw paradigmalari