Sulla Programmazione

Quattro chiacchere sulla programmazione e sulle bit-tecnologie con Fabrizio Cipriani

La più strana caratteristica di un linguaggio di programmazione

Stavo consultanto l'insostituibile StackOverflow quando mi cade l'occhio su una bizzarra domanda posta da un utente.

L'utente chiede quale sia la più strana caratteristica di un linguaggio di programmazione che vi sia capitato di incontrare.

La risposta più votata riguarda il linguaggio C, dove si può far riferimento ad un elemento di un array sia in questo modo:

a[10]

che in quest'altro:

10[a]

Il secondo metodo appare per lo meno inusuale, ma è più chiaro se pensiamo, come dice un utente nei commenti, che in C gli array non sono altro che puntamenti in memoria, e che a[10] significa *(a+10), mentre 10[a] significa *(10+a). Non fa una grinza.

Poco sorprendentemente, le successive tre risposte con più voti riguardano Javacript.

Prendiamo ad esempio la prima. Provate a scrivere le linee seguenti in una console javascript (ad esempio in Chrome premete F12 e poi selezionate "Console"):

>'5' + 3 
'53'
>'5' - 3
2

C'è una spiegazione anche a questa incongruenza: in Javascript il segno + viene usato sia per concatenare due stringhe che per eseguire una addizione numerica, mentre il segno - solo per le operazioni di tipo numerico.

Javascript esegue una concatenazione se uno qualsiasi degli operatori dell'espressione è una stringa, ed è quello che succede nella prima linea. Nella seconda non ci sono ambiguità, Javascript trasforma la stringa '5' in numero ed esegue una normale sottrazione.

Due esempi che oltre ad essere curiosi esprimono molto efficacemente ognuno la natura del rispettivo linguaggio, entrambi tra i più popolari linguaggi di programmazione dei nostri giorni.

Comments