Lukier składniowy
Z Wikipedii
Lukier składniowy (lukier syntaktyczny, cukier syntaktyczny) (ang. syntactic sugar) to w programowaniu dowolna cecha składni języka, którą można wyeliminować przez proste przekształcenia składniowe, istnieje jedynie dla wygody programisty.
Spis treści |
[edytuj] Przykłady
[edytuj] Język C
- x[y] to tylko lukier składniowy dla raczej mało intuicyjnego *(x+y). Jest to konsekwencja nierozróżniania przez C pojęcia tablicy i wskaźnika, a dokładniej traktowania tablicy jako szczególnego wskaźnika (szczególnego dla kodera!).
- ++c jest szybszym sposobem zapisania c=c+1 lub inaczej c+=1 - wszystkie te instrukcje robią to samo - zwiększają wartość zmiennej c o jeden.
[edytuj] Ruby
x += y oznacza x = x + y, co z kolei oznacza x = x.+(y), gdzie + to metoda będąca przeciążonym operatorem.
[edytuj] Języki funkcyjne
W programowaniu funkcyjnym bardzo często wykorzystywane są listy elementów, dlatego standardowe operacje sprawdzania (nie)pustości głowy (początku) listy oraz wyciągania tejże głowy z listy, zastępowane są cukrami syntaktycznymi.
[edytuj] Komentarze
Komentarze to również lukier składniowy — w żaden sposób nie wpływają na działanie programu.
Współczesne języki mają dużo lukru składniowego - nie jest on może konieczny z punktu widzenia tego co można zaprogramować, za to jest konieczny żeby normalny człowiek był w stanie sprawnie pisać - i co ważniejsze - czytać takie programy.
[edytuj] Lukier składniowy a efektywność programu
Lukru (cukru) składniowego nie należy mylić z np. strukturyzacją programu, tj. umieszczaniem części kodu np. w funkcjach, tworzeniem obiektów posiadającym klasy wirtualne, gdyż zabiegi te mają odzwierciedlenie w kodzie maszynowym programu (np. jako wywołanie stosu dla funkcji, zapamiętanie adresu powrotu) - lukier składniowy jest tylko szybszym/wygodniejszym/czytelniejszym sposobem zapisu kodu i jest on zastępowany "czystym" językiem na poziomie interpretacji kodu - kompilacji poddany zostaje kod nie zawierający już lukru syntaktycznego.