Bir LR (0) ayrıştırıcısında, her durum, bir konumla açıklamalı üretimler olan LR (0) öğelerinden oluşan bir koleksiyondan oluşur. Bir LR (1) ayrıştırıcısında, her durum, bir konum ve bir ileriye dönük karakterle açıklamalı üretimler olan LR (1) öğelerinden oluşan bir koleksiyondan oluşur.
Bir LR (1) otomatındaki bir durum verildiğinde, her bir LR (1) öğesinden ileriye doğru belirteçlerini bırakarak oluşturulan konfigürasyon setinin, LR (0) otomatındaki bir duruma karşılık gelen bir konfigürasyon seti sağladığı bilinmektedir. Bu anlamda, bir LR (1) otomatı ile bir LR (0) otomatı arasındaki temel fark, LR (1) otomatının LR (0) otomatındaki durumların daha fazla kopyasına sahip olması ve bunların her birinin ileriye dönük olarak açıklanması bilgi. Bu nedenle, belirli bir CFG için LR (1) otomatları tipik olarak o CFG için karşılık gelen LR (0) ayrıştırıcıdan daha büyüktür.
Sorum LR (1) otomatının ne kadar büyük olabileceğidir. Varsa gramer alfabesinde, ayrı terminal semboller, ilke olarak biz, en azından bir kez, bu alt-kümesi başına LR (0) otomat her durum çoğaltmak için gerekebilir 1 (bir IR giden potansiyel olarak, ayrı terminal semboller ) orijinal LR (0) otomatından kat daha büyük otomat. LR (0) otomatındaki her bir öğenin bir dizi farklı LR (0) öğesinden oluştuğu göz önüne alındığında, daha da büyük bir patlama yaşayabiliriz.n 2 n
Bununla birlikte, LR (1) otomatının karşılık gelen LR (0) otomatından önemli ölçüde daha büyük olduğu bir gramer ailesi oluşturmak için bir yol bulamıyorum. Denediğim her şey boyutta (genellikle 2-4x civarında) mütevazı bir artışa yol açtı, ancak büyük bir patlamaya yol açan bir desen bulamıyorum.
LR (1) otomataları karşılık gelen LR (0) otomatalarından üssel olarak daha büyük olan bağlamsız gramer aileleri var mı? Ya da en kötü durumda, üstel bir patlama yapamayacağınız biliniyor mu?
Teşekkürler!