BNF (Backus-Naur form) – 배커스-나우어 형식
BNF는 프로그래밍 언어를 정의하기 위한 최초의 메타 언어였다. ALGOL 58 언어의 구문 기술을 위해 1959년에 John Backus에 의해 처음 도입되었으며, Peter Naur에 의해 강화되어 ALGOL 60을 정의하는데 사용되었다. BNF는 구문 요소를 나타내는 기호 , 둘 중 하나의 선택을 의미하는 기호 ∥, 좌변은 우변에 의해 정의됨을 의미하는 기호 ::= 등의 메타 기호들을 사용하여 규칙을 표현한다. BNF의 원형은 원래 “Backus normal form”이었으나, Peter Naur의 이름을 넣어 오늘날과 같이 바뀌었다.