What

It’s a subset of Context-Free Language with 3 strict requirements. They are:

  1. (two non-terminals)
  2. (a single terminal)
  3. (empty string)

Why bother?

Well it turns out any legal production ruleset of a Language (specifically Context-Free Language) can be transformed into CNF. Then we can apply the CYK Algorithm to turn a sentence into a tree using the CNF version of it.