 Backus–Naur form (BNF) is a formal metalanguage originally used to define ALGOL 60.BNF is a weak metalanguage, for it describes only the syntax and says nothing about the semantics or meaning.Metaprogramming is the writing of computer programs with the ability to treat programs as their data.