No la hay. De hecho, ni siquiera hay una forma ineficiente!
Es decir, el problema de determinar si dos CFGs representan el mismo lenguaje es indecidible. De hecho, aún más la afirmación es verdadera: el problema de determinar si un determinado CFG acepta todas las cadenas sobre el alfabeto es indecidible.
La prueba de esto puede encontrarse en el capítulo 5 de Sipser la Introducción a la Teoría de la Computación. La idea básica es que, para cualquier máquina de Turing $M$, se puede obtener una gramática independiente del contexto que acepta todas las cadenas que no codifican para una prueba de que $M$ se detiene (en algunas codificación específica que es más complicado de lo que yo realmente quiero entrar en aquí). Para determinar si esta gramática acepta todas las cadenas es equivalente a resolver la suspensión problema para $M$.