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

7-lekciya_paradigma_qq

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

7-lekciya. Standart imperativ-proceduralıq programmalastırıw.

Jobası:

1.Imperativ tillerdi standartlastırıw: ANSI hám ISO standartlarınıń áhmiyeti.

2.Standart kitapxanalar: Qayta qollanıw hám kodtıń universallıǵı.

3.Yad penen tikkeley islesiw: Kórsetkishler (Pointers) hám yadtı dinamikalıq basqarıw.

4.Kirgiziw-shıǵarıw (I/O) aǵımları hám fayllıq operaciyalar.

Standartlastırıw hám tildiń turaqlılıǵı

Imperativ-proceduralıq programmalastırıw ótken ásirdiń 70-jıllarında óziniń shıńına jetti hám bul dáwirde tillerdi "Standartlastırıw" máselesi eń áhmiyetli orınǵa shıqtı. Dáslepki waqıtlarda bir tildiń hár túrli versiyaları (dialektleri) bar edi, bul bolsa bir kompyuterde jazılǵan programmanıń ekinshi kompyuterde islemewine alıp keletuǵın edi. Bul mashqalanı sheshiw ushın ANSI (American National Standards Institute) hám ISO (International Organization for Standardization) sıyaqlı shólkemler tiller ushın qatań qaǵıydalar jıynaǵın islep shıqtı. "Standart imperativ programmalastırıw" degende, biz tiykarınan usı xalıqaralıq standartlarǵa (mısalı, C89, C99, Standard Pascal) tolıq juwap beretuǵın hám hár qanday platformada birdey isleytuǵın programmalastırıw usılın túsinemiz.

Bul basqıshtaǵı eń ayqın mısal hám "standart" dep qabıl etilgen til – bul C tili bolıp tabıladı. Ol proceduralıq paradigmanıń "altın standartı"n belgilep berdi. Standart imperativ tilde kodtıń orınlanıwı anıq belgilengen basqıshlardan turadı: Preprocessing (aldın ala islew), Compiling (kompilyaciya), Linking (biriktiriw). Standart bul basqıshlardıń hárbirinde kompilyatordıń ózin qalay tutıwı kerekligin hám kodtıń sintaksisiniń qanday bolıwın qatań qadaǵalaydı. Bul programmistlerge tek qısqa waqıtlıq emes, al onlaǵan jıllar dawamında isleytuǵın, turaqlı (stable) sistemalardı jaratıwǵa imkaniyat berdi. Standart imperativ programmalastırıwda tipler sisteması (Type System) da anıq standartqa iye boldı. int, float, char, double sıyaqlı tiykarǵı maǵlıwmat tipleri hám olardıń yadtıń ishinde iyeleytuǵın orınları (bit hám baytlar sanı) platformaǵa qaray standartlastırıldı. Mısalı, standart bizge char tipi hámme waqıtta 1 bayt bolıwı kerekligin aytadı. Bunday anıqlıq programmistke apparatlıq támiynattıń oǵada tómengi dárejesinde jumıs islese de, kodtıń basqa mashinalarda da durıs isleytuǵınına kepillik berdi. Bul "tasıwǵa jaramlılıq" (portability) qásiyetiniń tiykarı boldı.

Bunnan tısqarı, standart imperativ programmalastırıw kodtıń strukturasına da talaplar qoyadı. Proceduralardı (funkciyalardı) járiyalaw (declaration) hám anıqlaw (definition) bir-birinen ajıratıldı. Kóbinese baslı faylları (.h) hám kod faylları (.c) sisteması qollanıldı. Bul usıl iri proektlerde interfeys penen realizaciyanı ajıratıp, kodtıń oqılıwın hám komanda bolıp islesiwdi ańsatlastırdı. Standartlastırıw arqalı programmalastırıw tilleri tek qural ǵana emes, al injenerlik disciplinanıń tiykarına aylandı.

Standart kitapxanalar hám yad penen islesiw

Standart imperativ-proceduralıq programmalastırıwdıń ajıralmas bólegi – bul "Standart kitapxanalar" (Standard Libraries). Tildiń ózek (core) sintaksisi ádette júdá kishi boladı (tek operatorlar hám tipler), al haqıyqıy jumıs quralı kitapxanalarda jaylasqan. Mısalı, C tiliniń standart kitapxanası (libc) matematikalıq esaplawlar (math.h), qatarlar menen islesiw (string.h), waqıt hám sáne (time.h) sıyaqlı júzlegen tayın funkciyalardı usınadı. Standart kitapxananıń bolıwı programmistti "velosipedti qayta oylap tabıw"dan qutqaradı hám kodtıń effektivligin támiyinleydi, sebebi bul funkciyalar eń tájiriybeli qánigeler tárepinen optimallastırılǵan. Bul paradigmanıń eń kúshli hám sol waqıtta eń qáwipli tárepi – bul "Kórsetkishler" (Pointers) hám yad penen tikkeley islesiw. Standart imperativ tilde yadtıń hárbir yacheykasına onıń adresin kórsetiw arqalı tikkeley júzleniwge boladı. Kórsetkish – bul basqa bir ózgeriwshiniń yadtaǵı adresin saqlaytuǵın arnawlı ózgeriwshi. Bul mexanizm massivlerdi, strukturalardı hám quramalı maǵlıwmatlar strukturasın (baylanısqan dizimler, terekler) júdá tez qayta islewge imkaniyat berdi. Kórsetkishler arqalı funkciyaǵa úlken kólemdegi maǵlıwmatlardıń nusqasın (copy) jibermesten, tek onıń adresin jiberiw múmkin, bul programmanıń islew tezligin oǵada arttıradı.

Yadtı basqarıw eki túrli aymaqta ámelge asırıladı: "Stek" (Stack) hám "Úyindi" (Heap). Standart proceduralıq programmalastırıwda lokal ózgeriwshiler avtomat túrde Stekte saqlanadı hám funkciya tamamlanǵanda óshiriledi. Biraq, programmist kóbinese "Dinamikalıq yad bólistiriw"ge (Dynamic Memory Allocation) mútáj boladı, bul Heap tarawında ámelge asadı. malloc (memory allocation) hám free (yadtı bosatıw) sıyaqlı standart funkciyalar arqalı programmist programma islep turǵan waqıtta qancha yad kerek bolsa, sonsha yad alıwı múmkin.

Degen menen, bul erkinlik úlken juwapkershilikti talap etedi. Standart imperativ tillerde (Java yamasa Python-nan ózgeshe) "Qoqım jıynawshı" (Garbage Collector) joq. Yaǵnıy, programmist malloc penen alǵan yadtı jumıs pitkennen soń ózi qol menen free qılıp bosatıwı shárt. Eger bul islenbese, "Yadtıń aǵıp ketiwi" (Memory Leak) mashqalası payda boladı, yaǵnıy programma waqıt ótken sayın kompyuterdiń barlıq yadın jep qoyıp, sistemanıń qatıp qalıwına alıp keledi. Bul standart imperativ paradigmanıń eń qıyın aspektlerinen biri bolıp tabıladı.

Kiriw-shıǵıw aǵımları hám ulıwma juwmaq

Standart imperativ programmalastırıwda maǵlıwmatlardıń sırtqı dúnya menen almasıwı "Aǵımlar" (Streams) koncepciyasına tiykarlanǵan. Bul koncepciya boyınsha, klaviaturadan kiretuǵın maǵlıwmat yamasa ekranda kórinetuǵın tekst – bul simvollardıń úzliksiz aǵımı dep esaplanadı. Standart kitapxana úsh tiykarǵı aǵımdı avtomat túrde ashıp beredi: stdin (standart kiriw - klaviatura), stdout (standart shıǵıw - ekran) hám stderr (qáteler aǵımı). printf hám scanf sıyaqlı funkciyalar usı aǵımlar menen jumıs islep, paydalanıwshı menen dialogtı támiyinleydi. Bul abstrakciya qurılmalardıń (klaviatura, monitor, printer) fizikalıq ózgesheliklerine qaramastan, ulıwma bir interfeys penen islesiwge múmkinshilik berdi.

Fayllar menen islesiw de usı aǵım koncepciyasınıń dawamı bolıp tabıladı.

Standart imperativ tilde fayl – bul disktegi baytlar izbe-izligi. Fayl menen islesiw ushın dáslep ol "ashıladı" (fopen), bunda operaciyalıq sistema programmaǵa arnawlı bufer hám fayl kórsetkishin (file pointer) beredi. Jumıs processinde maǵlıwmatlar oqıladı yamasa jazıladı, hám eń sońında fayl minnetli túrde "jabıladı" (fclose). Fayldı jabıwdıń áhmiyeti sonda, ol buferde qalıp qoyǵan maǵlıwmatlardı diskke tolıq jazıwǵa hám sistemanıń resursların bosatıwǵa kepillik beredi. Standart imperativ-proceduralıq programmalastırıw búgingi kúni de óz áhmiyetin joytqan joq. Zamanagóy operaciyalıq sistemalardıń (Linux, Windows, macOS) yadroları, mikrokontrollerler ushın programmalar hám joqarı ónimlilikti talap etetuǵın oyın dvijokları elege shekem usı paradigmada (tiykarınan C hám C++ tillerinde) jazıladı. Bul paradigma studentlerge kompyuterdiń qalay isleytuǵının, yadtıń qalay dúzilgenin hám maǵlıwmatlardıń qalay uzatılatuǵının eń tereń dárejede úyretedi. Ol basqa joqarı dárejeli tillerdiń (Python, JavaScript) fundamenti bolıp tabıladı.

Juwmaqlap aytqanda, standart imperativ-proceduralıq programmalastırıw – bul "tártip", "effektivlik" hám "qadaǵalaw" bolıp tabıladı. Ol bizge kompyuter menen onıń óz tilinde, biraq adamǵa túsinikli standartlastırılǵan qaǵıydalar arqalı sóylesiw imkaniyatın berdi. Eger siz bul paradigmanı tolıq ózlestirseńiz, keleshekte qanday jańa texnologiya shıqsa da, onıń túbiri hám islew principin ańsat túsinip alasız.

BAQLAW SORAWLARÍ:

1.Programmalastırıw tillerin standartlastırıw (ANSI/ISO) ne ushın zárúr hám ol qanday mashqalanı sheshedi?

2.Kórsetkish (Pointer) degende neni túsinesiz hám ol yadtı basqarıwda qanday imkaniyatlar beredi?

3.Stek (Stack) hám Úyindi (Heap) yadlarınıń bir-birinen ayırmashılıǵı nede?

4.Standart kitapxanalardıń (mısalı, C tilindegi stdio.h) imperativ programmalastırıwdaǵı roli qanday?

5."Yadtıń aǵıp ketiwi" (Memory Leak) degen ne hám onıń aldın alıw ushın standart proceduralıq tilde ne islew kerek?

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