Notación BNF Backus-Naur Form.

Slides:



Advertisements
Presentaciones similares
ÁRBOLES DE SINTAXIS ÁRBOL grafo dirigido acíclico.
Advertisements

Análisis Sintáctico Capítulo 4.
Filminas Segunda semana
Compiladores e intérpretes Análisis Sintáctico II
Compiladores e intérpretes
Compiladores e intérpretes Análisis Sintáctico III
Programación de Computadores
Programación de Computadores
Gramáticas Libres de Contexto
Teoría de Autómatas y Compiladores
LENGUAJES DE DESCRIPCION DE HARDWARE (HDL)
ESTRUCTURA DE LOS LENGUAJES DE PROGRAMACION
SISTEMAS DE INFORMACIÓN
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
Seminario de Actualización - Excel Avanzado y Macros
POTENCIAS, RAICES, FRACCIONES Y DECIMALES
Módulo 5: Estructuras de Decisión y Bucles
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
3. INTRODUCCIÓN A LA PROGRAMACIÓN
ANALISIS SINTACTICO DESCENDENTE
El lenguaje de Programación Perl
Cobol C Pascal Fortran 1. INTRODUCCIÓN SmallTalk Java C++
ALGORITMOS Y ESTRUCTURA DE DATOS
ANALISIS SINTACTICO El análisis gramatical es la tarea de determinar la sintaxis, o estructura, de un programa. Por esta razón también se le conoce como.
M.C. Juan Carlos Olivares Rojas
Tema 6. Conceptos básicos de programación
TRAMPAS EN EL DISEÑO DE LENGUAJES CON RELACIÓN A LOS NOMBRES - REGLAS DE ALCANCE - COMPILACIÓN POR SEPARADO CONTROL DE FLUJO - EVALUACIÓN DE EXPRESIONES.
Tema 2 Lenguajes Formales.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
Un lenguaje funcional avanzado:
Sesión 6 Sentencias de Repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
EXPONENTES Y RADICALES
Características de “C”
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Nivel medio. Y Es un compilador. YContiene un conjunto de palabras.
Análisis sintáctico LR: SLR (LR simple)
CARACTERÍSTICAS DE LOS PROGRAMAS
Vamos a aprender a multiplicar fracciones
Análisis de Algoritmos
Cobol C Pascal Fortran 1. INTRODUCCIÓN SmallTalk Java C++
Página Web del Lenguaje Pascal.
Conversión cadena a número
FRACCIONES.
Resolución de Problemas y Algoritmos Uso de iteración con secuencias
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Teoría de lenguajes y compiladores
Todo traductor esta basado en una gramática para el lenguaje fuente. Todo traductor esta basado en una gramática para el lenguaje fuente. Una gramática.
Introducción al Análisis Sintáctico
Teoría – Alejandro Gonzalez
Control de Flujo.
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Estructura general de un programa en el servidor de Bases de Datos.
Agenda Clase 6 Iteradores. Enumeración sin iteradores. Loops lógicos. Recursión vs. Iteración. Recursión de Cola. Orden de Evaluación Normal y Aplicativo.
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Alto Nivel. Y Es un compilador. YContiene un conjunto de palabras.
Organización del Computador I Verano 2007
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Bloque 2: Divide y Vencerás Unidad 1: Nociones básicas.
Departamento de Informática Universidad Técnica Federico Santa María Ejercicios Certamen 1: Programación de Computadores (IWI-131) Luis Pizarro Q.
ESCUELA NORMAL “PROF. DARÍO RODRÍGUEZ CRUZ” Licenciatura en educación preescolar Alumnas: *Mayra * Monserrat * Idalia *Cinthia Curso: las TIC en la educación.
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
TIPOS DE DATOS.
Exponentes Enteros.
Presente un cuestionario con los aspectos mas importantes sobre los
Metodología de la programación
Es un tipo especial de software que nos permite *Crear *Desarrollar *Programar otras aplicaciones. Haciendo uso de sus conocimientos lógicos y lenguajes.
Programación de Computadores
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
Lenguaje de programación c
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
Sintaxis y Semántica. S.Takahashi Fases en el proceso de análisis de lenguajes Lexer Parser caracteres tokensrespuesta.
Control, adquisición y monitoreo con Arduino y Visual Basic .net
Diego Hernández R Pascal Variables Diego Hernández R
Transcripción de la presentación:

Notación BNF Backus-Naur Form

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.

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.

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

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.

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 ;

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#