Compilador

Buenas tardes, soy nuevo en el campo de compiladores. Espero me puedan ayudar en lo siguiente: Tengo que definir una gramática simple (p.e. G = ({A,B,C}, {a,b,c}, A, P) ) en la cual las reglas de derivación (P) no tienen que ser necesariamente complicadas. Bueno una vez definido, se tiene que hacer un programa en java usando estructura de datos(listas, pilas, colas, etc..) en la que pueda reconocer si una cadena ingresada por un usuario pertenece a la gramática definida o no mostrándolo en un mensaje.

Mi idea fue:

G = (VN, VT, S, P)
Siendo:
• VARIABLES NO TERMINALES (VN) = { A, B, C }

• VARIABLES TERMINALES (VT) = { x, +, (, ) }

• AXIOMA PRINCIPAL (S) = { A }
Teniendo como reglas de producción:
• (1) A -> x | (B) // first_rule

• (2) B -> AC // second_rule

• (3) C -> {+A} // third_rule

Por favor ayudenme, puede cambiar a otra gramática si parece muy complicado.

Gracias de antemano.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

duplicado