Zucchero sintattico: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Tombot (discussione | contributi)
m Sostituzioni standard: inversione accenti, composti di «che»
m un po' di zucchero sintattico
Riga 1:
'''Zucchero sintattico''' ('''Syntactic sugar''') è un termine coniato dall'informatico inglese [[Peter J. Landin]] per definire costrutti [[sintassi|sintattici]] di un [[linguaggio di programmazione]] che non hanno effetto sulla funzionalità del linguaggio, ma ne rendono più facile ("dolce") l'uso per gli esseri umani. I programmatori hanno così un modo alternativo di scrivere il codice che spesso è più pratico e produttivo, e genera programmi più facili da leggere e mantenere. Per contro il syntactic sugar non ha effetto sull'espressività del formalismo del linguaggio, permette ai programmi di implementareimplementa nuove funzionalità.
 
== Esempi ==
 
=== Variabili ===
PrendiamoConsideriamo il modo di manipolare gli [[array]] di variabili in [[C (linguaggio di programmazione)|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 [[Puntatore (programmazione)|puntatori]] aritmetici sono scomodi, ineleganti e fonte di errori.; Perper questo motivo il C mette a disposizione la notazione <code>a[i]</code> in sostituzione della <code>*(a + i)</code> che si sarebbe dovuta usare. AnologamenteAnalogamente la notazione <code>a[i][j]</code> è più facile da capire della <code>*(*(a + i) + j)</code>.
 
=== Stringhe letterali ===
Riga 10:
 
=== 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 [[Interfaccia (informatica)|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" (in italiano "punto e virgola", oppure riferito a "colon" parte dell'intestino), commentando i cosiddetti [[Linguaggi Bracket-delimited]], afferma 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.
 
== Note ==