This program takes a CFG, converts it to CNF and determines whether a given string is accepted by the grammar by using the CYK algorithm.
I wrote this code during fall 2007 for Intro to Theory of Computation and Automata. It's old, but should still work :-/
It uses XSLT to convert the grammar to CNF and a bit of Java to run the CYK algorithm.