Кіріспе

Жоғарыдан төменге талдайтын парсер, кірісті солдан оңға қарай талдайды. Компьютер ғылымында LL парсер (солдан оңға, ең сол жақтан туынды) – шектелген контекстсіз тіл үшін жоғарыдан төменге талдайтын парсер. Ол кірісті солдан оңға қарай талдайды, сөйлемнің ең сол жақтан туындысын жасайды. LL парсері, егер ол сөйлемді талдау кезінде k қарау белгісін қолданса, LL(k) парсері деп аталады. Грамматика LL(k) грамматикасы деп аталады, егер одан LL(k) парсерін құруға болады. Формальды тіл LL(k) грамматикасын болса, LL(k) тілі деп аталады. LL(k) тілдерінің жиынтығы, әр k ≥ 0 үшін LL(k+1) тілдерінің жиынтығына дұрыс кіреді. Осыдан туындайтын қорытынды – барлық контекстсіз тілдерді LL(k) парсері тани алмайды. LL парсері LL тұрақты тілді (LLR) деп аталады, егер ол LL тұрақты тілді талдаса. LLR грамматикаларының класы, әр k үшін барлық LL(k) грамматикаларын қамтиды. Әрбір LLR грамматикасы үшін, грамматиканы сызықтық уақытта талдайтын LLR парсері болады. Екі ерекше парсер түрі – LL(*) және LL(шекті). Егер LL(*)/LL(finite) талдау стратегиясы қолданылса, ол LL(*)/LL(finite) деп аталады. LL(*) және LL(шекті) парсерлері функционалдық жағынан PEG парсерлеріне жақын. LL(шекті) парсері, кез келген LL(k) грамматикасын қарау белгілерінің мөлшері және қарау белгілерінің салыстырулары бойынша оптималды түрде талдай алады. LL(*) стратегиясымен талдайтын грамматикалар класы, синтаксистік және семантикалық предикаттарды қолдану арқасында кейбір контекстке сезімтал тілдерді қамтиды және анықталмаған. LL(*) парсерлерін TDPL парсерлері деп қарастыру дұрыс деп ұсынылған. Көптеген қате түсініктерге қарамастан, LL(*) парсерлері жалпы алғанда LLR емес, және құрылымы бойынша орташа есеппен нашар жұмыс істейді (сызықтық уақытқа қарағанда суперсызықтық) және ең нашар жағдайда (сызықтық уақытқа қарағанда экспоненциалды). LL грамматикалары, әсіресе LL(1) грамматикалары, өте маңызды, өйткені осы грамматикалар үшін парсерлерді құру оңай, және көптеген компьютерлік тілдер осы себептен LL(1) болып құрылады. LL парсерлері кестелік болуы мүмкін, яғни LR парсерлеріне ұқсас, бірақ LL грамматикаларын рекурсивті түсу парсерлерімен де талдауға болады. Уэйт пен Гус (1984) пікірінше, LL(k) грамматикасын Стернс пен Льюис (1969) енгізген.

Орналастыру

Бір ережені екінші ережеге қойып, тура емес немесе FIRST/FOLLOW қақтығыстарын жою. Бұл FIRST/FIRST қақтығысын тудыруы мүмкін.