프로그래밍 언어론 같은 거 보면 초반에 BNF라던가 나오잖음? 거기에서 나오는 개념들이 일반 프로그래밍 언어의 컴파일러 만드는데도 쓰이는거임? parse tree 라던가 시맨틱이라던가