Zucchero sintattico
![Niente fonti!](http://upload.wikimedia.org/wikipedia/commons/thumb/6/64/Question_book-4.svg/45px-Question_book-4.svg.png)
Nella programmazione, zucchero sintattico (in inglese syntactic sugar) è un termine coniato dall'informatico inglese Peter J. Landin per definire costrutti sintattici di un linguaggio di programmazione che non hanno effetto sulla funzionalità o sull'espressività del linguaggio, ma ne rendono più facile ("dolce") l'uso per gli esseri umani; è quindi un modo alternativo di scrivere il codice, spesso più pratico e produttivo e che genera programmi più facili da leggere e gestire.
Esempi
Variabili
Consideriamo il modo di manipolare gli array di variabili in C. In C gli array sono trattati come blocchi di memoria, ai cui elementi si accede specificando l'offset rispetto all'indirizzo del punto iniziale del blocco. Tuttavia questi puntatori aritmetici sono scomodi, ineleganti e fonte di errori; per questo motivo il C mette a disposizione la notazione a[i]
in sostituzione della *(a + i)
che si sarebbe dovuta usare. Analogamente la notazione a[i][j]
è più facile da capire della *(*(a + i) + j)
.
Valori letterali
Una caratteristica comune a molti linguaggi di programmazione è la capacità di specificare direttamente nel sorgente valori letterali di tipo stringa (string literals) o di altro tipo (numerico, ecc.). Le convenzioni adottate variano da linguaggio a linguaggio, ed in alcuni linguaggi queste convenzioni sono più restrittive che in altri.
Programmazione a oggetti
Il linguaggio C è pienamente idoneo all'uso nella programmazione ad oggetti, mediante le funzionalità di cui dispone, come ad esempio l'impiego dei puntatori, il cast dei tipi, e le strutture di dati. Tuttavia altri linguaggi, come il C++, sono più adatti poiché dispongono di una sintassi progettata espressamente per questo stile di programmazione. Inoltre queste sintassi altamente specializzate rendono più agevole l'approccio alla programmazione ad oggetti da parte dei nuovi programmatori. Analogamente alcune caratteristiche del C#, come le proprietà e le interfacce, non aggiungono nuove funzionalità ma piuttosto rendono queste particolari tecniche di programmazione più intuitive ed efficaci.
Critiche
Alcuni programmatori pensano che queste caratteristiche siano poco importanti o addirittura frivole. Ad esempio, Alan Perlis, giocando sul significato del termine inglese "semicolon" (lett. "punto e virgola" ma ricorda il colon, cioè un tratto dell'intestino), commentando i cosiddetti "linguaggi bracket-delimited" affermò che «lo zucchero sintattico provoca il cancro del semicolon». Gli sviluppatori del kernel di Linux, pur utilizzando ampiamente la programmazione ad oggetti, insistono nell'usare nient'altro che il C puro.
Collegamenti esterni
- (EN) Denis Howe, syntactic sugar, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Computer_n_screen.svg/24px-Computer_n_screen.svg.png)