Je faisais des recherches sur la suite du compilateur gcc sur wikipedia ici , quand cela a été annoncé:
GCC a commencé par utiliser des analyseurs LALR générés avec Bison, mais a progressivement adopté des analyseurs manuscrits à descente récursive; pour C ++ en 2004 et pour C et Objective-C en 2006. Actuellement, tous les frontaux utilisent des analyseurs syntaxiques à descente récursive écrits à la main.
Donc, par cette dernière phrase (et pour autant que je me fie à wikipedia), je peux définitivement dire que "C (gcc), C ++ (g ++), Objective-C, Objective-C ++, Fortran (gfortran), Java (gcj), Ada (GNAT), Go (gccgo), Pascal (gpc), ... Mercury, Modula-2, Modula-3, PL / I, D (gdc) et VHDL (ghdl) "sont tous des interfaces qui ne plus utiliser un générateur d'analyseur. C'est-à-dire qu'ils utilisent tous des analyseurs syntaxiques écrits à la main.
Ma question est alors, est-ce que cette pratique est omniprésente? Plus précisément, je cherche des réponses exactes à "l'implémentation standard / officielle de x a-t-elle un analyseur manuscrit" pour x dans [Python, Swift, Ruby, Java, Scala, ML, Haskell]? (En fait, les informations sur les autres langues sont également les bienvenues ici.) Je suis sûr de pouvoir le trouver moi-même après de nombreuses recherches. Mais je suis également sûr que la communauté peut facilement répondre à cette question. Merci!