Сінтаксічны цукар

Сінтаксічны цукар () —  гэта агульны тэрмін для дапаўненняў да сінтаксісу мовы праграмавання, якія не дадаюць новы функцыянал, а хутчэй робяць выкарыстанне мовы праграмавання больш зручным для чалавека. Звычайна гэта дадатковыя, не складаныя сінтаксічныя канструкцыі, часта падобныя на іншыя мовы праграмавання, да якіх мог прывыкнуць чалавек. Часам пад сінтаксічным цукрам разумеюць дадатковыя бібліятэкі, якія рэалізуюць гатовы функцыянал, выкарыстанне якіх патрабуе напісання невялікай колькасці кода і падключэння адпаведных бібліятэк. Сінтаксічны цукар дае праграмісту альтэрнатыўны спосаб напісання іншай сінтаксічнай канструкцыі, ужо даступнай у мове, і ў той жа час з'яўляецца больш зручным, карацейшым, падобным да іншага распаўсюджанага спосабу напісання або дапамагае пісаць праграмы ў добрым стылі. З фармальнага пункту гледжання сінтаксічны цукар нічога не змяняе і не дадае выразнасці мове, але можа значна палегчыць праграмісту апісанне некаторых аперацый. У той жа час сінтаксічны цукар, асабліва пры празмерным выкарыстанні, можа пагоршыць чытальнасць кода і ўскладніць яго абслугоўванне. Канструкцыі, якія з'яўляюцца сінтаксічным цукрам, можна лёгка перавесці ў канструкцыі асноўнага сінтаксісу.

Варта адзначыць, што паняцце сінтаксічнага цукру ў значнай ступені ўмоўнае. Яго выкарыстанне падразумявае, што з многіх сінтаксічных канструкцый можна вылучыць нейкі «базавы набор», які забяспечвае ўсю функцыянальнасць мовы. Тады дадатковыя сінтаксічныя сродкі, якія пры жаданні можна выразіць з дапамогай базавага набору, будуць сінтаксічным цукрам для гэтай мовы. Аднак многія канструкцыі ўзаемазамяняльныя, і не заўсёды можна дакладна сказаць, якія з іх з'яўляюцца базавымі, а якія дадатковымі.

 Прыклады 
 Цыкл for...of у JavaScript 
Прыкладам сінтаксічнага цукру можа быць цыкл for...of у JavaScript. Ён скарачае звыклы запіс перабору элементаў масіву, робячы яго больш выразным і лаканічным:
// Сінтаксічны цукар: 
for (let item of array) {
	console.log(item);
}

// Без цукру (эквівалент):
for (let i = 0; i < array.length; i++) {
	console.log(array[i]);
}

Абедзве канструкцыі выконваюць аднолькавую аперацыю, але другая патрабуе ручнога кантролю над індэксам і выглядае менш выразна. for...of не ўносіць новай логікі, а толькі спрашчае запіс, што характэрна для сінтаксічнага цукру.

 Стрэлачныя функцыі ў JavaScript 
Стрэлачныя функцыі () у JavaScript дазваляюць пісаць функцыі ў больш сціслай форме, захоўваючы аналагічную функцыянальнасць.
// Сінтаксічны цукар:
const square = x => x * x;

// Без цукру (эквівалент):
const square = function(x) {
	return x * x;
};

 Спасылкі 
 Ruby Syntactic Sugar (англ.)
 Syntactic Sugar Is More Than Dessert (англ.)

Катэгорыя:Праграмаванне