La Forma de Backus i Naur o Forma de Backus-Naur o BNF és una notació que té com a finalitat descriure les regles sintàctiques dels llenguatges de programació.
Va ser concebuda per John W. Backus i Peter Naur arran de la creació del llenguatge Algol 60.
Inicialment coneguda com a Forma Normal de Backus, va esdevenir Forma de Backus-Naur per suggeriment de Donald Knuth.
En BNF es distingeixen els meta-símbols, els terminals i els no-terminals.
Producció "if" del llenguatge C:
<estructura_if> ::= if "(" <condició> ")" "{" <codi> "}"
Hi ha moltes variants i extensions de BNF, possiblement contenint alguns o tots els comodins d'expressions regulars com un "*" o "+". El Extended Backus-Naur form (EBNF) és una variant comuna. De fet l'exemple anterior no és la forma pura inventada per a l'informe de l'ALGOL 60. La notació dels claudàtors "[ ]" va ser introduïda alguns anys més tard en la definició de PL/I de la IBM però ara es reconeix universal. L'ABNF és una altra extensió usada comunament per a descriure protocols del IETF.
Les expressions gramaticals d'analitzadors sintàctics construïdes en BNF i les notacions d'expressió regular per a formar una classe alternativa de la gramàtica formal, que és essencialment analítica més que generativa en caràcter.