La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Notación BNF Backus-Naur Form.

Presentaciones similares


Presentación del tema: "Notación BNF Backus-Naur Form."— Transcripción de la presentación:

1 Notación BNF Backus-Naur Form

2 Naur Peter Naur adaptó la notación de Backus al reporte de ALGOL-60, haciéndole una serie de mejoras. Esto condujo a la notación denominada “Backus-Naur Form” (BNF) que es tan común en nuestros días.

3 John Backus John Backus sugirió en los 1950s una manera formal de describir la sintaxis de un constructor en una parte del reporte original de FORTRAN I.

4 BNF La notación BNF es realmente un meta-lenguaje, porque se le usa para describir otro lenguaje (normalmente, un lenguaje de programación tal como ALGOL, Pascal, C, etc.). En términos llanos, la notación BNF es una nomenclatura que nos permite efectuar una descripción compacta y precisa de los constructores sintácticos usando ciertos símbolos y reglas. Los meta símbolos BNF son: ::= que significa “definido como” |que significa “o” < > que se usa para encerrar nombres de categorías

5 Las descripciones de sintaxis en inglés probaron ser inadecuadas
Un dígito puede ser ´0´,´1´,´2´,´3´,´4´,´5´,´6´,´7´,´8´,´9´. Un entero sin signo es una secuencia de uno o más dígitos Un entero tiene una de las siguientes tres formas: Un entero positivo (´+´) seguido por un entero sin signo, o un signo negativo (´-´) seguido de un entero sin signo, o un entero sin signo precedido por nosigno. Una fracción decimal es un punto decimal(´.´) inmediatamente seguido por un entero sin signo. Una parte exponente es un símbolo ´10´ en subindice inmediatamente seguido por un entero. Un número decimal tiene una de las siguientes tres formas: Es un entero sin signo, o una fracción decimal o un entero sin signo seguido de una fracción decimal Un numero sin signo puede tomar una de las siguientes tres formas: Es un numero decimal, u una parte exponente, o un numero decimal seguido de una parte exponenete. Finalmente un numero puede tener una de las siguientes tres formas: Puede ser un signo positivo seguido de un numero sin signo, o un signo negativo seguido de un numero sin signo, o un numero sin signo precedido por un no-signo.

6 La notación BNF Los ángulos distinguen las reglas de sintaxis para los
nombres (tambien llamados símbolos no terminales) Los símbolos terminales se escriben tal cual son representados. Una regla BNF que define un no-terminal tiene la forma: nonterminal ::= sequence_of_alternatives Que consiste de cadenas de símbolos terminales o noterminales separados por el metasímbolo | Por ejemplo, la producción BNF para un mini-lenguaje es: <program> ::= program <declaration_sequence> begin <statements_sequence> end ;

7 Ejemplos <empty> ::=
<basic symbol>::= <letter> | <digit> | <logical value> | <special symbol> | <delimiter> <letter> ::= A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | Y | W | X | Y | Z <digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 <logical value> ::= #TRUE# | #FALSE# <special symbol> ::= <any symbol in CDC 64-charaeter set> <delimiter> ::= <operator> | <separator> | <bracket> | <declarator> | <specificator > <operator> ::= <arithmetic operator> | <relational operator> | <logical operator > | <sequential operator> <arithmetic operator> ::= + | - | * | / | // | ** | ^ <relational operator> ::= < | #le# | = | #ge# | > | ~= <logical operator> ::= #EQUIV# | #IMPL# | #and# | #OR# | ~ <sequential operator> ::= #GO TO# | #IF# | #THEN# | #ELSE# | #FOR# | #DO# <separator> ::= # | , | . | : | ; | := | #STEP# | #UNTIL# | #WHILE# | #COMMENT# | #CODE# | #ALGOL# | #FORTRAN# | #RJ# <bracket> ::= ) | ( | ] | [ | #(# | #)# | #BEGIN# | #END#


Descargar ppt "Notación BNF Backus-Naur Form."

Presentaciones similares


Anuncios Google