BNF = 언어 규칙 이라 생각하면 됨

요소가 많을수록 복잡한 언어


내림차순

C++ 319요소

자바 246요소

PHP 147요소

스칼라 143요소

VB.net 127요소

파이썬 87요소

C 58요소

Prolog 19요소

(원시)리스프 7요소


BNF를 가져오지 못한 언어

자바스크립트 -> 너무 길어서 읽다가 뒤져버림(총 1200라인, 요소는 얼추 3~4백개쯤 되는듯)

Go -> bnf를 그대로 제공하지 않음 (https://golang.org/ref/spec 참조)

하스켈, 리스프 방언 -> bnf가 없음

* 하스켈의 bnf에 관해

BNF is for context free grammar. Since Haskell is not context free (according to this), then no BNF grammar exists for Haskell.

(according to this)에 걸려 있는 링크: http://trevorjim.com/haskell-is-not-context-free/


bnf를 공개해 보여주기 위한 용도로 콤팩트하게 만드는 경우도 있고

성능 향상, 문법 설탕 등을 이유로 각종 키워드가 bnf요소로 추가되는 경우도 있으니 아주 정확하다 볼순 없으니 재미로만 보셈