ბეკუს-ნაურის ფორმალიზმი

ბეკუს-ნაურის ფორმალიზმი — მეტასინტაქსი (ინგლისური შემოკლებით BNF), რომელიც იხმარება კონტექსტისგან თავისუფალი გრამატიკის შესაქმნელად. ბეკუს-ნაურის ფორმალიზმი ფორმალური ენების აღსაწერი ფორმალური საშუალებაა.

ეს სინტაქსი არის გამოგონილი ჯონ ბეკუსის და პეტერ ნაურის მიერ Algol 60 ენის გრამატიკის შექმნის დროს.

 სინტაქსი 

BNF-ში განასხვავებენ მეტასიმბოლოებს, საბოლოო ტერმინებს (terminals) და არა საბოლოო ტერმინებს (non terminals). მეტასიმბოლოები წარმოადგენენ BNF-ის სიმბოლოებს. არა საბოლოო ტერმინების სიმბოლოები წარმოადგენენ დაწესებული კატეგორიების სახელებს, და საბოლოო ტერმინები არიან აღწერილი ენის სიმბოლოები.

ავიღოთ მაგალითად C პროგრამირების ენის if-ის სტრუქტურა:
  <if_structure> ::= if "(" <condition> ")" "{" <code> "}" 

წარმოადგენენ არა საბოლოო ტერმინებს. ::= არის მეტა-სიმბოლო რომელიც ნიშნავს "განსაზღვრულია".
if, "(", ")", "{" და "}" არიან საბოლოო ტერმინები. როდესაც საბოლოო ტერმონები მარტო ერთი ნიშნით შედგებიან, არა ალფაციფრულ ნიშანებს შეიცავენ ან მითი არევა შესაძლოა მეტა-სიმბოლოებთან, ვათავსებთ ბრჭყალებში.

ხშირად ხდება ისე რომ არა საბოლოო ტერმინი სხვადასხვანაირად აღიქვას.
ასეთ შემთხვევაში ვხმარობთ | მეტა-სიმბოლოს.
  <category> ::= <one> | <two> | ...

ზოგჯერ ფრჩხილებსაც ვხმარობთ:
  <category> ::= ( <one> | <two> ) <three>
რაც უდრის :
  <category> ::= <one> <three> | <two> <three>
რესურსები ინტერნეტში
  BNF Web Club  გთავაზობთ რამდენიმე პროგრამირების ენის BNF-ს

კატეგორია:ინფორმატიკა
კატეგორია:პროგრამირების ენები