Operator (programmalastırıw)

Programmalastırıwda **operator** (*[[Inglis tili|ingl]]. statement*) − qanday da bir orınlanatuǵın háreketti bildiretuǵın imperativ programmalastırıw tiliniń sintaksislik birligi. Bunday tilde jazılǵan programma bir yamasa bir neshe operatorlar izbe-izligi arqalı qurıladı. Operatordıń ishki komponentleri bolıwı múmkin (mısalı, ańlatpalar).

Kóplegen programmalastırıw tilleri (mısalı, Ada, Algol 60, C, Java, Paskal) operatorlar menen táriypler/deklaraciyalar arasındaǵı ayırmashılıqtı payda etedi. Táriyp (anıqlama)  yamasa operator programma jumıs isleytuǵın maǵlıwmatlardı kórsetedi, al operator sol maǵlıwmatlar menen orınlanatuǵın háreketlerdi kórsetedi.

Basqa operatorlardı óz ishine almaytuǵın operatorlar *ápiwayı*; basqa operatorlardı qamtıwı múmkin bolsa *qurama* bolıp tabıladı.

Operatordıń (hám shın mánisinde programmanıń) kórinisi onıń sintaksisi yamasa grammatikası arqalı anıqlanadı. Operatordıń mánisi onıń semantikası menen anıqlanadı.

## Ápiwayı operatorlar
Ápiwayı operatorlar ózbetinshe tolıq; olarǵa tapsırmalar, qos programma shaqırıwları hám programmanıń basqarıw aǵımına aytarlıqtay tásir etiwi múmkin bir neshe operatorlar kiredi (mısalı, ótiw qaytarıw, toqtatıw/toqtaw). Ayırım tillerde kirgiziw hám shıǵarıw, tastıyıqlaw hám shıǵarıwshı arnawlı operatorlar arqalı basqarıladı, al basqa tiller aldınnan anıqlanǵan ishki programmalarǵa shaqırıwlardı paydalanadı. 

* tapsırma
** Fortran: `''variable'' = ''expression''`
** Pascal, Algol 60, Ada: `''variable'' := ''expression'';`
** C, C#, C++, PHP, Java: `''variable'' = ''expression'';`
* shaqırıw
** Fortran: `CALL ''subroutine name''(''parameters'')`
** C, C++, Java, PHP, Pascal, Ada: `''subroutine name''(''parameters'');`
* tastıyıqlaw
** C, C++, PHP: `assert(''relational expression'');`
** Java: `assert ''relational expression'';`
* ótiw
** Fortran: `GOTO numbered-label`
** Algol 60: `'''goto''' ''label'';`
** C, C++, PHP, Pascal: `goto ''label'';`
* qaytarıw
** Fortran: `RETURN ''value''`
** C, C++, Java, PHP: `return ''value'';`
* toqtatıw/toqtaw/shıǵıw
** Fortran: `STOP ''number''`
** C, C++: `exit(''expression'')`
** PHP: `exit ''number'';`

## Qurama operatorlar
Qurama operatorlar hár qanday aqılǵa ılayıq tereńlikke sáykes keletuǵın operatorlardı (izbe-izligi) qamtıwı múmkin hám ádette usı óz ishine alǵan operatorlarǵa baǵınıw yamasa qaytalamaw tuwralı qarar qabıllaw ushın testlerdi óz ishine alıwı múmkin.

:: Tómendegi mısallar ushın belgiler:
::*  - hár qanday jalǵız operator (ápiwayı yamasa qurama bolıwı múmkin).
::*  - nolden yamasa onnan da kóp  hár qanday dizbegi
:: Ayırım programmalastırıw tilleri operatorlardı gruppalawdıń ulıwma usılın támiyinleydi, solay etip hár qanday jalǵız  topar menen almastırılıwı múmkin:

::* Algol 60: `'''begin''' <sequence> '''end'''`
::* Pascal: `begin <sequence> end`
::* C, PHP, Java: `{ <sequence> }`

:: Basqa programmalastırıw tillerinde bir yamasa bir neshe operator avtomat túrde topar retinde qarastırılatuǵınday, quramlı operatordıń hárbir túrine hár túrli arnawlı terminator bar:
::* Ada: `if test then <sequence> end if;`

### Operator hám gilt sózler
Ayırım programmalastırıw tiliniń grammatikası gilt sózlerdi saqlaydı yamasa olardı arnawlı belgileydi hám olardı identifikator retinde paydalanıwǵa ruqsat bermeydi. Bul kóbinese analizlewge (tallawǵa) ańsat hám azıraq qarawdı talap etetuǵın grammatikalarǵa alıp keledi. 

## Ańlatpalar
Orınlanatuǵın operatorlar menen bahalanatuǵın ańlatpalar arasında jiyi ayırmashılıq bar. Ańlatpalar bárqulla mániske bahalanadı, al operatorlar emes. Degen menen, ańlatpalar kóbinese úlkenirek operatordıń bólegi retinde qollanıladı.

Kóplegen programmalastırıw tillerinde operator ańlatpadan aspawı múmkin, ádette ańlatpadan keyin operator terminatorı (noqatlı útir) arqalı. Bunday jaǵdayda ańlatpa mániske bahalanǵan da, tolıq operator orınlamaydı (ańlatpanıń mánisi óshiriledi). Mısalı, C, C++, C# hám kóplegen uqsas tillerde x = y + 1 ańlatpa bolıp, x ti y plus bir mániske menshikleydi hám pútkil ańlatpanıń ózi x ornatılǵan mániske bahalanadı. Degen menen, x = y + 1; (sońında noqatlı útirge itibar beriń) − ele x ti y plus bir mániske qoyadı, óytkeni operator ishindegi ańlatpa ele de bahalanadı, biraq ańlatpa nátiyjesi óshiriledi hám operatordıń ózi bahalanbaydı: hár qanday mánis. 

Ańlatpalar basqa ańlatpalar ishinde de bolıwı múmkin. Mısalı, `x = y + 1` ańlatpası `y + 1` ańlatpasın óz ishine aladı, ol óz gezeginde y hám 1 mánislerin óz ishine aladı, olar da texnikalıq ańlatpa bolıp tabıladı.

Aldıńǵı mısallar tapsırma ańlatpaların kórsetkeni menen, ayırım tiller tapsırmanı ańlatpa retinde emes, kerisinshe operator retinde ámelge asıradı. Bunıń kórnekli mısalı Python bolıp tabıladı, bunda = operator emes, tek  tayınlaw operatorındaǵı ajıratıwshı bolıp tabıladı. Python bir neshe tapsırmalardı orınlawǵa imkaniyat beredi, óytkeni hárbir tapsırma ańlatpa bolǵanı menen, bul haqıyqıy ańlatpa emes, til grammatikasına engizilgen tapsırma operatorınıń ózgeshe jaǵdayı ǵana.

## Derekler

## Sırtqı siltemeler

* PC ENCYCLOPEDIA: Definition of: program statement