1-lekciya_paradigma_qq
.pdf1-lekciya. Kirisiw. Programmalastırıw usılları hám paradigmalar pániniń predmeti, wazıypaları, tiykarǵı túsinikleri.
Jobası:
1.Kirisiw: Pánniń predmeti hám onıń zamanagóy informaciyalıq texnologiyalar tarawındaǵı tutqan ornı.
2.Tiykarǵı túsinikler: Programmalastırıw paradigması, usılı hám stili túsiniklerine anıqlama.
3.Pánniń wazıypaları: Programmalastırıw paradigmaların úyreniwdiń ámeliy hám teoriyalıq áhmiyeti.
4.Paradigmalar klassifikaciyası: Programmalastırıw tilleriniń rawajlanıwı hám paradigma túrlerine ulıwma sholıw.
Pánniń predmeti hám "paradigma" túsinigi
"Programmalastırıw usılları hám paradigmalar" páni tek ǵana kompyuter kodların jazıwdı úyretip qoymay, al máselelerdi sheshiwde qollanılatuǵın túrli oypikirler hám usıllar (tásiller) jıyınaǵı bolıp tabıladı. Bul pánniń tiykarǵı predmeti – programmalıq támiynattı islep shıǵıw processinde qollanılatuǵın fundamental koncepciyalar, modeller hám teoriyalardı úyreniw. Programmist qandayda bir tilde kod jazǵanda, ol tek sintaksis qaǵıydalarına emes, al sol tildiń negizinde jatqan logikaǵa súyenip háreket etedi. Sol sebepli, bul pán studentlerge túrli programmalastırıw tilleriniń ishki dúzilisin hám olardıń qanday principke tiykarlanǵanın tereń túsinip jetiwge járdem beredi.
"Paradigma" sózi grek tilinen alınǵan bolıp, "mısal", "úlgi" yamasa "model" degen mánislerdi ańlatadı. Informaciyalıq texnologiyalar hám programmalastırıw tarawında paradigma – bul kompyuter programmasın dúziw hám onıń islesiw principin belgileytuǵın kózqaraslar sisteması. Ápiwayı sóz benen aytqanda, paradigma – bul programmisttiń mashqalanı sheshiw jolın qalay kóriwi. Mısalı, geybir paradigmalar mashqalanı izbe-iz orınlanatuǵın buyruqlar dizimi dep qaraydı (imperativ), al basqaları bolsa onı matematikalıq funkciyalar yamasa obyektlerdiń óz-ara tásiri dep esaplaydı. Paradigma programmanıń strukturasın, kodtıń oqılıwın hám onıń keyingi waqıtlarda qalay qollap-quwatlanıwın belgilep beredi.
Programmalastırıw usılları hám paradigmalar páni bir paradigma ekinshisinen jaqsı yamasa jaman dep úyretpeydi, kerisinshe, hárbir paradigmanıń ózine tán artıqmashılıqları hám kemshilikleri bar ekenin túsindirip beredi. Házirgi waqıtta júdá kóp programmalastırıw tilleri bar (Python, Java, C++, Haskell hám t.b.), biraq olardıń barlıǵı sanawlı ǵana paradigmalarǵa tiykarlanǵan. Eger qánige paradigmalardı jaqsı túsinip alsa, ol jańa programmalastırıw tilin úyreniwde
qıyınshılıqqa ushıramaydı, sebebi tildiń sintaksisi ózgergeni menen, onıń tiykarındaǵı princip (paradigma) kóbinese uqsas bolıp qaladı.
Usılayınsha, pánniń tiykarǵı maqseti – studentlerde programmalastırıwǵa keń kólemli hám injenerlik kózqaras penen qaraytuǵın uqıptı qáliplestiriw. Bul pán arqalı siz tek "kod jazıwshı" emes, al "programmalıq arxitektor" retinde pikirlewdi úyrenesiz. Programmalastırıw usılları – bul abstrakt ideyalardı kompyuter túsinetuǵın tildegi anıq algoritmlerge aylandırıw quralı bolsa, paradigma – sol quraldı qalay, qashan hám ne ushın qollanıw kerekligin kórsetip beretuǵın jol kórsetkish bolıp tabıladı.
Programmalastırıw tilleriniń evolyuciyası hám abstraksiya
Programmalastırıw paradigmalarınıń kelip shıǵıwı hám rawajlanıwı kompyuter texnologiyalarınıń evolyuciyası menen tikkeley baylanıslı. Dáslepki dáwirlerde, yaǵnıy XX ásirdiń 40-50-jıllarında programmalastırıw tikkeley mashina kodlarında (binar kodlarda) ámelge asırılatuǵın edi. Bul processte programmist apparatlıq támiynattıń (processordıń, yadtıń) hárbir detalın biliwi shárt bolǵan. Bul jerde "tómen dárejeli" paradigma ústemlik etti, yaǵnıy programmist mashqalanı emes, al mashinanı basqarıw haqqında kóbirek oylaytuǵın edi. Bul usıl júdá quramalı, waqıt talap etetuǵın hám qátelerge bay bolǵanlıqtan, insanǵa túsiniklirek bolǵan jańa usıllarǵa mútájlik payda boldı.
Waqıt ótiwi menen "Abstrakciya" túsinigi programmalastırıwdıń oraylıq bólegine aylandı. Abstrakciya – bul quramalı sistemanıń ekinshi dárejeli detalların jasırıp, tek eń zárúr qásiyetlerine itibar qaratıw usılı. Dáslepki assembler tillerinen baslap, proceduralıq tillerge (Fortran, C), sońınan obyektke baǵdarlanǵan (C++, Java) hám funkcionallıq tillerge ótiw – bul abstrakciya dárejesiniń artıp barıw procesi. Hárbir jańa paradigma mashina kodınan alıslap, insan logikasına jaqınlasıwǵa háreket etti. Nátiyjede, programmistler endi registrler hám yadtıń adresleri menen emes, al "klasslar", "funkciyalar", "moduller" sıyaqlı joqarı dárejeli túsinikler menen isley basladı.
Programmalastırıw paradigmasınıń ózgeriwi kóbinese apparatlıq támiynattıń kúsheyiwi hám programmalıq proektlerdiń quramalısıwına juwap retinde júz berdi. Mısalı, 1970-80-jıllarda programmalar kólemi artqan sayın, olardı basqarıw qıyınlasıp ketti, bul "Spagetti kod" mashqalasın keltirip shıǵardı. Bul mashqalanı sheshiw ushın "Strukturalıq programmalastırıw" paradigması oylap tabıldı. Keyinirek, interfeysler hám úlken maǵlıwmatlar menen islesiw zárúrligi payda bolǵanda, maǵlıwmat hám onı qayta isleytuǵın funkciyalardı biriktiretuǵın
"Obyektke baǵdarlanǵan programmalastırıw" (OBP) paradigması eń keń tarqalǵan usılǵa aylandı.
Búgingi kúnde bolsa, kóp yadrolı processorlar hám parallel esaplawlardıń rawajlanıwı menen "Funkcionallıq programmalastırıw" hám "Parallel programmalastırıw" paradigmaları qaytadan aktual bolıp atır. Sebebi, dástúrli imperativ usıllar parallel processlerdi basqarıwda qıyınshılıqlarǵa ushırap atır. Usılayınsha, programmalastırıw usıllarınıń tariyxı – bul adam menen mashina arasındaǵı baylanıstı jeńillestiriw hám quramalı máselelerdi effektli sheshiw ushın durıs joldı izlew tariyxı bolıp esaplanadı.
Pánniń wazıypaları hám ámeliy qollanılıwı
"Programmalastırıw usılları hám paradigmalar" pániniń eń baslı wazıypası – studentlerde algoritmlik pikirlewdi rawajlandırıw hám túrli mashqalalar ushın eń qolaylı sheshim usılın tańlaw kónlikpesin payda etiw. Kóp ǵana baslawshı programmistler ózleri biliwshi bir tildi (mısalı, C++ yamasa Python) barlıq máselelerge qollanıwǵa háreket etedi. Biraq, geybir máseleler ushın logikalıq programmalastırıw (Prolog) qolaylı bolsa, basqaları ushın funkcionallıq (Haskell,
Lisp) yamasa skriptli (JavaScript) tiller qolaylıraq bolıwı múmkin. Pánniń wazıypası – "qolında shókkishi bar adamǵa hámmesi shege bolıp kórinedi" degen qáteden qutılıw hám keń spektrdegi qurallardı paydalanıwdı úyretiw.
Ekinshi wazıypa – bul kodtıń sapası, oqılıwı hám qayta qollanılıwı (reusability) sıyaqlı injenerlik principlerdi túsindirip beriw. Qanday paradigma tańlanıwına qaramastan, jaqsı jazılǵan programma túsinikli, ózgertiwge ańsat hám qátelerden qorǵalǵan bolıwı kerek. Mısalı, Deklarativ paradigmada "ne islew kerek" degen sorawǵa itibar qaratılsa, Imperativ paradigmada "qalay islew kerek" degen soraw baslı orında turadı. Usı ayırmashılıqlardı bilip, programmist proekttiń talaplarına sáykes keletuǵın arxitekturanı dúze aladı. Bul keleshekte programmanıń "ómirlik ciklın" (lifecycle) uzaytadı hám onıń islesiwin turaqlı etedi.
Pánniń úshinshi áhmiyetli wazıypası – bul "Múltiparadigmalıq" (Multiparadigm) tillerdi túsinip jetiwge járdem beriw. Zamanagóy tillerdiń kópshiligi taza bir paradigmanı emes, al bir neshe paradigmalardıń aralaspasın qollanadı. Mısalı, Python, C#, Java, JavaScript tilleri bir waqıttıń ózinde hám obyektke baǵdarlanǵan, hám proceduralıq, hám geybir jaǵdaylarda funkcionallıq usıllardı qollawǵa imkaniyat beredi. Studentler bul pán arqalı qaysı jaǵdayda klasslardan paydalanıw, al qaysı jaǵdayda taza (pure) funkciyalardı qollanıw qolaylı ekenin parıqlaytuǵın boladı.
Tórtinshi wazıypa – programmalastırıw tilleriniń semantikası hám sintaksisin tereń analizlew. Sintaksis – bul tildiń jazılıw qaǵıydaları bolsa, semantika – bul jazılǵan kodtıń mánisi hám onıń kompyuter yadında qalay orınlanıwı. Pán sheńberinde ózgeriwshilerdiń tipi (statikalıq hám dinamikalıq tiplestiriw), yadtı basqarıw (avtomat hám qolda), hám kodtıń orınlanıw modeli (kompilyaciya hám interpretaciya) sıyaqlı texnikalıq aspektler de qarastırıladı. Bul bilimler qátelerdi azaytıwǵa hám programmanı optimallastırıwǵa tikkeley tásir etedi.
Paradigmalar klassifikaciyası hám juwmaqlaw
Programmalastırıw paradigmaların ulıwma túrde eki úlken toparǵa bóliwge boladı: Imperativ hám Deklarativ. Imperativ programmalastırıw – bul kompyuterge adımba-adım ne islew kerekligin buyıratuǵın usıl. Onıń tiykarǵı maqseti – kompyuterdiń halatın (state) ózgertiwshi buyrıqlardı izbe-iz orınlaw. Imperativ toparǵa Proceduralıq programmalastırıw (C, Pascal), Obyektke baǵdarlanǵan programmalastırıw (C++, Java) hám Strukturalıq programmalastırıw kiredi. Bul paradigma kompyuterdiń fon Neyman arxitekturasına eń jaqın bolǵanlıqtan, házirgi waqıtta eń keń tarqalǵan usıl bolıp tabıladı.
Deklarativ programmalastırıw bolsa, mashqalanı sheshiw jolın kórsetpesten, kútiletuǵın nátiyjeni súwretlewge tiykarlanǵan. Bul jerde programmist "bul nátiyjege qalay jetiw kerek" dep emes, al "bizge ne kerek" dep buyrıq beredi. Deklarativ toparǵa Funkcionallıq programmalastırıw (Haskell, Lisp), Logikalıq programmalastırıw (Prolog) hám Maǵlıwmatlar bazasın soraw tilleri (SQL) kiredi. Deklarativ tiller kóbinese jasalma intellekt, úlken maǵlıwmatlardı qayta islew hám quramalı matematikalıq esaplawlarda joqarı effektivlik kórsetedi, sebebi olar kodtı qısqartıwǵa hám parallel orınlawǵa qolaylı.
Bul paradigmalar arasındaǵı shegaralar bárqulla anıq bola bermeydi. Joqarıda aytılǵanınday, zamanagóy tiller gibrid sıpatqa iye. Mısalı, siz Java tilinde (negizinen OBP) jazıp atırıp, "Lambda ańlatpaları"n (funkcionallıq usıl) qollanıwıńız múmkin. Yamasa SQL (deklarativ) ishindegi proceduralıq keńeytpelerdi (PL/SQL) qollanıwıńız múmkin. Programmalastırıw usılları hám paradigmalar páni usı túrli usıllardıń óz-ara baylanısın hám sintezin úyrenedi. Bul bolsa, keleshekte payda bolatuǵın jańa programmalastırıw tillerin tez ózlestiriwge hám olardıń potencialın tolıq paydalanıwǵa tiykar boladı.
Juwmaqlap aytqanda, "Programmalastırıw usılları hám paradigmalar" páni – bul professional IT qánigesiniń fundamenti. Bul pán sizdi belgili bir tildiń sheklewlerinen azat etip, global programmalastırıw mádeniyatı menen tanıstıradı.
Paradigmalar – bul bizdiń quralımız, al usıllar – bul bizdiń kónlikpemiz. Bul ekewin durıs qollana biliw, hár qanday quramalılıqtaǵı programmalıq ónimlerdi sapalı, isenimli hám effektiv etip jaratıwǵa imkaniyat beredi. Keyingi lekciyalarda biz hárbir paradigmanıń tariyxı, principleri hám qollanılıw tarawların jeke-jeke toqralıp ótip talqılaymız.
BAQLAW SORAWLARÍ:
1."Paradigma" túsinigine anıqlama beriń hám onıń programmalastırıwdaǵı áhmiyetin túsindiriń.
2.Imperativ hám Deklarativ paradigmalar arasındaǵı tiykarǵı ayırmashılıq nede?
3.Programmalastırıwda abstrakciyanıń roli qanday hám ol qaysı mashqalanı sheshedi?
4.Multiparadigmali (kóp paradigmalı) tiller degende neni túsinesiz, olarǵa qanday mısallar keltiriwge boladı?
5.Tómen dárejeli hám joqarı dárejeli programmalastırıw tilleri paradigması nesi menen ózgeshelenedi?
