Скачать презентацию Задачи к главе II-2 1 Задача Скачать презентацию Задачи к главе II-2 1 Задача

Задачи_к_главе_II-2.PPT

  • Количество слайдов: 19

Задачи к главе II-2 1 Задачи к главе II-2 1

Задача № 11. 1. Построить 1 -предсказывающий алгоритм анализа с использованием LL(1)-таблиц по LL(1)-грамматике, Задача № 11. 1. Построить 1 -предсказывающий алгоритм анализа с использованием LL(1)-таблиц по LL(1)-грамматике, построенной в задаче № 10. 4. Чем он лучше или хуже того, который разбирался на лекциях? 2

Задача № 11. 1. Решение: начнем с построения функции A {E, E', T, T', Задача № 11. 1. Решение: начнем с построения функции A {E, E', T, T', F}, где G — LL(1)-грамматика, построенная в задаче № 10. 4. для (1) E TE' , (2) E' +TE' , (3) E' . (4) T FT' , (5) T' *FT' , (6) T' . (7) F (E), (8) F a. 1. Fi(a) = {a} для всех a VT и i 0. 2. F 0(A) = {x VT*k A x P, где x = k, либо x < k и = }. 3. Fi(A) = Fi– 1(A) {x VT*k A Y 1 Y 2…Ym P, x Fi– 1(Y 1) k Fi– 1(Y 2) k … k Fi– 1(Ym)}. 3

Задача № 11. 1. Вычисляя для A {E, E', T, T', F}, получаем: A Задача № 11. 1. Вычисляя для A {E, E', T, T', F}, получаем: A VN F 0 F 1 F 2 F 3 = FIRST 1 G E {(, a} E' {+, } T {(, a} T' {*, } F {(, a} 4

Задача № 11. 1. F 0(E) = F 0(T) = , F 0(E’) = Задача № 11. 1. F 0(E) = F 0(T) = , F 0(E’) = {+, }, F 0(T’) = {*, }, F 0(F) = {(, a}. F 1(E) = F 0(T) 1 F 0(E’) F 0(E) = 1{+, } = = F 0(E); F 1(E’) = F 0(+) 1 F 0(T) 1 F 0(E’) F 0(E’) = = {+} 1 1{+, } = {+, } = F 0(E’); F 1(T) = F 0(F) 1 F 0(T’) F 0(T) = {(, a} 1{*, } = {(, a} F 0(T); F 1(T’) = F 0(*) 1 F 0(F) 1 F 0(T’) F 0(T’) = = {*} 1{(, a} 1{*, } = {*, } = F 0(T’); F 1(F) = F 0( ( ) 1 F 0(E) 1 F 0( )) F 0(a) F 0(F)= = {(} 1 1{)} {a} {(, a} = F 0(F). F 2(E) F 2(E’) F 2(T’) F 2(F) = F 1(T) 1 F 1(E’) F 1(E) = {(, a} 1{+, } = {(, a} F 1(E); = {+, } = F 1(E’); F 3(E) = {(, a} = F 2(E); F 3(E’) = {+, } = F 2(E’); = {(, a} = F 1(T); F 3(T) = {(, a} = F 2(T); F 3(T’) = {*, } = F 2(T’); = {*, } = F 1(T’); F 3(F) = {(, a} = F 2(F). = {(, a} = F 1(F). 5

Задача № 11. 1. A VN FIRST 1 G E {(, a} E ' Задача № 11. 1. A VN FIRST 1 G E {(, a} E ' {+, } T {(, a} T ' {*, } F {(, a} Построим теперь все LL(1)-таблицы, необходимые и достаточные для сборки 1 -предсказывающего алгоритма анализа. (1) E TE ' , (2) E ' +TE' , (3) E ' , (4) T FT‘ , (5) T ' *FT ' , (6) T ' , (7) F (E) , (8) F a. TA, L(u) = (A , ), u ( ) k L; = x 0 B 1 x 1 B 2 … Bmxm, Yi = (xi. Bi+1 xi+1…Bmxm) k L; T 0 = TE, { } T 1 = TT, {+, } u Правило Лок. конт. (, a E TE' <{+, }, { }> (, a T FT' <{*, +, }, {+, }> 6

Задача № 11. 1. T 3 = TF , {*, +, } T 2 Задача № 11. 1. T 3 = TF , {*, +, } T 2 = TE' , { } u Правило + E' u <{+, }, { }> E' +TE' Лок. конт. ( F (E) a F a Правило T 4 = TT ', {+, } Правило Лок. конт. u * T' *FT ' < {*, +, }, {+, }> (, a Правило E TE' Лок. конт. < {+, )}, {)}> T 7 = TE', {)} T 6 = TT, {+ , ) } u <{)} > T 5 = TE, {)} u + , T' Лок. конт. T FT ' <{*, +, )}, {+, )}> u Правило + E' +TE' ) E' Лок. конт. <{+, )}, {)}> 7

Задача № 11. 1. T 8 = TF , {*, +, )} T 9 Задача № 11. 1. T 8 = TF , {*, +, )} T 9 = TT ' , { +, )} u Правило Лок. конт. ( F (E) <{)}> * T ' *FT ' <{*, +, )}, {+, )}> a F a T 0 = TE, { } T 5 = TE, {)} T 1 = TT, {+, } T 6 = TT, {+ , ) } T 2 = TE ' , { } T 7 = TE', {)} T 3 = TF , {*, +, } T 8 = TF , {*, +, )} T 4 = TT ', {+, } T 9 = TT ' , { +, )} + , ) T ' То, что при построении LL(1)таблиц не встретилось случаев неоднозначностей, означает, что данная грамматика действительно есть LL(1). 8

Задача № 11. 1. Return to 11 Управляющая таблица общего 1 -предсказывающего анализатора арифметических Задача № 11. 1. Return to 11 Управляющая таблица общего 1 -предсказывающего анализатора арифметических выражений. u a T 0 T 1 T 2 , 1 T 3 T 4 , 4 T 3 * ( , 3 + T 1 T 2 , 2 a , 8 (T 5 ) , 7 , 6 T 4 , 6 * T 3 T 4 , 5 T 6 T 7 , 1 T 6 T 8 T 9 , 4 T 7 (T 5), 7 T 8 a, 8 T 9 *) ) T 1 T 2 , 1 T 2 + , 3 + T 6 T 7 , 2 , 6 * T 8 T 9 Элементы pop, accept и error не показаны. , 6 9

Задача № 11. 1. (a, T 0 $, ) (a, T 1 T 2 Задача № 11. 1. (a, T 0 $, ) (a, T 1 T 2 $, 1) (a, a T 4 T 2 $, 148) pop (a, T 3 T 4 T 2 $, 14) ( , T 4 T 2 $, 148) ( , T 2 $, 1486) ( , $, 14863) — accept! (1) (4) (8) (6) (3) E TE' FT 'E' a 10

Задача № 11. 2. Построить 1 -предсказывающий алгоритм трансляции, реализующего трансляцию = {(x, y) Задача № 11. 2. Построить 1 -предсказывающий алгоритм трансляции, реализующего трансляцию = {(x, y) где x — инфиксная, а y — постфиксная форма арифметического выражения, составленного из символов a, +, *, и скобок ( и )}, используя общий алгоритм для SDTS с не сильной LL(k)-грамматики в качестве входной грамматики схемы. Пояснение. Использовать 1 -предсказывающий алгоритм анализа, построенный в задаче № 11. 1. 11

Задача № 11. 2. Управляющая таблица общего 1 -предсказывающего транслятора арифметических выражений в обратную Задача № 11. 2. Управляющая таблица общего 1 -предсказывающего транслятора арифметических выражений в обратную польскую форму. u a T 0 T 1 T 2 T 1 T 3 T 4 T 3 * ( , 3 + T 1 + ‘ T 2 a a‘ T 5 , 6 T 4 , 6 * T 3 * ‘ T 4 T 5 T 6 T 7 T 6 T 8 T 9 T 7 T 5 T 8 a a‘ T 9 *) ) T 1 T 2 + , 3 + T 6 + ‘ T 7 , 6 * T 8 * ‘ T 9 Элементы pop, pass, accept и error не показаны. , 6 12

Задача № 11. 2. (a, T 0 $, ) (a, T 1 T 2 Задача № 11. 2. (a, T 0 $, ) (a, T 1 T 2 $, ) (a, a a ‘ T 4 T 2 $, ) ( , T 2 $, a) pop (a, T 3 T 4 T 2 $, ) ( , a ‘ T 4 T 2 $, ) pass ( , T 4 T 2 $, a) ( , $, a) — accept! (1) (4) (6) (8) (3) (6) (E, E) (TE' , TE') (FT 'E' , FT 'E' ) (a. T 'E' , a. T 'E' ) (a. E' , a. E' ) (a , a). 13

Задача № 11 -3* Построить магазинный преобразователь P, реализующий трансляцию: (P) = {( x, Задача № 11 -3* Построить магазинный преобразователь P, реализующий трансляцию: (P) = {( x, y) x {a, b}+ ; y = ci, i = #a x – #b x }. 14

Задача № 11 -4* Постройте 2 -предсказывающий алгоритм анализа для LL(2)-грамматики с правилами: S Задача № 11 -4* Постройте 2 -предсказывающий алгоритм анализа для LL(2)-грамматики с правилами: S ab. A A Saa b 15

Задача № 11 -5* При помощи k-предсказывающего алгоритма трансляции реализовать трансляцию простых арифметических выражений Задача № 11 -5* При помощи k-предсказывающего алгоритма трансляции реализовать трансляцию простых арифметических выражений из прямой польской формы в обратную. 16

Задача № 11 -6* Постройте LL(3)-таблицы для грамматики с правилами: S a. Aa. B Задача № 11 -6* Постройте LL(3)-таблицы для грамматики с правилами: S a. Aa. B b. Ab. B A a ab B a. B a. 17

Задача № 11 -7* Постройте детерминированный магазинный преобразователь, реализующий левосторонний анализ для LL(2)-грамматики с Задача № 11 -7* Постройте детерминированный магазинный преобразователь, реализующий левосторонний анализ для LL(2)-грамматики с правилами: S S ab. A A Saa A b 18

Задача № 11. 8* Построить магазинный преобразователь P, реализующий трансляцию: (P) ={( x, y) Задача № 11. 8* Построить магазинный преобразователь P, реализующий трансляцию: (P) ={( x, y) x {a, b}+ ; y = ci, i = #a x – #b x }. 19