ฉันกำลังค้นคว้าเกี่ยวกับชุดคอมไพเลอร์ gcc ในวิกิพีเดียที่นี่เมื่อสิ่งนี้เกิดขึ้น:
GCC เริ่มต้นใช้ตัวแยกวิเคราะห์ LALR ที่สร้างด้วย Bison แต่ค่อย ๆ เปลี่ยนเป็นตัวแยกวิเคราะห์แบบสืบเชื้อสายแบบเขียนด้วยมือซ้ำ; สำหรับ C ++ ในปี 2004 และสำหรับ C และ Objective-C ในปี 2549 ปัจจุบันส่วนหน้าทั้งหมดใช้ตัวแยกวิเคราะห์ที่เขียนด้วยมือแบบเรียกซ้ำ
ดังนั้นด้วยประโยคสุดท้ายนั้น (และสำหรับที่ฉันไว้ใจ wikipedia) ฉันสามารถพูดได้อย่างแน่นอนว่า "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) และ VHDL (ghdl) "เป็นส่วนหน้าทั้งหมดที่ไม่มี ใช้ตัวแยกวิเคราะห์อีกต่อไป นั่นคือพวกเขาทั้งหมดใช้ตัวแยกวิเคราะห์ที่เขียนด้วยมือ
คำถามของฉันคือการปฏิบัตินี้แพร่หลายหรือไม่? โดยเฉพาะฉันกำลังมองหาคำตอบที่แน่นอนในการ "การดำเนินการตามมาตรฐาน / อย่างเป็นทางการของ x มีตัวแยกวิเคราะห์ที่เขียนด้วยมือ" สำหรับ x ใน [Python, Swift, Ruby, Java, Scala, ML, Haskell] หรือไม่ (ที่จริงแล้วข้อมูลเกี่ยวกับภาษาอื่น ๆ ก็ยินดีต้อนรับที่นี่ด้วย) ฉันแน่ใจว่าฉันสามารถหาได้ด้วยตัวเองหลังจากขุดมามาก แต่ฉันก็มั่นใจว่าชุมชนจะตอบคำถามนี้ได้ง่าย ขอบคุณ!