Backus Naur form
Different Programming Languages Different programming languages take different forms For i = 1 to 10 (is VB6) For(i=1, i<=10, 1++) (is C++) A Visual Basic compiler would not understand the C++ syntax.
BNF We need a set of rules that specifies every part of the language to overcome this problem We use Backus Naur Form or Syntax Diagrams
BNF Example All languages use integers The integer can be a single digit <integer>::= <digit> This is read as an integer is defined (::=) to be a digit Now we define the digit <digit>::=1|2|3|4|5|6|7|8|9 Anything that needs defining is put in <>
BNF Example Our full definition is <integer>::= <digit> We need to consider the length of the integer All integers more than one digit begin with digit <integer>::= <digit> <integer> This definition is recursive (calls itself)
BNF Example
BNF Example <unsigned integer>::=<digit>|<digit><integer> This can be expressed through a syntax diagram All definitions should be created by paths through the diagram from left to right
BNF Example
A Signed Integer - BNF Example
BNF Example