Sawatlı programmalastırıw

**Sawatlı programmalastırıw (LP)** — bul 1984-jılı Donald Knutt tárepinen usınılǵan programmalastırıw paradigması bolıp, onda kompyuter programması onıń qalay isleytuǵının tábiyiy tilde, mısalı, inglis tilinde túsindiriw retinde beriledi, bul makroslar menen dástúrli derek kodı bólimleri menen aralastırılǵan (jaylastırılǵan), sonnan kompilyaciyalanatuǵın derek kodı payda etiliwi múmkin. Bul usıl ilimiy esaplawlarda hám maǵlıwmat iliminde qaytalanatuǵın izertlewler hám ashıq kiriw maqsetleri ushın úziliksiz qollanıladı. Sawatlı programmalastırıw quralların búgingi kúnde millionlaǵan baǵdarlamashılar paydalanadı.

Donald Knutt tárepinen oylap tabılǵan sawatlı programmalastırıw paradigması kompyuter programmaların kompilyator tárepinen belgilengen usılda hám tártipte jazıwdan bas tartıwdı bildiredi hám onıń ornına baǵdarlamashılarǵa óz oylarınıń logikası hám aǵımı talap etetuǵın tártipte programmalar islep shıǵıw ushın makroslar beredi. Sawatlı programmalar logikanıń kóbirek tábiyiy tildegi bayanlaması retinde jazıladı, onda makroslar abstrakciyalardı hám dástúrli derek kodın jasırıw ushın paydalanıladı, kóbirek esse tekstine uqsas. 

Sawatlı programmalastırıw quralları derek faylınan eki kórinis alıw ushın qollanıladı: birewi kompilyator yamasa interpretator ushın túsinikli bolǵan, «shatastırılǵan» kod hám ekinshisi formatlanǵan hújjet retinde kóriw ushın, ol sawatlı derekten «toqılǵan» delinedi.[5] Sawatlı programmalastırıw qurallarınıń birinshi áwladı kompyuter tiline tán bolǵan bolsa, keyingileri tilden ǵárezsiz hám jeke programmalastırıw tillerinen tıs bar.

## Tariyxı hám filosofiyası
Sawatlı programmalastırıw birinshi ret 1984-jılı Donald Knutt tárepinen usınıldı, ol onı adamlar ushın sáykes ádebiyat bolatuǵın programmalar jaratıw ushın jobalastırǵan edi. Ol onı Stenford universitetinde algoritmler hám cifrlı tipografiya boyınsha izertlewleriniń bir bólimi retinde ámelge asırdı. Implementaciya «WEB» dep ataldı, sebebi ol onıń ele de esaplawǵa qollanılmaǵan az sanlı úsh háripli inglis sózleriniń biri ekenine isengen edi. Degen menen, ol ápiwayı materiallardan náziklik penen biriktirilgen programmalıq támiynattıń quramalı tábiyatına uqsaydı. Sawatlı programmalastırıw ámeliyatı 2010-jıllarda, ásirese maǵlıwmatlar iliminde, esaplaw dápterlerin paydalanıw menen áhmiyetli qayta tikleniwdi kórdi.

## Koncepciya
Sawatlı programmalastırıw — bul programma logikasın adam tilinde, qosılǵan (ápiwayı belgilew menen ajıratılǵan) kod bólimleri hám makroslar menen jazıp shıǵıw. Sawatlı derek faylındaǵı makroslar — bul programmalastırıw máselesin sheshiw waqtında jaratılǵan adam abstrakciyaların táriyipleytuǵın, kod bólimlerin yamasa tómen dárejeli makroslardı jasırıp turatuǵın adam tilindegi atamaǵa uqsas yamasa túsindiriwshi sóz dizbekleri. Bul makroslar ádette kompyuter ilimin oqıtıwda qollanılatuǵın psevdokodtaǵı algoritmlerge uqsas. Bul qálegen túsindiriwshi sóz dizbekleri baǵdarlamashı tárepinen jedel jaratılǵan anıq jańa operatorlarǵa aylanadı, tiykarındaǵı programmalastırıw tiliniń ústinde metatil quraydı.

Kompilyaciyalanatuǵın derek kodın bir buyrıq penen («shatastırıw»), al hújjetti ekinshi buyrıq penen («toqıw») payda etiw ushın qálegen ierarxiyalardı yamasa, durısıraq aytqanda, «makroslardıń óz-ara baylanıslı 'torların'» almastırıw ushın preprocessor qollanıladı. Preprocessor sonıń menen birge makroslardıń mazmunın jazıp shıǵarıwǵa hám sawatlı programma derek faylınıń tekstiniń qálegen jerinde aldınnan jaratılǵan makroslarǵa qosıwǵa imkaniyat beredi, solay etip dástúrli programmalastırıw tilleri tárepinen qoyılǵan sheklewlerdi yadta saqlaw zárúrliginen yamasa oylaw aǵımın úziwden qutqaradı.

### Artıqmashılıqları
Knuttıń aytıwınsha,
sawatlı programmalastırıw joqarı sapalı programmalar beredi, sebebi ol baǵdarlamashılardı programmanıń tiykarındaǵı oylardı anıq aytıwǵa májbúrleydi, bul jaman oylanǵan dizayn sheshimlerin ayqınıraq etedi. Knutt sonıń menen birge sawatlı programmalastırıwdıń qosımsha emes, al programmanıń jaratılıwı waqtında biriniń oyların bayanlaw processinde tábiyiy túrde ósetuǵın birinshi dárejeli hújjetlestiriw sistemasın usınatuǵının da aytadı. Nátiyjesindegi hújjetlestiriw avtorǵa óziniń oylaw processlerin hár qanday keyingi waqıtta qayta baslawǵa imkaniyat beredi hám basqa baǵdarlamashılarǵa programmanıń qurılısın ańsat túsinip alıwǵa múmkinshilik beredi. Bul dástúrli hújjetlestiriwden ayırmashılıq etedi, onda baǵdarlamashıǵa kompilyator tárepinen belgilengen tártipke boysınatuǵın derek kodı usınıladı hám ol programmanıń tiykarındaǵı oylaw processin kodtan hám onıń menen baylanıslı kommentariyalardan sheshiw kerek boladı. Sawatlı programmalastırıwdıń metatil imkaniyatları sonıń menen birge oylawdı ańsatlastıradı, kodtıń joqarıdan «qustıń ushıw» kórinisin beredi hám aqıldıń tabıslı saqlap hám qayta isley alatuǵın túsinikler sanın arttıradı dep aytıladı. Koncepciyanıń úlken kólemdegi programmalastırıwǵa, yaǵnıy kommerciyalıq dárejedegi programmalarǵa qollanılıwı TeX kodınıń sawatlı programma retindegi basılımı menen dálillengen.

Knutt sonıń menen birge sawatlı programmalastırıwdıń programmalıq támiynattı bir neshe ortalıqlarǵa ańsat portlawǵa alıp keliwi múmkin ekenin de aytadı hám hátte TeX-tiń implementaciyasın mısal retinde keltiredi.

### Hújjetlestiriw generaciyası menen salıstırıw
Sawatlı programmalastırıw kóbinese derek kodı hám kommentariyaları bar ulıwma fayldan payda bolǵan formatlanǵan hújjetlestiriwge ǵana silteme beredi dep qáte túsiniledi — bul durıs túrde hújjetlestiriw generaciyası dep ataladı — yamasa kod penen birge berilgen úlken kólemli kommentariyalarǵa. Bul sawatlı programmalastırıwdıń kerisinshe: jaqsı hújjetlestirilgen kod yamasa kodtan alınǵan hújjetlestiriw kodtıń strukturasına boysınadı, bunda hújjetlestiriw kodqa jaylastırılǵan; al sawatlı programmalastırıwda kod hújjetlestiriwge jaylastırılǵan, bunda kod hújjetlestiriwdiń strukturasına boysınadı.

Bul qáte túsinik Perl Plain Old Documentation yamasa Java Javadoc sistemaları sıyaqlı kommentariya alıw qurallarınıń «sawatlı programmalastırıw quralları» ekenligi haqqındaǵı pikirlerge alıp keldi. Degen menen, bul qurallar tábiyiy til makrosları sistemasınıń artında jasırınǵan «abstrakt koncepciyalar torın» ámelge asırmaǵanlıqtan yamasa derek kodınıń tártibin mashina tárepinen belgilengen izbe-izlikten adam aqılına qolaylı bir tártipke ózgertiw imkaniyatın bermegenlikten, olar Knutt tárepinen jobalanǵan mániste durıs mánide sawatlı programmalastırıw quralları dep atawǵa bolmaydı.

## Jumıs barısı
Sawatlı programmalastırıwdı ámelge asırıw eki basqıshtan ibarat:

# Toqıw: programma hám onıń qollap-quwatlawı haqqında tolıq hújjet payda etiw.
# Shatastırıw: mashina orınlay alatuǵın kod dúziw

Toqıw hám shatastırıw bir-birine sáykes keliwi ushın bir derekte orınlanadı.

## Derekler

__BÖLİDİMÖNDEMEW__