IELR (1) การแยกอัลกอริทึม
อัลกอริทึม (1) การแยก IELR ได้รับการพัฒนาในปี 2008 โดยโจเอลอีเดนนี่เป็นส่วนหนึ่งของปริญญาเอกของเขา การวิจัยภายใต้การดูแลของ Brian A. Malloy ที่ Clemson University IELR (1) ขั้นตอนวิธีการเป็นรูปแบบของสิ่งที่เรียกว่า"น้อยที่สุด" LR (1) ขั้นตอนวิธีการพัฒนาโดยเดวิดเพจเจอร์ในปี 1977ที่ตัวเองเป็นรูปแบบของการLR (k) ขั้นตอนวิธีการแยกการประดิษฐ์คิดค้นโดยโดนัลด์นูในปี 1965 IE ใน IELR (1) หมายถึงการกำจัดความไม่เพียงพอ (ดูหัวข้อสุดท้าย)
อัลกอริธึม LR (1)
ส่วนLR (1)ของ IELR (1) หมายถึงL eft ไปทางขวา, R ightmost มาด้วยโทเค็น 1 lookahead ตัวแยกวิเคราะห์ LR (1) จะเรียกว่าตัวแยกวิเคราะห์แบบบัญญัติ อัลกอริธึมการแยกวิเคราะห์ระดับนี้ใช้กลยุทธ์การแยกวิเคราะห์จากล่างขึ้นบนลดกะด้วยสแต็กและตารางการเปลี่ยนสถานะระบุการดำเนินการต่อไปที่จะทำในระหว่างการแยกวิเคราะห์
ในอดีต LR (1) อัลกอริทึมได้รับผลกระทบจากข้อกำหนดหน่วยความจำขนาดใหญ่สำหรับตารางการเปลี่ยนแปลง การปรับปรุงของเพจเจอร์คือการพัฒนาวิธีการรวมสถานะการเปลี่ยนแปลงเมื่อมีการสร้างตารางการเปลี่ยนแปลงซึ่งจะช่วยลดขนาดของตารางได้อย่างมาก ดังนั้นอัลกอริทึมของเพจเจอร์ทำให้ตัวแยกวิเคราะห์ LR (1) แข่งขันกับกลยุทธ์การแยกวิเคราะห์อื่น ๆ ที่เกี่ยวข้องกับประสิทธิภาพของพื้นที่และเวลา วลี "ตัวแยกวิเคราะห์ LR ขั้นต่ำ (1)" หมายถึงขนาดที่เล็กที่สุดของตารางการเปลี่ยนแปลงที่แนะนำโดยอัลกอริทึมของเพจเจอร์
ข้อ จำกัด ของอัลกอริทึมของเพจเจอร์
อัลกอริธึม LR น้อยที่สุด (1) สร้างตารางการเปลี่ยนแปลงขึ้นอยู่กับไวยากรณ์อินพุตเฉพาะสำหรับภาษาที่จะแยกวิเคราะห์ ไวยากรณ์ต่าง ๆ สามารถสร้างภาษาเดียวกันได้ แท้จริงแล้วมันเป็นไปได้สำหรับไวยากรณ์ที่ไม่ใช่ LR (1) ในการสร้างภาษา LR (1) ที่แยกวิเคราะห์ได้ ในทางปฏิบัติ LR (1) ตัวแยกวิเคราะห์ LR ยอมรับไวยากรณ์ที่ไม่ใช่ LR (1) พร้อมข้อกำหนดสำหรับการแก้ไขข้อขัดแย้งระหว่างการเปลี่ยนสถานะที่เป็นไปได้สองสถานะ ("การเปลี่ยนแปลงลดความขัดแย้ง") เพื่อรองรับข้อเท็จจริงนี้ Denny และ Malloy พบว่าอัลกอริทึมของเพจเจอร์ล้มเหลวในการสร้างตัวแยกวิเคราะห์ที่ทรงพลังพอที่จะแยกวิเคราะห์ LR (1) ภาษาเมื่อให้ไวยากรณ์ที่ไม่ใช่ LR (1) บางไวยากรณ์แม้ว่าไวยากรณ์ที่ไม่ใช่ LR (1) จะสร้างภาษา LR (1)
Denny และ Malloy แสดงให้เห็นว่าข้อ จำกัด นี้ไม่ได้เป็นเพียงแค่การศึกษาโดยแสดงให้เห็นว่า Gawk และ Gpic ทั้งซอฟต์แวร์ที่ใช้กันอย่างแพร่หลายและเป็นผู้ใหญ่ใช้ในการแยกวิเคราะห์ที่ไม่ถูกต้อง
การปรับปรุงของ IELR (1)
Denny และลอยศึกษาแหล่งที่มาของข้อบกพร่องของอัลกอริทึมเพจเจอร์ของโดยการเปรียบเทียบตารางการเปลี่ยนแปลงที่เกิดจากอัลกอริทึมเพจเจอร์ของตารางการเปลี่ยนแปลงของเทียบเท่า LR (1) ไวยากรณ์และการระบุแหล่งที่มาของสองสิ่งที่พวกเขาระยะบกพร่องที่ปรากฏในตารางการเปลี่ยนแปลงจากเพจเจอร์ของ อัลกอริทึม แต่ไม่อยู่ในตารางการเปลี่ยน LR (1) อัลกอริทึมIELR ของ Denny และ Malloy (1) ( Inadequacy Elimination LR (1)) เป็นอัลกอริทึมที่ออกแบบมาเพื่อกำจัดความไม่เพียงพอเหล่านี้เมื่อสร้างตารางการเปลี่ยนแปลงที่มีขนาดเท่ากันกับอัลกอริธึมของเพจเจอร์