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요소로 추가되는 경우도 있으니 아주 정확하다 볼순 없으니 재미로만 보셈
파이썬이c보다 복잡?!!
C는 진짜 심플한 편이고 파이썬은 꽤 복잡한 축에 들어
자바스크립트 스펙 문서 불러오다가 브라우저가 뒤져서 못썼음 어디서 팔구백페이지라고 들었는데 ㅇㅇ
ECMAScript 2017스펙이 885페이지
이번에 추가되는 애들 BNF나 세부 스펙까지 치면 올해에는 900페이지 넘길듯