Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
@jmite, thanks for clarification. As I wondered in my original question, it doesn't make sense to classify my parser this way, because it isn't a pushdown automata at all.
@Raphael, I've read the CYK algorithm page on wikipedia so have a general understanding. In contrast, the algorithm I've written is top down, and doesn't require that the grammar be in Chomsky normal form.
I've added a comment to the original question with an example. I skimmed the Computational Science article (a topic that I'm somewhat familiar with), but the only thing I could find relating to optimizations was "mathematical optimization." I guess that is loosely the same problem, but it's rather nonspecific to optimization of a sequence of operations. I suspect that the conventional methods for solving optimization problems don't really apply to optimization done by compilers. Please correct me if I'm wrong, though.
I know compilers do a lot of simple stuff, like constant folding and constant propagation. I'm talking about more complex transformations. A compiler isn't going to convert something like "return cos^2(u) - sin^2(u) + cos(2u) * v" to "temp = cos(2u); return temp * (v + 1)"