This document discusses Backus-Naur Form (BNF), which is a notation technique used to describe the syntax of computer languages. BNF uses terminal and non-terminal symbols with production rules of the form left-hand side ::= right-hand side to formally define a language's grammar. John Backus first proposed BNF to describe the syntax of ALGOL 58. Examples are given to write BNF grammars for University of Lucknow course codes and palindromes. The document also discusses ambiguity in grammars, where a grammar has more than one parse tree for a string.