Backus-Naur Form

O Backus-Naur form (BNF) (tamén coñecida como Backus-Naur formalism, Backus normal form ou Panini-Backus Form) é unha metasintaxe usada para expresar gramáticas libres de contexto: é dicir, un xeito formal de describir linguaxes formais.

O BNF utilízase cumpridamente como notación para as gramáticas das linguaxes de programación da computadora, dos sistemas de comando e dos protocolos de comunicación, así como unha notación para representar partes das gramáticas da lingua natural (por exemplo, o metro na poesía de Venpa). A maioría dos libros de textos para a teoría e/ou a semántica da linguaxe de programación documentan a linguaxe de programación en BNF. Algunhas variantes, talles como a augmented Backus-Naur form (ABNF), teñen a súa propia documentación.

Historia

John Backus creou a notación co propósito de expresar a gramática de ALGOL. No primeiro Congreso de Computación Mundial (World Computer Congress), Backus presentou o artigo "The syntax and semantics of the proposed international algebraic language of the Zúric ACM-GAMM Conference", o cal contén a descrición formal da linguaxe que sería coñecido posteriormente como ALGOL 58. Peter Naur identificou a notación de Backus como a Forma Normal de Backus (Backus Normal Form), e simplificouna para usar un conxunto de símbolos menor e, a suxestión de Donald Knuth, o seu apelido fué agregado en recoñecemento á súa contribución, substituíndo a palabra "Normal" por Naur, resultado en Forma de Backus Naur (Backus Naur Form)[1]. A Backus-Naur Form ou as gramáticas de BNF ten semellanzas significativas ás regras da gramática de Pāṇini, e ás veces tamén se coñece como Panini-Backus Form. O BNF foi creado como parte de crear as regras para ALGOL 60.

Other Languages