A general parsing algorithm that can handle any context-free grammar and is based on dynamic programming.