Lenguajes formales - Facultad de Informática - Universidad ...

Lenguajes formales - Facultad de Informática - Universidad ... Lenguajes formales - Facultad de Informática - Universidad ...

03.06.2013 Views

Notación EBNF Añade metasímbolos nuevos y cambia la forma de presentar las cosas BNF TERMINAL Metasímbolo ::= Equivalencia | Alternativa Recursividad permitida EBNF “terminal” No-terminal Metasímbolo ::= Equivalencia | Alternativa (...) Agrupación [...] Aparición opcional {...} Aparición 0, 1 o más veces (son ERs a la derecha de cada producción) Recursividad NO permitida (se suple con {…}) Si algún símbolo del lenguaje coincide con un metasímbolo, el símbolo del lenguaje se pone entre ‘comillas simples’ Procesadores de Lenguaje Ingeniería en Informática R.29

Procesadores de Lenguaje Ingeniería en Informática Ejemplo en notación EBNF Sintaxis de los números enteros positivos en notación EBNF Numero-entero ::= [Signo] Secuencia-dígitos Signo ::= “+” Secuencia-dígitos ::= Dígito {Dígito} Dígito ::= “0” | “1” | “2” | “3” | “4” | “5” | “6” | “7” | “8” | “9” R.30

Notación EBNF<br />

Aña<strong>de</strong> metasímbolos nuevos y cambia la forma <strong>de</strong> presentar<br />

las cosas<br />

BNF<br />

TERMINAL<br />

<br />

Metasímbolo<br />

::= Equivalencia<br />

| Alternativa<br />

Recursividad permitida<br />

EBNF<br />

“terminal”<br />

No-terminal<br />

Metasímbolo<br />

::= Equivalencia<br />

| Alternativa<br />

(...) Agrupación<br />

[...] Aparición opcional<br />

{...} Aparición 0, 1 o más veces<br />

(son ERs a la <strong>de</strong>recha <strong>de</strong> cada producción)<br />

Recursividad NO permitida (se suple con {…})<br />

Si algún símbolo <strong>de</strong>l lenguaje coinci<strong>de</strong> con un<br />

metasímbolo, el símbolo <strong>de</strong>l lenguaje se pone<br />

entre ‘comillas simples’<br />

Procesadores <strong>de</strong> Lenguaje<br />

Ingeniería en <strong>Informática</strong> R.29

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!