Derive a parse tree top down, from the start nonterminal
grammar라는게 가지치기를 통해서 여러 방향으로 뻗어나갈 수 있는 건데 Top Down 방식에서는 선택이 맞는지 틀린지를 직접 해보고 path를 결정할 수 있는 것
코딩하기도 쉽고, 코드의 크기도 작다는 장점이 있지만 left recursion이나 Backtracking으로 인한 resource 낭비가 너무 심하다
Top Down 방식에서는 이를 해결하기 위해서 Left Factoring이라는 방법을 제시하지만 이때 새로운 nonterminal을 생성해야 되서 조금 복잡한 경향
Top-down Parsers