diff options
| Commit | 9e22120607c68645a4e8adf596dd38f722078c52 (patch) | |
|---|---|---|
| Author | 2023-11-24 09:15:12 +0200 | |
| Committer | 2023-11-24 09:15:12 +0200 | |
| Files | f7fbb16046266442934086ca774a7ba001a50965 | |
| uni-projects-9e22120607c68645a4e8adf596dd38f722078c52.tar uni-projects-9e22120607c68645a4e8adf596dd38f722078c52.tar.gz uni-projects-9e22120607c68645a4e8adf596dd38f722078c52.zip | ||
| Parent | bd45aa8372205e6bb5e06d419f4e355ca7f216ce (diff) | |
[CI/M] Added notes from midterm
1 files changed, 187 insertions, 0 deletions
| -rw-r--r-- | Year 3/Compilers, Introduction/Midterm.txt | 187 |
diff --git a/Year 3/Compilers, Introduction/Midterm.txt b/Year 3/Compilers, Introduction/Midterm.txt new file mode 100644 index 0000000..19b62ad --- /dev/null +++ b/Year 3/Compilers, Introduction/Midterm.txt @@ -0,0 +1,187 @@ +# 1 въпрос + +S -> aaS | aa | a + +```nomnoml +// S' → S +// S → aBS | aa | a +// B → a +#direction: right + +[0| + S' → .S + S → .aBS + S → .aa + S → .a + B → .a +]->S[1] + +[1| + S' -> S. +] + +[0]->a[2| + S → a.BS + S → a.a + S → a. + B → a. +] + +[2]->a[5| + S → a.a +] + +[2]->B[3| + S → aB.S +] + +[3]->S[4| + S → aBS. +] +``` + +# 4 въпрос + +а. НЕ +b. НЕ +c. НЕ, един начин за генериране на вс дума +d. +f. ДА, C->cC + +# 3 въпрос + +а. НЕ, по правило 6 трябва да започва с с +b. НЕ, -/- +c. НЕ, правило 5 хваща aaa +d. ДА +e. НЕ, правило 5 разпознава bca +f. ДА +g. НЕ?, правило 2 разпознава abc + +# Въпрос 5 + +```nomnoml +// S' → S +// S → TaT +// T → 𝜖 | bbT +#direction: right + +[0| + S' → .S + S → .TaT + T → . + T → .bbT +]->T[1| + S → T.aT +] +``` + +# Въпрос 6 + +(int + int + int + int) + +Г1: +(int + int + int + int) +2 измествания +1 опростяване +(Т + int + int + int) +2 измествания +1 опростяване +(Т + int + int) +2 измествания +1 опростяване +(Т + int) +2 измествания +1 опростяване +(Т) +1 изместване +1 опростяване +S + +изместване: +2 + 2*(n-1) + 1 = 2n + 1 +опростяване: +1 + n = n+1 + +Г2: +(int + int + int + int) +8 изместване +1 опростяване +(int + int + int + Т) +1 опростяване +(int + int + Т) +1 опростяване +(int + Т) +1 опростяване +(T) +1 изместване +1 опростяване +S + +изместване: +2n + 1 +опростяване: +n+1 + +a. ДА +b. НЕ +c. NE + + +# Въпрос 7 + +a. НЕ, думата "cc" е валидна +b. ДА, само при 2 се чете b, и стигаме до него само с преход от 3 с а +c. НЕ, примка в 5 с с +d. ДА, четем d в 1 и 2, винаги отиваме в 4 и от 4 винаги в 5 +e. ДА, цикъл 1--c--> 3 --a--> 2 --b--> 1 +f. ДА, cc и da + +```nomnoml +// a b c d +// 1 E E 3 4 +// 2 E 1 E 4 +// 3 2 E 5 E +// 4 5 E E E +// 5 E E 5 E +#direction: right + +[1]c->[3] +[1]d->[4] + +[2]b->[1] +[2]d->[4] + +[3]a->[2] +[3]c->[<reference>5] + +[4]a->[5] + +[5]c->[5] +``` + +# Въпрос 8 + +a. НЕ, bababab: S->baSab->babaSab->bababab + S->baS->babaSab->bababab + +b. НЕ +c. ? +d. НЕ, само нечетна +e. ДА, -/- + +# Въпрос 9 + +# Въпрос 10 + +3 - 11 +6 - 110 +9 - 1001 +11 - 1100 +15 - 1111 +18 - 10010 + +a. НЕ, не хваща 1001 +b. ДА +c. НЕ, не хваща 11 +d. НЕ, -/- |
