Stavo facendo ricerche sulla suite del compilatore gcc su wikipedia qui , quando è arrivato:
GCC started out using LALR parsers generated with Bison, but gradually switched to hand-written recursive-descent parsers; for C++ in 2004, and for C and Objective-C in 2006. Currently all front ends use hand-written recursive-descent parsers
Quindi con quell'ultima frase, (e per quanto mi fido di Wikipedia) posso sicuramente dirlo "C (gcc), C ++ (g ++), Objective-C, Objective-C ++, Fortran (gfortran), Java (gcj), Ada (GNAT), Go (gccgo), Pascal (gpc), ... Mercurio, Modula -2, Modula-3, PL / I, D (gdc) e VHDL (ghdl) "sono tutti front-end che non usano più un generatore di parser. Cioè, usano tutti parser scritti a mano.
La mia domanda allora è, questa pratica è onnipresente? In particolare, sto cercando risposte esatte a "l'implementazione standard / ufficiale di x ha un parser scritto a mano" per x in [Python, Swift, Ruby, Java, Scala, ML, Haskell]? (In realtà, anche qui sono benvenute le informazioni su qualsiasi altra lingua.) Sono sicuro di trovarlo da solo dopo molte ricerche. Ma sono anche sicuro che questo sia facilmente comprensibile dalla comunità. Grazie!