lunes, 3 de agosto de 2009

Azucar, sal y sacarina

El azúcar sintáctico es una pequeña adición a la gramática que, en vez de introducir una nueva semántica, símplemente replica una semántica ya expresada. Por ejemplo, si un lenguaje de programación tuviera algo como "add(x, y)" para sumar dos valores, un azúcar sintáctico sería escribir "x+y". Hace exáctamente lo mismo, pero facilita mucho las cosas.

Bien, hay también la llamada sal sintáctica. Esto es una sintaxis que fuerza el buen comportamiento del programador. Aunque generalmente sea visto por el programador como "un latazo". El ejemplo es el tener que escribir "end if" en vez de "end" en algunos lenguajes para recordar que ese "end" era de un "if". Además, el compilador se queja si no se emparejan los "if" con los "end if". Esto es bueno, permite detectar errores y despistes, pero es un latazo.

Finalmente, hay almas cándidas que creen que una idea suya es buenísima e implementan una sintaxis especial para algo que ya existe en el lenguaje, pero que puesta de esta nueva forma es mucho más fácil. Realmente, nadie usa esa sintaxis especial por lo que el azúcar sintáctico se queda sólo en sacarina sintáctica.

2 comentarios:

Ontureño dijo...

Entonces, ¿expresiones como en C, como i++ en lugar de i=i+1 son azucar sintáctico?

Gadelan dijo...

Sí. Tanto ++i como i++ es azúcar sintáctico.

Aunque con i++ hay que tener cuidado. Realmente lo que has escrito es ++i. El i++ es ligeramente distinto porque lo que hace es algo como (temp=i, i=i+1, temp). En este caso, el resultado es el valor de i antes del incremento. Por eso se llama postincremento a i++ (incrementa después de dar un valor). Mientras que ++i es preincremento (incrementa antes de dar un valor)

Publicar un comentario en la entrada