IELR (1) Ayrıştırma Algoritması
IELR (1) ayrıştırma algoritması Joel E. Denny tarafından 2008 yılında geliştirilen onun doktora parçası olarak Clemson Üniversitesi'nden Brian A. Malloy'un gözetiminde araştırma. IELR (1) algoritması, 1977'de David Pager tarafından geliştirilen "minimal" LR (1) algoritmasının bir varyasyonu olup, kendisi 1965'te Donald Knuth tarafından icat edilen LR (k) ayrıştırma algoritmasının bir varyasyonudur . IELR (1) 'deki IE yetersizliğin giderilmesi anlamına gelir (son bölüme bakınız).
LR (1) Algoritmalar
LR (1) IELR (1) bir parçası anlamına gelir L sağa EFT, R ightmost türetme 1 ileriye dönük belirteci. LR (1) ayrıştırıcılarına kanonik ayrıştırıcılar da denir. Bu ayrıştırma algoritmaları sınıfı, ayrıştırma sırasında gerçekleştirilecek bir sonraki eylemi belirleyen bir yığın ve durum geçiş tablosu ile aşağıdan yukarıya kaydırma, kaydırma azaltma ayrıştırma stratejisi kullanır .
Tarihsel olarak, LR (1) algoritmaları, geçiş tabloları için büyük bellek gereksinimleri nedeniyle dezavantajlı hale gelmiştir. Çağrı cihazının iyileştirilmesi, geçiş tablosu oluşturulduğunda geçiş durumlarını birleştirmek ve tablonun boyutunu önemli ölçüde azaltmak için bir yöntem geliştirmekti. Böylece Pager'in algoritması, LR (1) ayrıştırıcılarını alan ve zaman verimliliği açısından diğer ayrıştırma stratejileriyle rekabetçi hale getirir. "Minimum LR (1) ayrıştırıcı" ifadesi, Pager algoritması tarafından sunulan geçiş tablosunun minimum boyutunu ifade eder.
Çağrı Cihazının Algoritmasının Sınırlamaları
Minimal LR (1) algoritmaları, ayrıştırılacak dil için belirli bir girdi dilbilgisine dayalı olarak geçiş tablosunu oluşturur. Farklı dilbilgileri aynı dili üretebilir. Gerçekten de, LR (1) olmayan bir dilbilgisinin LR (1) ayrıştırılabilir bir dili üretmesi mümkündür. Uygulamada, LR (1) ayrıştırıcı jeneratörleri, bu gerçeğe uyum sağlamak için iki olası durum geçişi arasındaki çatışmaları çözmek için bir spesifikasyona sahip LR (1) olmayan gramerleri kabul eder. Denny ve Malloy, Pager algoritmasının, LR (1) olmayan dilbilgisi bir LR (1) dili oluştursa bile, belirli LR (1) dilbilgisi sağlandığında LR (1) dillerini ayrıştıracak kadar güçlü ayrıştırıcılar üretemediğini keşfetti.
Denny ve Malloy, bu sınırlamanın sadece yaygın olarak kullanılan olgun yazılım olan Gawk ve Gpic'in yanlış ayrıştırıcı eylemleri gerçekleştirdiğini göstererek akademik olmadığını gösteriyor.
IELR (1) 'in Gelişmeleri
Denny ve Malloy, Pager algoritması tarafından üretilen geçiş tablosunu eşdeğer bir LR (1) dilbilgisinin geçiş tablosuyla karşılaştırarak Pager algoritmasının eksikliklerinin kaynağını incelediler ve Pager's'den geçiş tablosunda görünen yetersizlik olarak adlandırdıkları için iki kaynak belirlediler. algoritmasıdır, ancak LR (1) geçiş tablosunda yoktur. Denny ve Malloy'un IELR (1) ( Yetersizlik Giderme LR (1)) algoritması, Pager algoritmasının boyutuyla hemen hemen aynı olan geçiş tablosunu oluştururken bu yetersizlikleri ortadan kaldırmak için tasarlanmış bir algoritmadır.