Compiler Spanish

Generador de Compiladores Coco/R

Hanspeter Mössenböck, Universidad Johannes Kepler en Linz

Coco/R toma una descripción de un compilador en la forma de una gramática atribuida (sintaxis EBNF con acciones de atributos y semántica) y la traduce en un scanner y un analizador de descenso recursivo. El usuario debe añadir módulos para el manejo de tablas de símbolos, optimización y generación de códigos para ejecutar un compilador. Los conflictos LL (1) pueden ser solucionados por un mecanismo especial de pre análisis. Coco/R ha sido usado con éxito en academias e industrias. Combina la funcionalidad de Lex y Yacc, las reconocidas herramientas de Unix.

Coco/R está disponible bajo GNU GPL desde http://ssw.jku.at/coco/

Aquí está un ejemplo de una pequeña descripción de un compilador con Coco/R:

COMPILER Demo

CHARACTERS
  letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrtsuvwxyz".
  digit = "0123456789".
  EOL = '\t'.

TOKENS
  ident = letter {letter | digit}.
  number = digit {digit}.

COMMENTS FROM "/*" TO "*/" NESTED
IGNORE  EOL

PRODUCTIONS
  Demo = Statement {";" Statement}.
//------------------------------------------------------------------------------------
  Statement                         (. string x; int y; .)
  = Ident<out x> "=" Number<out y>  (. CodeGen.Assign(x, y); .)
  .
//------------------------------------------------------------------------------------
  Ident <out string x>
  = ident                           (. x = t.val; .)
  .
//------------------------------------------------------------------------------------
  Number <out int n>
  = number                          (. n = Convert.ToInt32(t.val); .)
  .
END Demo.
John Miller
Follow us

John Miller

John has worked in investment banking for 10 years and is the main author at 7 Binary Options. He holds a Master's degree in Economics.
John Miller
Follow us

Leave a Reply

Your email address will not be published. Required fields are marked *