Eu estava pesquisando sobre o conjunto de compiladores gcc na wikipedia aqui , quando isso surgiu:
O GCC começou usando os analisadores LALR gerados com o Bison, mas passou gradualmente para os analisadores escritos à mão; para C ++ em 2004 e para C e Objective-C em 2006. Atualmente, todos os front-ends usam analisadores de descida recursiva escritos à mão
Portanto, com a última frase (e pelo que confio na wikipedia), posso dizer definitivamente que "C (gcc), C ++ (g ++), Objective-C, Objective-C ++, Fortran (gfortran), Java (gcj), Ada (GNAT), Go (gccgo), Pascal (gpc), ... Mercúrio, Modula-2, Modula-3, PL / I, D (gdc) e VHDL (ghdl) "são todos front-ends que não use mais um gerador de analisador. Ou seja, todos eles usam analisadores escritos à mão.
Minha pergunta então é: essa prática é onipresente? Especificamente, estou procurando respostas exatas para "a implementação padrão / oficial de x possui um analisador escrito à mão" para x em [Python, Swift, Ruby, Java, Scala, ML, Haskell]? (Na verdade, informações em outros idiomas também são bem-vindas aqui.) Tenho certeza de que posso encontrar isso sozinho depois de muita pesquisa. Mas também tenho certeza de que isso é facilmente respondido pela comunidade. Obrigado!