Maqsad qachon ekanligini aniqlashdir yashovchan prefikslar bor pivot va kamaytirilishi kerak. A degan ma'noni anglatadi pivot topildi, a potentsial degani pivot boshlanadi va a demak, biz hali ham o'sha holatdamiz pivot.
Birinchi darajali munosabatlar hisoblash algoritmi
Belgilar uchun uchta to'plamni aniqlaymiz:
Bosh*(X) X agar X terminaldir va agar bo'lsa X terminal emas, bosh*(X) faqat Head-ga tegishli bo'lgan terminallar to'plamidir+(X). Ushbu to'plam tengdir Birinchi to'plam yoki Fi (X) tasvirlangan LL tahlilchisi.
Bosh+(X) va quyruq+(X) agar ∅ bo'lsa X terminaldir.
Hisoblash munosabatlari uchun psevdokod:
RelationTable: = ∅
Har bir ishlab chiqarish uchun
Har ikkala qo'shni belgi uchun X Y yilda a
qo'shish (RelationTable, )
qo'shish (RelationTable, )
qo'shish (RelationTable, )
qo'shish (RelationTable, ) qayerda S grammatikaning boshlang'ich bo'lmagan terminali, $ esa chegara belgisi
qo'shish (RelationTable, ) qayerda S grammatikaning boshlang'ich bo'lmagan terminali, $ esa chegara belgisi
va ular o'rniga belgilangan elementlar o'rniga to'plamlar bilan ishlatiladi, bu holda siz barchasini qo'shishingiz kerak kartezian mahsuloti to'plamlar / elementlar o'rtasida.
Misollar
Bosh+(a) = ∅
Bosh+(S) = {a, v}
Bosh+(b) = ∅
Bosh+(v) = ∅
Quyruq+(a) = ∅
Quyruq+(S) = {b, v}
Quyruq+(b) = ∅
Quyruq+(v) = ∅
Bosh*(a) = a
Bosh*(S) = {a, v}
Bosh*(b) = b
Bosh*(v) = v
a Ning yonida S
S Ning yonida S
S Ning yonida b
faqat bitta belgi bor, shuning uchun hech qanday munosabat qo'shilmaydi.
ustunlik jadvali
Qo'shimcha o'qish
Aho, Alfred V.; Ullman, Jeffri D., Tahlil, tarjima va kompilyatsiya nazariyasi