Está en la página 1de 1

Teorı́a de la Computación I

Ejemplos de GLC

Ejemplo 1: L = {an bm | n < 2m}


Cadenas del lenguaje:
Nº Cadena Regla de formación Detalle
1 bb...b bb∗ Cadenas de solo b’s
2 ab...b abb∗ Cadenas de una a y una b seguida de 0 o más b’s
3 aabb...b aabbb∗ Cadenas de dos a’s y dos b’s seguida de 0 o más b’s
4 aaabb...b aaabbb∗ Cadenas de tres a’s y dos b’s seguida de 0 o más b’s
5 aaaabbb...b aaaabbbb∗
6 aaaaabbb...b aaaaabbbb∗
...
7 aaaaaabbbb...b aaaaaabbbbb∗
8 aaaaaaabbbb...b aaaaaaabbbbb∗
Patron Nº1: Para generar solo cadenas de una o más b’s hacemos:
S → bB
B → bB | ε
Patron Nº2: Se puede observar en esta lı́nea de la tabla que la primer cadena que incluye el caracter a “obliga” a agregar
un caracter b inmediatamente después, para luego agregar la cantidad que se desee de b’s.
S → aAbB
Patrón Nº3: En este ejemplo se ve que se sigue manteniendo la regla del punto anterior en la que el hecho de agregar un
caracter a necesariamente obliga a agregar un carcater b. Puede verse que auquı́ también es posible agregar todas las b’s
que se deseen, esto es posible por la variable sintáctica B de la regla anterior, por lo que en esta producción sólo restarı́a la
posibilidad de terminar la derivación de la cadena, para esto agregamos la cadena vacı́a.
A → aCb | ε
Patrón Nº 4: Se mantiene la cantidad de b’s pero se puede agregar una sola a más. Para esto se agrega una producción que
permita agregar la a adicional e inmediatamente después volver a permitir agregar una a emparejada con una b. También
se debe permitir en este momento terminar con la derivación de la cadena.
C → aA | ε
Pasando en limpio:
S → bB | aAbB
A → aCb | ε
B → bB | ε
C → aA | ε

También podría gustarte