Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit9e22120607c68645a4e8adf596dd38f722078c52 (patch)
Author
 Syndamia <kamen@syndamia.com>
2023-11-24 09:15:12 +0200
Committer
 Syndamia <kamen@syndamia.com>
2023-11-24 09:15:12 +0200
Filesf7fbb16046266442934086ca774a7ba001a50965
uni-projects-9e22120607c68645a4e8adf596dd38f722078c52.tar
uni-projects-9e22120607c68645a4e8adf596dd38f722078c52.tar.gz
uni-projects-9e22120607c68645a4e8adf596dd38f722078c52.zip
Parentbd45aa8372205e6bb5e06d419f4e355ca7f216ce (diff)
[CI/M] Added notes from midterm
1 files changed, 187 insertions, 0 deletions
-rw-r--r--Year 3/Compilers, Introduction/Midterm.txt187
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. НЕ, -/-