Wednesday, June 15, 2011

ANTLR: construint llenguatges

Al projecte que estem desenvolupant actualment havien d'acceptar expressions de consulta com la següent:

nom:toni AND (data:ENTRE 17-FEB-2010 I 25-MAR-2010 OR ciutat:Barcelona)

(no exactament això, però com a exemple ens serveix)

Aquesta consulta expressada d'aquesta manera calia validar-la i convertir-la, entre altres coses, a una consulta SQL.

Per fer aquesta feina podíem haver fet un codi basat en substrings i molts if, però el resultat seria poc flexible (i poc fiable). El millor és sempre fer servir l'eina adequada per cada problema, i en aquest cas el més adient semblava ANTLR.

ANTLR (ANother Tool for Language Recognition) és una eina que permet construir aplicacions per reconèixer i interpretar llenguatges. S'assembla al lex i el yacc que vam veure a les assignatures de Compiladors, o al Flex i Bison que trobem a GNU/Linux, o al JavaCC.

Amb ANTLR pots construir un lexer i un parser, definint el llenguatge amb notació similar a BNF, igual que fèiem amb yacc, però amb moltes facilitats. Entre altres coses hi ha una eina visual per anar provant la gramàtica a mesura que la vas escrivint. I s'integra perfectament amb Eclipse.

Resulta molt fàcil crear DSL (Domain-Specific Languages) fent servir ANTLR, i això obre un món de possibilitats.

Tot i que no he estat jo el que al final a desenvolupat el parser al projecte, he pogut veure tot el potencial de ANTLR. A la seva plana Web els usuaris han anat pujant gramàtiques per molts llenguatges, entre d'altres el PL/SQL. Això m'ha fet recordar un munt de projectes personals abandonats, com el formatejador de PL/SQL o, molt més interessant, un analitzador estàtic de codi PL/SQL que doni informació com:
  • variables no usades
  • funcions i procediments no usats
  • us adequat de convencions pels noms
  • tipus de dades coherents
Pot ser un projecte molt pràctic per netejar codi existent. A veure si trobo temps finançament...

Wednesday, June 8, 2011

Estic llegint: Los Olvidados

Los OlvidadosDe Tim Tzouliadis. 2010. Publicat per Debate. 520 pàgines.

Aquest assaig històric descriu una part de la història contemporània que no és gaire coneguda. A la Gran Depressió del anys 1930 la taxa d'atur als Estats Units era molt alta i van haver milers d'americans disposats a provar sort a la Unió Soviètica, un paradís dels treballadors i una terra d'oportunitats.

Molts americans van viatjar a la URSS de Stalin per buscar feina i un futur per les seves famílies. En aquella època fins i tot la Ford va obrir una fàbrica de cotxes a Rusia, on van anar a parar alguns enginyers americans. Al llibre podem veure fotos d'aquests pioners americans jugant a beisbol a parc Gorki.

Però les coses no eren gens maques amb Stalin. Va arribar "el Terror", on sistemàticament els serveis de seguretat soviètics feien escorcolls i detencions nocturnes de tots els sospitosos de ser "enemics del poble".

I l'ambaixada americana va passar d'aquests emigrants.

Deixant de banda la situació dels americans, les tortures, execucions i explotació com a esclaus als Gulags i les mines d'or de Sibèria van durar molts anys. Al llibre no s'atreveix a donar xifres, però parla d'uns 15 milions.

Quan es va aixecar Hitler i la Unió Soviètica es va convertir en aliada dels Estats Units Stalin va continuar exterminant el seu poble i costa de creure que s'estengués tant en el temps.

És trist, però aquestes atrocitats no ens van afectar com ho van fer els camps d'extermini nazi per la sola raó de que no tenim imatges.

Es tracta d'un relat molt dur però és una part de la història que no podem ignorar.

Malgrat que ha estat de vegades ha costat de llegir, haig d'agrair al meu cunyat per haver-me'l regalat.

Si voleu, podeu llegir un resum molt més detallat del llibre a la web de Hislibris.