# Programmalastırıw

**Programmalastırıw(ingl.Computer programming, coding)* yamasa baǵdarlamalastırıw — bul kompyuter wazıypaların orınlay alatuǵın kórsetpeler hám kompyuter túsinetuǵın tilde jazılǵan kodlar izbe-izliginiń jıynaǵı. Yaǵnıy kompyuterde programma dúziw barısı. Ol bir yamasa bir neshe programmalastırıw tillerinde kod jazıw arqalı algoritmlerdi, proceduralardıń basqıshpa basqısh specifikaciyaların proektlestiriwdi hám kirgiziwdi óz ishine aladı. Baǵdarlamashılar ádette oraylıq processor tárepinen tikkeley orınlanatuǵın mashina kodına qaraǵanda adamlarǵa ańsatıraq túsinikli joqarı dárejeli programmalastırıw tillerin paydalanadı. Tájiriybeli programmalastırıw ádette bir neshe túrli pánler boyınsha tájiriybeni talap etedi, sońıń ishinde qosımshalar domenin biliw, programmalastırıw tilleriniń maǵlıwmatları hám ulıwma kod kitapxanaları, arnawlı algoritmler hám formal logika.

Programmalastırıwǵa baylanıslı járdemshi wazıypalarǵa talaplardı analizlew, testlew, ońlaw (debugging, máselelerdi izertlew hám dúzetiw), dúziw sistemaların engiziw hám programmalardıń mashina kodı sıyaqlı alınǵan artefaktlerdi basqarıw kiredi. Olar geyde programmalastırıw dep esaplanǵanı menen, kóbinese programmalıq támiynattı islep shıǵıw termini usı ulıwma process ushın paydalanıladı — programmalastırıw, kirgiziw hám kod jazıw terminleri kodtı jazıw hám qayta islew ushın arnalǵan. Geyde programmalıq támiynattı islep shıǵıw programmalıq injiniring dep ataladı, ásirese ol formal metodlardı qollanǵanda yamasa injenerlik proektlestiriw procesin baqlaǵanda.

## Tariyxı

Luidji Menabrea qaǵazınıń sońına jazbaları qosılǵan Ada Lavleys Charlz Bebbidjdiń analitikalıq mashinası menen qayta islewge arnalǵan birinshi algoritmdi óz ishine aladı. Ol jiyi tariyxtaǵı birinshi kompyuter baǵdarlamashısı retinde kópshilikke tanıs.
Programmalastırılatuǵın qurılmalar ásirler dawamında bar. IX ásirdiń ózinde-aq programmalastırılatuǵın muzıka sekvenserin aǵalı-inili parsı Banu Musa oylap taptı, olar «Aqıllı qurılmalar kitabında» avtomatlastırılǵan mexanikalıq fleyta pleyerin sáwlelendirgen. 1206-jılı arab injeneri ál-Djazari programmalastırılatuǵın baraban mashinasın oylap taptı, mashinada hár túrli ırǵaqlar menen baraban úlgilerin ilgekler menen judırıqlar arqalı oynatıw ushın muzıkalı mexanikalıq avtomat islewge múmkin bolǵan. 1801-jılı Jakkard toqıma stanogı «programmanı» ózgertiw arqalı ulıwma basqa toqıma buyımların shıǵara aladı olarda tesikleri bar karton kartalarınıń seriyası.

Kodtı buzıw algoritmleri de ásirler dawamında bar. IX ásirde arab matematigi Al-Kindi «Kriptografiyalıq xabarlardı deshifrlaw tuwralı qoljazba» kitabında shifrlanǵan kodtı sheshiwdiń kriptografiyalıq algoritmin sáwlelendirdi. Ol chastotalı analiz arqalı kriptoanalizdiń dáslepki táriypin, eń erte kodtı buzıw algoritmin berdi.

Birinshi kompyuter programması ádette 1843-jılı matematik Ada Lavleys Charlz Bebbidjdiń analitikalıq mashinası arqalı ámelge asırılatuǵın Bernulli sanlar izbe-izligin esaplaw algoritmin járiyalaǵanda jaratılǵan.

Maǵlıwmatlar menen kórsetpeler bir waqıtları sırtqı perfokartalarda saqlandı, olar tártiplesken hám programma palubalarında jaylastırılǵan.
1880-jılları German Xollerit maǵlıwmatlardı mashinada oqıtılatuǵın formada saqlaw koncepciyasın oylap taptı. Keyinirek onıń 1906-jılǵı I tipli tabulyatorında qosılǵan basqarıw paneli (shtepsel platası) onı hár túrli jumıslar ushın programmalastırıw imkaniyatın berdi, al 1940-jıllardıń aqırında IBM 602 hám IBM 604 sıyaqlı qurılma jazıw úskeneleri basqarıw paneli menen uqsas túrde programmalastırılǵan dáslepki elektron esaplaw mashinaları sıyaqlı boldı. Degen menen, 1949-jılı engizilgen kompyuterdiń saqlanǵan programma koncepciyası menen programmalar da, maǵlıwmatlar da kompyuter yadında birdey saqlanadı hám qayta islenedi.

### Mashina tili

Mashina kodı belgili bir mashinanıń kórsetpeler jıynaǵında, kóbinese ekilik belgilerde jazılǵan birinshi programmalardıń tili boldı. Soń baǵdarlamashıǵa tekst formatındaǵı kórsetpelerdi (mısalı, ADD X, TOTAL) kórsetiwge imkaniyat beretuǵın, hárbir operaciya kodınıń abbreviaturaları hám adreslerdi kórsetiw ushın mánili atları bar assambleya tiller islep shıǵarıldı. Degen menen, assembler tili mashina tili ushın hár túrli belgilerden sál ǵana artıq bolǵanlıqtan, hár túrli kórsetpeler jıynaǵı bar eki mashinada da hár túrli assembler tilleri bar.

IBM 402 esaplaw mashinasına arnalǵan sımlı basqarıw paneli. Sımlar impulslik aǵımlardı kartanı oqıw qurılmasınan esaplawshılarǵa hám basqa ishki logikaǵa hám sońında printerge qosadı.
### Kompilyator tilleri

Joqarı dárejeli tiller programmanı dúziw procesin ápiwayı hám túsinikli etip, tiykarǵı apparatlıq qurallar menen baylanısın azayttı. Kompilyatorǵa baylanıslı birinshi qural, A-0 sistemasın 1952-jılı Greys Xopper islep shıqtı, ol sonıń menen birge «kompilyator» terminin engizdi. Funkcional ámelge asırıwǵa iye birinshi keń tarqalǵan joqarı dárejeli til FORTRAN 1957-jılı shıqtı hám aradan kóp ótpey basqa tiller rawajlandı, atap aytqanda kommerciyalıq maǵlıwmatlardı qayta islewge arnalǵan COBOL hám kompyuter izertlewlerine arnalǵan Lisp tili.

Bul kompilyaciyalanǵan tiller baǵdarlamashıǵa sintaksislik jaqtan bay hám kodtı abstrakciyalawǵa qábiletli terminler menen programmalardı jazıwǵa imkaniyat beredi, bul kompilyaciya járiyalanıwları menen evristika arqalı hár túrli mashina kórsetpeler jıynaǵın hám maqsetti jeńilletedi. Kompilyatorlar kompyuterlerdiń kúshin programmalastırıwdı jeńilletiw ushın baǵdarlamashıǵa infiks belgisin paydalanıp formulanı kirgiziw arqalı esaplawlardı kórsetiwge imkaniyat berdi.

### Ashıq kodtı kirgiziw

Programmalar tiykarınan perfokartalar yamasa qaǵaz lenta arqalı kirgizildi. 1960-jıllardıń ayaǵında maǵlıwmatlardı saqlaw qurılmaları menen kompyuter terminalları kompyuterlerge tikkeley teriw arqalı programmalar jaratıwǵa bolatuǵınday arzan boldı. Perfokartalarǵa qaraǵanda ózgertiwler menen dúzetiwlerdi álleqayda ańsat islewge imkaniyat beretuǵın tekstli redaktorlar da islep shıǵarıldı.

## Zamanagóy programmalastırıw

### Sapa talapları

Rawajlanıw usılı qanday bolsa da, sońǵı programma ayırım tiykarǵı qásiyetlerdi qanaatlandırıwı kerek. Tómendegi qásiyetler eń zárúrleriniń qatarına kiredi:

* Isenimlilik: programma nátiyjeleri qanshelli jiyi durıs. Bul algoritmlerdiń koncepciyalıq durıslıǵına hám resurslardı basqarıwdaǵı qáteler (mısalı, buferdiń tolıp ketiwi hám jarıs shártleri) hám logikalıq qáteler (mısalı, nolge bóliw yamasa bir-birinen tıs qáteler) sıyaqlı programmalastırıw qátelerin azaytıwǵa baylanıslı.
* Turaqlılıq: programma qátelerge baylanıslı máselelerdi qanshelli jaqsı boljaydı. Oǵan qáte, orınsız yamasa búlingen maǵlıwmatlar, yad, operacion sistema xızmetleri hám tarmaq jalǵanıwları sıyaqlı kerekli resurslardıń qoljetimsizligi, paydalanıwshı qátesi hám elektr quwatınıń kútpegen úziliwi sıyaqlı jaǵdaylar kiredi.
* Qollanıw imkaniyatı: programmanıń ergonomikası: adamnıń programmanı óz maqsetine yamasa ayırım jaǵdaylarda hátte kútpegen maqsetlerge paydalanıwınıń ápiwayılıǵı. Bunday máseleler basqa máselelerge qaramastan, onıń jetiskenlikke erisiwi yamasa buzıwı múmkin. Bul programmanıń paydalanıwshı interfeysiniń ayqınlılıǵın, intuitivlikti, birtutaslıǵın hám tolıqlıǵın optimallastıratuǵın tekstli, grafikalıq, geyde apparatlıq elementlerdiń keń kólemin qamtıydı.
* Portativlik: programmanıń ashıq kodın kompilyaciyalawǵa/túsindiriwge hám iske túsiriwge bolatuǵın kompyuter apparatlıq hám operacion sistema platformalarınıń kólemi. Bul hár túrli platformalar usınatuǵın programmalastırıw imkaniyatlarındaǵı ayırmashılıqlarǵa, sonıń ishinde apparatlıq hám operacion sistema resurslarına, apparatlıq hám operacion sistemanıń kútiletuǵın háreketine hám ashıq kod tiline arnalǵan platformaǵa arnawlı kompilyatorlardıń (geyde kitapxanalardıń) qoljetimliligine baylanıslı.
* Texnikalıq xızmet kórsetiw: jaqsılawlar kirgiziw yamasa sazlaw, qáteler menen qáwipsizlik tesiklerin dúzetiw yamasa onı jańa ortalıqlarǵa beyimlew ushın programmanı házirgi yamasa keleshektegi baǵdarlamashılar ózgerte alatuǵın jeńilligi. Dáslepki islep shıǵıwdaǵı jaqsı tájiriybeler usıǵan baylanıslı ayırmashılıqlardı jaratadı. Bul sapa sońǵı paydalanıwshıǵa tikkeley kórinbewi múmkin, biraq ol uzaq múddetli perspektivada programmanıń táǵdirine aytarlıqtay tásir etiwi múmkin.
* Ónimlilik: Programma tutınatuǵın sistemalı resurslardıń ólshemi (processordıń waqıtı, yad keńisligi, diskler sıyaqlı ásten qurılmalar, tarmaqtıń ótkiziw qábileti hám belgili bir dárejede tipli paydalanıwshınıń háreketlesiwi): qanshelli az bolsa, sonshelli jaqsı. Oǵan sonıń menen qatar resurslardı muqıyat basqarıw kiredi, mısalı, waqıtsha fayllardı tazalaw hám yadtıń aǵıp ketiwin joq etiw. Bul kóbinese tańlanǵan programmalastırıw tiliniń sayasında talqılanadı. Til ónimlilikke tásir etkeni menen, Python sıyaqlı ásten tiller de programmalardı adam tárepinen birdey orınlay aladı. Tezlik, resurslardı paydalanıw hám ónimlilik sistemaǵa tosıq keltiretuǵın programmalar ushın zárúr, biraq baǵdarlamashı waqtın ónimli paydalanıwda áhmiyetli hám bahasına baylanıslı: kóbirek úskene arzanıraq bolıwı múmkin.

## Derekler