jueves, agosto 30, 2007

Estética de la sintáxis

Mi reunión quincenal de programación en Haskell se ha convertido en un pequeño proyecto para conocer como implementar "Parsers Combinadores" (no sé si se pueda traducir así) La idea es que antes de echar código, teníamos que leer algo de Parsers Combinadores (1). Leyendo el artículo caí en cuenta que no sabía que era un Parser Combinador (si... yo se :P) entonces googleando encontré Este Link Súper Interesante.

Mas que ser una tremenda explicación sobre Parsers Combinadores, la entrada despertó una tremenda curiosidad en SmallTalk.

Y esto porqué?

Por ejemplo SmallTalk permite Closures.

El autor dice:
"
(self letter | [self digit]) star
which yields a parser that accepts zero or more occurrences of either a letter or a digit.
In a syntax more people understand, this would look something like:
(1) letter().or( new DelayedParser(){ public Parser value(){ return digit();} }).star()
If Java had closures, it might look like this:
(2) letter().or({=> digit()}).star()
"


Y hace el comentario.

"This is better, but either way, the goal of writing an executable grammar tends to get lost in the noise. Nevertheless, it seems most people prefer (1), and the vast majority of the rest prefer (2) over the “bizarre” Smalltalk syntax. Who knows what darkness lies in the hearts of men."

En fin... usaré mi tiempo pagado en la universidad para aprender ST :)

(1)S. Doaitse Swierstra. "Combinator Parsers: From Toys to Tools"

No hay comentarios.: