A top-down parser begins with the Sentence symbol, S, expands a production for S, and so on recursively until words (terminal symbols) are reached. If the string of words matches the input, a parsing has been found.[See the Language Generation slide earlier in this section.]
This approach to parsing might seem hopelessly inefficient. However, top-down filtering, that is, testing whether the next word in the input string could begin the phrase about to be tried, can prune many failing paths early.
For languages with keywords, such as programming languages or natural language applications, top-down parsing can work well. It is easy to program.