Вы находитесь на странице: 1из 3

Sea una GIC definada por G=(N, , S, P).

Deseamos contruir un APN que acepte L(G), para ello definimos los elementos del APN como sigue: Q={q0, q1}, = N U , s=q0, F={q1}, y para obtener a se aplican los siguientes criterios Una trancicion incila para introducir en la pila en smbolo no terminal incial: ( q0, , )= {( q1, S)} Para cada producion de la forma Aw , se define una transicin que substituye la pila al smbolo no terminal A, por la cadena w: ( q1, , A )= {( q1, w)} Definimos una trancision que desapila el smbolo de cima de la pila para cada smbolo terminal que coincida con el siguiente smbolo de entrada: ( q1, a, a )= {( q1, )}

Ejemplo: Sea la gramatica: S aSa | bSb | c Que genera al Lenguaje L={wcwR | w {a,b}* }, Aplicando los criterioas anteriores las reglas de trancision del autmata son: ( q0 , , )= { ( q1, S) } ( q1 , , S )= { ( q1, aSa), ( q1, bSb), ( q1, c) } ( q1 , a , a )= { ( q1, b, b), ( q1, c, c), ( q1, ) } La cadena w=abcba es aceptada mediante la siguiente secuencia: (q0 , abcba , ) (q1 , abcba , S) (q1 , abcba , aSa) (q1 , bcba , Sa) (q1 , bcba , bSba) (q1, cba , Sba) (q1 , cba , cba) (q1 , ba , ba) (q1 , a , a ) ( q1 , , ) El autmata obtenido por medio de esta tcnica, es un APN, a pesar de que se trata de un LICD como ya se demostr previamente, por ejemplo, en el tercer paso de la derivacin se reemplazo la S por aSa puesto que sabamos que el smbolo de entrada era una a, pero el autmata debi reemplazar la S de manera no determinista por las otras 2 alternativas tambin, encontrado ms adelante que se trataba de una sustitucin infructuosa.

TECNICA DE ANTICIPACION En algunos casos podemos modificar a un APN para obtener un APD equivalente por medio de la tcnica de anticipacin, que nos permite saber por adelantado cual es el smbolo de entrada siguiente, para poder seleccionar adecuadamente la transicin requerida. Esta tcnica es interesante porque es la que se emplea en los analizadores sintcticos para las gramticos tipo LL(K). Aplicando esta tcnica, agregamos tres nuevos estados: qa, qb y qc, hacia los cuales se definen las transiciones dependiendo del smbolo anticipado, entonces para definir un APD equivalente al APN anterior se tiene que Q{ q0, q1, q2, qa, qb, qc}, ={abc} ={S, a, b, c}, s= q0 F={ q1} y las transiciones siguientes: ( q0 , , )= { ( q1, S) } ( qa , , a )= { ( q1, ) } ( qb , , b )= { ( q1, ) } ( qc , , c )= { ( q1, ) } ( qb , , S )= { ( qb, bSb)} ( q1 , a, )= { ( qa, ) } ( q1 , b, )= { ( qb, ) } ( q1 , c, )= { ( qc, ) } ( qa , , S)= { ( qa, aSa) } ( qc , , S)= { ( qc, c) } La aceptacin de la cadena w= abcba sigue la secuencia siguiente: (q0 , abcba , ) (q1 , abcba , S) (qa , bcba , S) (qa , bcba , aSa) (q1 , bcba , Sa) (qb, cba , Sa) (qB , cba , bSa) (q1 , cba , Sba) (qc , ba , Sba ) ( qc , ba , cba ) (q1 , ba , ba) (qb , a , ba ) (q1 , a , a ) ( qa , , a ) ( q1 , , ) Este tipo de dispositivos se le conoce con el nombre de derivador, ya que nos permite reconstruir fcilmente el rbol de derivacin que genera la cadena en cuestin, detectando las reglas que se aplicaron a cada paso. Por ejemplo, la secuencia anterior nos indica que en el tercer paso se utilizo la produccin S-> aSa, luego en sexto paso se utilizo la produccin S-> bSb y en noveno paso se aplico S-> c, de ah se obtiene el rbol de derivacin mostrado en la figura:

Tcnica de postergacin

Вам также может понравиться