El problema es que los comentarios recursivos lo obligan a analizar en realidad la sección de comentarios, empujándola fuera del alcance de un lexer normal y posiblemente introduciendo más problemas.
Como actualización: un compilador generalmente tiene varias etapas distintas con diferentes trabajos, y las primeras etapas son el lexer, que obtiene el programa de entrada y lo separa en una secuencia de tokens (cada una de las cuales contiene una palabra clave). identificador o un operador), y el analizador, que estructura esta secuencia de tokens en un árbol de sintaxis abstracta (AST).
Para el alcance de un lexer, recuerde que el lexing normalmente se puede hacer con expresiones regulares. Las estructuras similares a corchetes, como los comentarios recursivos, no pueden analizarse mediante expresiones regulares (ver gramáticas sin contexto), por lo que el lexer tendría que tener mucha complejidad adicional, por ejemplo. tendría que implementarse a través de un analizador de descendencia recursiva.
Además, para C y lenguajes similares (quienes usaron la sintaxis de comentario / ** / más famoso) nunca surgió la necesidad de comentar grandes trozos de código, ya que tenían el preprocesador y los fragmentos de código no utilizados. por
#if 0
....
#endif
que evitó el problema de análisis delegando el problema a un segundo compilador mucho más simple (el preprocesador).
Resumiendo: dado que los comentarios recursivos harían que la compilación sea más complicada, generalmente no está permitida, y solo los idiomas con comentarios de estilo C, pero sin un preprocesador, realmente lo necesitan. El hecho de que Java esté entre ellos es desafortunado, por supuesto.
Editar: Esto no significa que los comentarios recursivos sean imposibles o incluso muy difíciles de hacer. Podría usar un lexer de descenso recursivo o podría tener un preprocesador antes del lexer para filtrar los comentarios. Sin embargo, ambos enfoques tienen un costo considerable en comparación con el modelo estándar (use RE para generar automáticamente el lexer y un EBNF para generar automáticamente el analizador), y la ganancia es bastante pequeña.