Sei sulla pagina 1di 5

2012

UNIVERSIDAD POLITECNICA SALESIANA


LENGUAJES FORMALES
Nombres: Fecha: Tema: ngel Esteban Jumbo 24/05/2012 BNF EBNF

Resumen Ejecutivo
Los temas que se describen en el presente documento son un tipo metalenguaje, que es un lenguaje que se usa para hablar acerca de otro lenguaje. Al lenguaje acerca del cual se est hablando se lo llama el lenguaje objeto. Un metalenguaje a la vez puede ser el lenguaje objeto de otro metalenguaje de orden superior, y as sucesivamente. Distintos metalenguajes pueden hablar acerca de diferentes aspectos de un mismo lenguaje objeto. Entre estos tipos de metalenguajes tenemos el BNF y EBNF El BNF es una metasintaxis usada para expresar gramticas libres de contexto: es decir, una manera formal de describir lenguajes formales, se utiliza como notacin para las gramticas de los lenguajes de programacin de la computadora, de los sistemas de comando y de los protocolos de comunicacin. El EBNF es un cdigo que expresa la gramtica de un lenguaje de computadora, consta de smbolo terminal y no terminal normas de produccin que son las restricciones que regulan el modo smbolos terminales se pueden combinar en una secuencia legal. Los componentes que tienen son similares tanto para BNF como para EBNF, entre estos tenemos: Conjunto de normas se especifica. Cada regla de produccin define el modelo que representa una parte denominada estructura de la lengua, como una expresin o una declaracin. Los bloques de construccin bsicos de la lengua son smbolos que representan a s mismos. Cada regla contiene el nombre de la no-terminal que se est definiendo, seguido por alguna convencin que dice que el resto de la regla ahora comienza. La definicin de una regla puede contener tambin el smbolo que se define por la que las reglas como parte de su definicin.

2012
Marco Terico: BNF
Qu es BNF? La notacin de Backus-Naur, tambin conocida por sus denominaciones inglesas Backus-Naur form (BNF), Backus-Naur formalism o Backus normal form, es una metasintaxis usada para expresar gramticas libres de contexto: es decir, una manera formal de describir lenguajes formales. El BNF es un lenguaje formal, y puede emplearse para describirse a s mismo. Notacin BNF Sintaxis de los nmeros enteros positivos en notacin BNF <numero entero> ::= <signo opcional> <secuencia dgitos> <signo opcional> ::= + | <nada> <secuencia dgitos> ::= <dgito> | <dgito> <secuencia dgitos> <dgito> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 <nada> ::=

El identificador denota una entidad sintctica. La notacin BNF utiliza los siguientes meta-smbolos: <> Encierra conceptos definidos o por definir. ::= Sirve para definir o indicar equivalencias. | Separa las distintas alternativas. Indica que el meta smbolo que aparece entre comillas es un que forma parte de la sintaxis del lenguaje. () Se permite el uso de parntesis para hacer agrupaciones. Existen smbolos con entidad propia llamados smbolos terminales. Tambin existen otros que se deben definir y se denominan no terminales. Para qu sirve BNF? El BNF se utiliza extensamente como notacin para las gramticas de los lenguajes de programacin de la computadora, de los sistemas de comando y de los protocolos de comunicacin, as como una notacin para representar partes de las gramticas de la lengua natural (por ejemplo, el metro en la poesa de Venpa). La mayora de los libros de textos para la teora o la semntica del lenguaje de programacin documentan el lenguaje de programacin en BNF.

2012

Caractersticas Permite describir lenguajes con una sintaxis independiente del contexto. Define el conjunto de cadenas que son programas del LP sujeto, junto con su estructura sintctica

Mediante esta BNF se puede generar un nmero infinito de programas correctos, y un nmero infinito de programa incorrectos
Componentes Un conjunto de normas se especifica. Estas son conocidas como de produccin reglas. Ellos definen los patrones o secuencias de smbolos permitidos en el lenguaje. Cada regla de produccin define el modelo que representa una parte denominada estructura de la lengua, como una expresin o una declaracin. El nombre de dicha parte que se llama un no-terminal smbolo en la lengua. Los bloques de construccin bsicos de la lengua son smbolos que representan a s mismos. Estos pueden ser individuales o combinaciones de caracteres como palabras clave y operadores aritmticos. Estos elementos bsicos del lenguaje se llaman terminales de smbolos. Cada regla contiene el nombre de la no-terminal que se est definiendo, seguido por alguna convencin que dice que el resto de la regla ahora comienza. Esto es seguido por las secuencias de secuencia o alternativo permitido para ese smbolo. Una secuencia puede contener la definicin de los smbolos terminales permitidas para ese idioma. Tambin puede contan noterminales definidos en otras normas. Si un terminal no se utiliza sin ser definido, la gramtica para el idioma que se est definiendo es incompleta. La definicin de una regla puede contener tambin el smbolo que se define por la que las reglas como parte de su definicin. Esto se llama recursiva definicin. Cualquier smbolo definido de esta manera debe tener una definicin alternativa, que no agota en s misma, de lo contrario la gramtica es una vez ms incompleta.

2012
EBNF

Qu es EBNF? Extendida de Backus-Naur (EBNF) es un cdigo que expresa la gramtica de un lenguaje de computadora. Un EBNF consta de smbolo terminal y no terminal normas de produccin que son las restricciones que regulan el modo smbolos terminales se pueden combinar en una secuencia legal. Ejemplos de smbolos terminales incluyen caracteres alfanumricos, signos de puntuacin y los caracteres de espacio en blanco. Las extensiones siguientes permiten realizar descripciones ms fciles de los lenguajes: Se puede indicar un elemento optativo usando [...] Una seleccin de alternativas opcionales se puede hacer usando[ | ] { | } Una repeticin arbitraria se puede indicar con {...}*

Notacin EBNF Sintaxis de los nmeros enteros positivos en notacin EBNF Numero-entero ::= [Signo] Secuencia-dgitos Signo ::= + Secuencia-dgitos ::= Dgito {Dgito} Dgito ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 Dgito ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 Para qu sirve EBNF? La mayora de las normas del lenguaje de programacin utilizar alguna variante de EBNF para definir la gramtica de la lengua. Esto tiene dos ventajas: no puede haber desacuerdo sobre cul es la sintaxis del lenguaje es, y lo hace mucho ms fcil hacer los compiladores, ya que el analizador para que el compilador se pueden generar automticamente con un compilador de compilador, como YACC. EBNF tambin se utiliza en muchas otras normas, tales como la definicin de formatos de protocolos, formatos de datos y lenguajes de marcado como XML y SGML. (HTML no se ha definido con una gramtica, sino que se define con una DTD de SGML, que es una especie de gramtica de nivel superior.)

2012

Caractersticas Las reglas de produccin pueden contener espacios. Los smbolos terminales se representan con comillas dobles () cuando representan un smbolo del alfabeto y comillas simples () para representar cadenas El operador de produccin ahora es el smbolo de igual (=) Se recomienda escribir los smbolos no terminales en minsculas. Cada regla de produccin termina con el smbolo de punto y coma (;). El operador | indica una alternativa de regla de produccin.

Ventajas de EBNF respecto a BNF El BNF tuvo el problema de que las opciones y las repeticiones no poda ser expresado directamente. En su lugar, es necesario el uso de una regla intermedia o la produccin alternativa definida a ser nada o la produccin opcional para la opcin, o bien la produccin repetida o s, de forma recursiva, por repeticin. Las mismas construcciones todava se puede utilizar en EBNF. BNF slo puede representar una regla en una sola lnea, mientras que en EBNF un carcter de terminacin, el punto y coma, marca el final de una regla. EBNF incluye mecanismos para mejoras, definiendo el nmero de repeticiones, con exclusin de las alternativas, comentarios, etc.

Conclusiones:
Las extensiones que posee EBNF hace que las descripciones de los lenguajes sea mucho ms sencilla. El BNF es muy similar al EBNF con algunas ventajas por parte del EBNF, se podra decir que el EBNF es una versin mejorada del BNF.

Bibliografa:
http://es.wikipedia.org/wiki/Notaci%C3%B3n_de_Backus-Naur http://es.scribd.com/doc/92631418/Reglas-BNF http://www2.elo.utfsm.cl/~lsb/elo320/clases/ap1.pdf http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form http://www.macs.hw.ac.uk/~rjp/Coursewww/Cwww/EBNF.html http://es.scribd.com/doc/47639877/BNF-y-EBNF

Potrebbero piacerti anche