[C con Clase] Compiladores

Liudnet Caballero Duboy lcaballero en estudiantes.uci.cu
Mar Mar 13 20:59:39 CET 2007


hola de nuevo...
donde pudiera encontrar ejemplos resueltos sobre compiladores sencillos....
para echarles una ojeada
 
 
 
 
 
 
 
 
Liudnet Caballero Duboy 
Estudiante de Tercer Año
Universidad de las Ciencias Informáticas
 
 
  

________________________________

De: cconclase-bounces en listas.conclase.net en nombre de Steven Davidson
Enviado el: Mar 13/03/2007 15:35
Para: cconclase en listas.conclase.net
Asunto: Re: [C con Clase] Compiladores



Hola Liudnet,

El pasado 2007-03-13 18:22:48, Liudnet Caballero duboy escribió:

LCd> Hola a todos:
LCd> escribo por que estoy comenzando con el tema de compiladores y  a la hora de entender la gramatica que se debe seguir no entiendo  bien lo que tiene que ver con  las reglas de produccion  y lo del conjunto de simbolos no terminales... si alguien pudiera darme una ayudita se lo agradeceria

Una gramática se basa en axiomas o reglas. Para describir tal gramática, usamos reglas de producción para describir los axiomas del lenguaje. Las reglas de producción se basan en definir símbolos no terminales y terminales. El metalenguaje popular que solemos usar es el llamado BNF: Nomenclatura de Backus-Naur o a veces Nomenclatura Normal de Backus. Por ejemplo, para describir un lenguaje que acepte cualquier "palabra" hecha por series aes y bes con tal de que comience y termine con 'a'. Podemos describir tal lenguaje con BNF de la siguiente manera:

(*) <palabra> ::= a<letras>a | aa
<letras> ::= a<letras> | b<letras> | a | b

Esto describe la sintaxis del lenguaje y con ello podemos verificar si una "palabra" pertenece a nuestro lenguaje o no. Por ejemplo, la palabra "baabaa" no pertenece a nuestro lenguaje. Podemos verificarlo aplicando las reglas establecidas. Empezamos con la producción <palabra>:
baabaa
^

<palabra> ::= a<letras>a

b != a, entonces no se trata de la primera definición de <palabra>. Probemos la segunda:

<palabra> ::= aa

b != a. Como ninguna definición de <palabra> acepta la palabra entrante "baabaa", entonces establecemos que existe un error sintáctico.

Una técnica popular de usar BNF es crear una MEF: Máquina de Estados Finitos. Supongo que lo verás cuando sigas estudiando el tema de compiladores y lenguajes en general.


Espero que todo esto te aclare las dudas.

Steven
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ


------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: winmail.dat
Type: application/ms-tnef
Size: 6535 bytes
Desc: no disponible
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070313/fbd8ced9/attachment.bin>


Más información sobre la lista de distribución Cconclase