24. The program storage device of claim 21 , said method further comprising, before said partitioning: generating said dependency graph for said particular programming language; distinguishing groups of cyclically connected grammar rule nodes in said dependency graph from non-cyclically connected grammar rule nodes in said dependency graph; and after said distinguishing, performing said preprocessing.
24. The program storage device of claim 21 , said method further comprising, before said partitioning: generating said dependency graph for said particular programming language; distinguishing groups of cyclically connected grammar rule nodes in said dependency graph from non-cyclically connected grammar rule nodes in said dependency graph; and after said distinguishing, performing said preprocessing. 25. The program storage device of claim 24 , said partitioning being performed by said grammar rules partitioner automatically and logically based on said updated dependency graph and as specified in a set of heuristics, said set of heuristics defining at least one of: a maximum number of nodes per subset; and a depth of said updated dependency graph at which said partitioning should begin.