From 0fb5794fb6608aff4d99c9d90113c77e920fb5ab Mon Sep 17 00:00:00 2001 From: Arity-T Date: Wed, 21 May 2025 21:10:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D1=82=D1=87=D1=91=D1=82=20=D0=BF=D0=BE?= =?UTF-8?q?=205=20=D0=B1=D0=B5=D0=B7=20=D0=B7=D0=B0=D0=BA=D0=BB=D1=8E?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab5/.gitignore | 8 + lab5/img/homsky.png | Bin 0 -> 139732 bytes lab5/img/result1.png | Bin 0 -> 71461 bytes lab5/img/wrong.png | Bin 0 -> 9216 bytes lab5/report.tex | 1110 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 1118 insertions(+) create mode 100644 lab5/.gitignore create mode 100644 lab5/img/homsky.png create mode 100644 lab5/img/result1.png create mode 100644 lab5/img/wrong.png create mode 100644 lab5/report.tex diff --git a/lab5/.gitignore b/lab5/.gitignore new file mode 100644 index 0000000..96dc833 --- /dev/null +++ b/lab5/.gitignore @@ -0,0 +1,8 @@ +**/* +!.gitignore +!report.tex +!img +!img/** +!programm +!programm/*.py +!programm/*.txt \ No newline at end of file diff --git a/lab5/img/homsky.png b/lab5/img/homsky.png new file mode 100644 index 0000000000000000000000000000000000000000..664628fe46d8e84b061ef15b1dd624eccfe0b256 GIT binary patch literal 139732 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

5aB(m3DkZkU~l|o-(uUi#C^`}&u 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ⅇmP`

Hk7D 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%0Ao4)@eA4#_9pHvL+ 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 DKvKjU literal 0 HcmV?d00001 diff --git a/lab5/img/result1.png b/lab5/img/result1.png new file mode 100644 index 0000000000000000000000000000000000000000..df5fe57a165aaa2cdf124fbc83796cba90413a00 GIT binary patch literal 71461 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�>Kw*#>v8mNA1(3VRcg=fA?=O zaRlJt3I`|e370~X{F2iWitKRHJ>d@sO+)A%!mNetRfhswGwT=oW)Hv#swph~WZg-Fm#UmwbIrs*?f*Wt>dVDCk3x~cv&zHmt>84) z-a@{x*B0?K-q1@b3TA5DW+%K$)tPtaMR=tnBB(%SK+WzElX7?EjhKCl7i9JikXJqT zw9pZ3#FB2lc`>9yJomK5N{@9Q((=>uHr?HI4{xpDqRX)uApYMWzz(`$FFv6q;Be~x zEJWCDJpFZ>;6s8JW%`n3FU?-1io$V5AVhBZxKhq_r0}3wjV&=s@1dC)kHZQr2S7fu zDbvSU=OQ%CIqUYZD^BUJiDk`Vf4>Bsm=%_(d{{Cfzd+R4U(sYI%8=(_jVC*Qm|%%% zGll^dH+ts(o$@{u8^GH!CHRQ#)o~sbLn6l4Fbp(~_)UhCg*LLfad@Q^5Ge*Y7o!2d z_MHv^Z1-`x3dYm!wj^651&dnjSH8Q4@yl#E^Ix3bz5f%Q_}?@Rq2(imjq5)cUtjlV zk%5ssQep=ivpg-wwTiSi&T(0z>GIDQ+}UoiA|h7KVncNj*W z%d$HIiIyUM6~F8)yOS%T=VHfJe-P3v z76Wr7S30qL_SEbWBz(14&z_pwcBTJN^|2<*55 zt7XvDox5!YJ~Q)8Ghjn`5vm>$RHa?r7=Me_gW%YysUFBz>@xLKY%N*#%ALLiE9t}w z9MSpc(NMKDD2B}@C_&&Ny`N#TQj8uhC8`JaW^FZRRvQy5;(NMd8hu(@BU(6yAh8iD zi(D)=LEANtxM)E8KOd6eSB!C8i+i8-;HmJO-Cu6EXGog&>qo^bg_f(&K`HM~3U@Muof;K;l(~YB?ZwI9 zh|+VEc!IFictf8VlUZm5@WiAFIgW!zt|h^ zr1z=^Qgi~E9!4&CE*gdI%tM~v$f+!IvsVXl7$8I_TMp=40Ss@Ul8RkiH318CZRPz& z9)SPH~@lHoCPZS|2@M469Hz(vv72#Am9-3HF&y`dk;AYnLcSz-n9{MGl z`e@te`!9zHO%d2rC#CobHwKCv@xD_OJ=LK}x3zWEk-qqq<`t@^vwUy3y91 zbw#%)*|I+MzZtIG=tPp0;kK#=bv7fvZ`Te#;CvJgZXoE8Xc0;oz2Ctji|zg*`rG5< zH`iavR5&=NtO4myG!C>pYt-;FtLBH@DlZBbpkeE3+PR$<>jL7;xV(JQoJX{=DTMdt zwt4hsjG20Ku@o+~9GJq%z88Iwt{}E<4^|)c^fI;E@vLCIoL?LLEYGk*^ypO7&J{nw zh?F@ArbJItape)JTnLp}b$79_!!VDS|jgkaT zp*HZc7&@_k6Yy|4;zjEfV`0B8uNcYIv9I~eJZ>av;ify^gGem(&U25cKO zvv^f&FwI4E=~27BS*K0=bOEmudODZBi`UQU9AwTT3SuOzdZ!wmsd_P=iN#09VR4;N zyVxGtv|KT&J+j^%)*(vGL<2Gg4O9H|Hj_8|(;eGb4SkU{@m0$}QJ0H<4p%ZDGzc@m z&5$t~VcadYCQU0255iI*TAF`iCUD5E1vqVDZI43yl=mfU-zp%E*w1;4{G(sVBE01i zqF_5W+s&trQZes|q7Qxw%W-N-ODm^sXR{*BmfkMbtn1v?j?ko(HLB(8Yft*Ui!6)= z$?jCuMsQ|({BbZnLx~nRa#mwav?Q5Lr8CV11aK|(pS3W@D-jXYH1HnU1u+?o8gngX zL#-S9NZ^eZlxKNZLUhlw@0#e3ZsI5xzTQR`dv4yFAg-yPP$@^|Vc8L@GWat))SsFD zS>6sX-0s9_mrO5SCyyOkUpDdjWAXCTM=vm45d);qz4P&eMck6rA}?BEXY(CvrQ-p8iKy~4->?W^^>}Ri2zlo$@_T?I;<{b8N$CQJ6>z%=*#F*UXW0 z4q&2!(Ob5ivY=8>(r}q?U>hYL)2UkOZ5!y-yc%P%>J>`TuxV&^{^6haL}eat(kgu{ zMR#T=tondZsXsGChl%XlBlu8_uGa??x6zc1A<9Us?OVgjJhbhaD1cZsC3ZHzE=Ofy83|LGz3hl1lmr$VLRoXC{v<1 zP(JB~yYyzDd8Y{*%4Uy0fo54a8rA#g*Ip;Uy6_xQ(KaM2by+T{urnS+cg_5;1gCE{ zz2dOD>`LEAD$Oh5(CnLUOHaXhVsi5Dc`h_Rg!+Of^x?s?;)lqQXD)Ia2b5IzJMl~J zpB_vBg7@5qxN8Jd&sBp#^b%m^*TS25-L~3Dfkp#|>;(^R+UvthD&!G2-l;pMzyC=! z4ee1>#!!&j`vZu_TBw3EwzT*+pa zNu($9U?n#rfC9hZJWRc5Xc>JgViJMe&jE#UqVa<>Y#Y4_C6LHjQuE)`zd*@At^(dN z^v%J1ZXYr7)ai+x8GXMBggvWx&@A=U*PCbW`ScqlV;-~n=u3~rE54!FxQF2?HCgFw zmFm&&8vkAtGgT+Z>qoI^w-ejExEQa6bCm)FMTDf{GX9+{sXrj{&oh)? zt!Pr$5Kg2DhB4c6vGj~PH-tp6u-^>Q@DOnigU5pIUu4YhRZjeW;h!?#|K{2V%eO}O z2g0{bPwd9;FboE|#=2p2EfEZ!xHNwgo(!5YC0$Y!1FMPej(>OFqxv^d!<~(GrTq2* z)7gg+8J!S4baHE$O6WN4;ZqC3WS>w-+GHgn=sH0HFT6qQfnn3KHOH}u@o4Gscunn; z)9*?VydWn^>NXH?;-u;_{)QV*AkRg>S;#`*S|IiNbrZV>*ShgK!$JDlC$>czSenL$ z1wsZo#;>l(OuJF!35!cV0v>9Bl3Qa#(l`aNRIwan*(LHdB8~{_DWnLh6-uZN9-}J9+;c1OWq>d@A zukDE$F}3Q*DpMLFMr6AaH5_R->?H$?1n3W9ocT76{(QL2*7nF+t7#jt)(Gd@VF3KV zVa!VUeTQ@!*#j8k<6PCxm=Gi#4if<%P>gb6Kw$zEFE|H@^0khGq4GlUX^NnTJZ$)Y z5?%RaQ}hfO!}{J#lYnwzR4Z1Mzk*&_liH@@)f&pSf-d_Pz|umRStYCkCc)J3y!!yK zgG~wS+2|Bye4X`r=IPI9?rZy{iW{Gs*FR+Z>W->!$T2j!;rd$(aZg>r8Cq|Snk`v3 zj?!(-77<5T46K&j9+9`OI9(QUMH{~(csBo?A*5E(sE{mJOF#EPJ)J0W;m&8H|C&49 zTG1$VxF4wJ8>*w5;VY^eL#r@ppHJ@OL*Hz%L(KSSJhJL=Uf;yGD_7& z+PTESIub2Dt7B1}9Vlw0NzR; zQ3i+T3rkxx)zCwsCG_x3*E_23(>)$dp31A;0(&Iafz3B7xfC)yy>)$HgN8#09qTV5 zvET}3x?Z5PjJ$UHlYHT%1K%ITrfe1n9m7FaybA({8Aw_=*JswK>G<-&PVk` z=1#;JDk&&k!_|Dx1zI%!1SLYg?y8+4@~3398Z=2O!BY7mIoqOKW@-#(UtyP#^?-=$ z8HtvgBGLAcH=a`yK{@}K7GtUCXxksW0jGOD^-2yWc? zuP7ovEIH2JcWlZTmFWqWqHvxefj2*QJ=i*6)OwQUrAly-ap&AfM+4@VVwS6fc(Lzk zIVmR|FXJM+WSCfCRGdCEILwd!xR18PfVHk?szC@Rc>dWbe{tBH;%5*KWB3gCw+mS? zXm`>*koY<-s$FD-o=Q^`$teVFfgnQE>Bl_gQo$NFAyw;bHWlozZ%YcoA7dhK;u424 z$8Yk#2(#eW?!LV6nl%Dyrbq%O|;jJALKNblbsHZpw| z?W33>u7UEaPpveX{;P=AFiD4w6kf?%!sro>W(B z`o0B9dBESM(S_D7?ID^*j=ydHiVqmE%Jw7V!tu-;Lj9xvO6q5efDR7bma`ToZ>%b` z-B035Z@6LPtLY45zZ4Shin%a+Bt+?^gm7Oy328hy%D*Y~gds7F&7848!J1^de| z$AZS4D*JBs2Ivu)Ln6@`RjNyMVx4OmLK_L zGP$_c2DV^xGTED)zBAVsZYnz81H46IK?UPpHr|AtYBWkngZf5~ysF*CyeOsyyt-?{ zjc(Z7*3j9xqK;hms~h`mSV*LMFKC}Lc0Au5(svk~D~mcx&x;_51%)2;wmS;_LoXu!$4X#@sL1EOeODzJ-8iZjK`N0Yw6JsK zuAh=B2GYRaf4s~=xU0QliuX_E{C;u=MNFN>W>K$q9H;VE&Q6U;N8va;YO7>pfUKyp z7!gK}JrlA6*yt8w?}fZuSx;Q0P}BJ+g<4(I@aCMpQ2U|f?IwH5$^D4g9_>!k zc6) zLp}kax#VfQUFYHWYlvnb;AE)p4i_vT=Bs_WxNdA2T*sSQ$h})`w`u*Fw){5nf=S}_|CmD=(Jvq82kDWF#?~d zm3XknPZ@5cvVwUx&w4DFJucvdLG*|oqfIEE<&5OjNR=qj`Yu}`tJQb&)C=;jM5qGt zv)8Z(B}HT2q`M+J;$SeHs~ja0Wc~MG)q+oSOl8JEJp=endl;oATh}>wRN5hreXSZy zCCR)NDFME$=lDEx+||!ADB~fN<1*vs?36s$Nt0g0t@^VJw$xB53tPgx?v)y(Uj=R* zsQdn7S80yfyv^{E9|7%Du?#h%JLgF$Zw~6%_-%8LGyFxsQ}5?rsqZr+U5}eLSADnz z(L7?nv;Ez7Ii#Pbf|tAXj5dAn?4Q+o?Ze;nfNCt7v_%KqcLl9R&!n3~%B$T(bbS6L z7qI2{$Xdn-zKh9b-dI+q#LHJGS-8+O3YJk2rgh`=mc-vdyCMl<9LXr4R1(Q<2exa{ePwCM+sK2?J zMj2hUt6U(iPY9J>7&^$u$Djh#Z)Up+@$M_jKM%7c5iXx;CLdt?BAYX)oL??+a#LAgrO-gIdvp1^cD|~_8u7JkaPkEyhQlrH#3zTm7kW#s&*y*Y0}{4M zt89%3Ge;KsLl9TtT0T=Qm@>ClpZ$$|)IHX-I2N-Jb9x3{)G8o6CxJ)oUNQz{8s?un zZq$SsUg3PtJ|Z|Ch=`ig-ukl1o@O_4YvJbX59Ws=1Z{eiO~_b2pk#Kd41oqTC^o8a z;`2*WA<<*Q7jl5i{?=gtM7V^d@>~2FBleHD;=Nm|9((sk zZX@P>)lFw(Vg~9_Z;q`vmLGt^TRd8_CF#!R-!<2%s+ z3cb)RuHxAg(R_Q8;)$+2T#*TwWdVsdC;joU(rl%R-uMj&WvnB-?1Ha9qMkcy8WyrE zJZU2~cHu4fMu~XKfq#y4ZFwbgoCfeFkBQ16J>n;`juonHgOUz3gT3A6cg$lfX(?hi zd>l!S?~2h;ouumZq!zQ)SJSv7u1jPyTvG2g`w=BG>SGYwt1NzAIl-jr zSzS7P^oft8RHEmoJIB$RP~4;USgTm>EFm#6Rte*g;MH`rQoIc^N>^WH4tx_%cw}ov zP*b?c*s@vGkWfFk&VH4}(%oWyp8wRljDzyi7S=Coy6b>Ts&i`%av_=SNfz&+OU&}? zeUC0)wCsalT9rC+y8L?XUNSu~m6gTqRRDD?i0jvc{Z{(pe`x_56OxqM&Lk|6Sua)J zL0Gi?R3rIEEY>~&g&HUPAM5#yhwfR`h&Fz7+jf3AR)B320+fQee^=6UQMGQl?zyrS z%n#!tsaSnYznwMOXQ2^B*l=CNKt*aN|8Z@|_AQ>wBNkuX8UFaqsn$h<~lzF?t^S{}C?4b3^G`QUIb88;u!v zxJ>)Qi5-`az{p_fZ~fm$jV1%e+oru}HaJe>*2j@p+*=`M;0E8(*}{R~a>QMH2iv{N z(`e!IBUBsv+bik(Nh3LrdoIs3N)*>!#mt$LbUFL+CN$+D`RGlHM})lp#)$lG{8?;W zB3#81c~t?b=LI?%6dFg+WV`J)CQzY&5d(uobf9L?Ani%_tcNH6iwt*z6rpnw(Fs0n z^QPj~glMqucQcuZI4%6Ct)UaLDSC)#lQ>JUuOYXx&YXjj}q06ja@U;@d9y#?+rK4xt9={+22Y>LIXTyK8sxA2Gy{jvE#6xb_L0(B zLqvMU1RyrlO8(l1N1RUP{`!Zdkgvw3E`O|g$?N-Yu?)FB2X)1fuHi9r@3iADoUb`A zVn_O@bll-A5CUix2_WB1RV=OF^nQuLMVML7VtV&!@ZPBZ91=zg@AJ-!K@Anz554%S zALr-4rX3@-*Q8W^`_i;AO8->A!#W?tsdSp-?!pk_j2}Ah00MB&^3swS3axB-Rr^cv&i02k zL1>AJ^|X|^X^yM-Jni&RM&S)ygQ!v23~mZCQusJ7ddam|g;Jtsm6hspC02U=1_qz_ zBZ4*IqqV zvG1$IKYAN%cTQoej;}(EH+tv^`Y{EVE}bg>80X{s^9NDjjhFqulM)`HU29fU2-v#; z6|N9vxb7W|vcY^=BH!XD$+L5VyO zx#D`K1!=sOTHyL$z0z#k1qBMtN#s# zQ9#zQSsh5=vg^g}2Dd*uHXsB7Ttz7x1s7Et1#6L%c*zWj)t8bCTszeC0K%?CO_cE~ z!?ht(^c`QHxR;FBTQ9bi1OeI-WOW=uj zu4x&;9om^8@2}+?t@O6gB6>F6JR54N!ph(f3UE^BE!MYkhRX$CB5aOB-=FRW#=KJa z&M4=C1-s;tv9FQa(L4BJ(Wg-B0v@x_6=fl+vXU4PaZZlxZofiVh1I*giO?iGJn&z6 z!gy4^sSrb3%E7{27=FI(B3lL&hp!E{Z5_Knf*RK?Vlz)ncyXcO$UP8D}wk! z;>a%>fxf~wryBFTpf$8yqUw``DLz@K!oim1YZ1-DEOZm;<;|J5rAJiI44Q4EmTyA+ zRFwPFQcO)>7bQb!NgOJYD-RD~)#5}W%#^=Y6JDptpo#15h8!6Kb?zVPTmCE7f;as_ z==Rur+utKB0UgufOo39Z1{E_jZR|3eW<&jyAl|hV{S<&b-`E@vhiXOD+~6-irc?%dWNf7E%ZBcEZm1#c?2$ zmQ9mZ9yX*S7ICG#Teh_Pd1~iZAG0oD@lhPjivs<0=!Q6)K2k_OpOCyH7KQC^$8Y061kRG#q8FVh0Ykp9 z_bPS7OGmjZ5RaUn8H~*Kq-o3CU{gNLGYgX8024r5K+RIta!nOhU9^&NrIpL&`V4lG zF}Dy0m{vppdP_bc2uIsb2mzX~BE@l&y7ez)ZuLb{lONP!k<^9y2;*e9k`KncGc~2D(br%T0R5xWU1kas}{^de-WL(APH$7wR&CSY$ImtdWwHa zBeQmhxzBxuVTbs>oW3g1q0Nw6S6a~#M|D)D5A`*s+$WSIVOAp=&7C#WyO|)=EQIQ1 zsnnZS@-^7J*j(%OK3Qa*-S+KY_pW&Y#Q9c?qIY>#8vCbyK!2K*@|b=#J`1ZjMV zq9BjuH+Fq6x|Juq_fb!xn7E0+F_>)nIK$W@q8+NG}2Nk>vlm1~^F31gl2)&*RLd|J z8K1&@A_k_5@#WyG(Fb>>nIijzjIL2ezBk#ohSnE#I#;{pg3O#4zgOF0Vv>r;*izUy zg`0nP*`&!EZk}`(_FBb#tHZdyACPhM7x~2}uy2zT>-cz$N>O2a%CF-IrE^+pPePkd z{OSrI?!bObL3`Jjuw`|Fya)1~j0c-U#)6|fZQ_H1KH zw8$K$|K<6s|B7MzkB#O3ix$%uF74)aIw)Hzpbcpr@&$0AiThV~IP@!f(FcT`1ClV} zz-MY@b7;1Th%cbNWZ%tjekgSPvgCQ@QW5Gbka#<=9VW5kDOem*`iVUYdd~J{l32UWR@qsJB$stg3S3wnKf;ksgaHC&Jr2_K)9w@CI;8 zp3CTK<&BnPJ7RuU_a`n9Y2#@qTl7}G&VdGm7Ws4kZgMCo#CPV`K>CyeemdEHS{ipg zunCKcZ>%rtu_Ft=WMkDr)fchbN}$O->XL#}jcgI3>h@7!mHe)xe!vx*!J=^ETmhP0 zllTw27PijPvNn`cl5zoLIjrkeR?S`Xc;=T(B$W33DYAU7!ho$|5IMktj_WH%UF|IL zQ8qlY?>|*W-os#_y9;J^;3U4ycuY+CI!Ml!=-hLvGwC9h^s~#)2RrVo{S_G$cal|M z$l2o9Qm1i!vHcVBX@ut|xq4WY6uvRbE=&I+AjhZo@RoU6%v!+(e z`Z7DqbNn$3Q=Mv06OY3%Y5f54o#5p>2)aL z$(T$t9LmAObVsazS7DM-CIDZO9TfVxN-2gn@Caz*zf}OC%%BAY=UIpX4|$176+sfh z$afg9r96ktjyMEN!YZupF#+ZV@&avm@k8u2w!2x#;r4WW1C9vO(MA%YM+S?P@fh>( z7Mu)}ZYyKF>+1us&WmPMQk&6(KH%8gMaW&Byh1)dg-<+VPYQ?Xes>AmqTg<-BGS{b z%Az&_x42uqEC0$Ee;mU9M{-94Jb84IL`cQ#vi%?GEHFwqV)Qdl#**{3UT7>uDSIF? zz1j8SZQWY2-sE83FechvMyoe+b>&A#0T1eUPy?)%la(kc14=yjvl9Dwg3M?Kn=`}@ z{MZG(O17j+R9bz+2r;c9!Zjb$I$1!wmW<2q__r&XTizH8IOy`d|4tN4HP3$RYh%%E z5ezt15!It?Wyfw~qw?xSpKKw$yrwvCG%rn2Alq$aj+b~wv?^TNBgZ9sO(EB!CPLnJ zJYGqt@e^papq=VKVd*cK#ya=PMO>%q={!5v|DeIP;4Jw6|@C+y3bBEvF+x zX82c4tLFESrISZ=P=+k%Pwm!`CE|IpcXW&2;^TskN>W}2UioU+pR6u5#ZN`J5MUbW zkgc0<3B3WY#>zR}oAWQ+OE&+e_r>VtTp!nX;zKjJFjczhIsXR@%sr@S+4MdVPx0g8 zFpEfNYmu<(oJ&RcI~M71BX7bQtF$k93s)tgJ5uhd59H_9mni$1}q1;sKaJ!Gas`tT0&zI^nK82LPH(H#5Fk+Bk^bd|2= zt3e>5DZRA8ruSD(Y;&E8iBM7O=emb@m$Q+f^!#U2E`%R$D{A_he$I-s%nweyQXF)x z(x3?bjQ0apxc_j$+~7tMfBUcT})>%K&nq+!m@}V*rHWeyqkj zoBB(6acmqW^c9vrw`;^z3MeSmg!WXk6kMpsnbc@dg|`$HmuYBlC9s;qpAzTS1h7 zztPJ}9ie4KIl3yOP6e$hOlXOT(2=ub^TF%nLD=ny%yW1QAyFj-3*ob!lR}byE1Nk* zhoCOafo>AbCneZ}$Hqd3VhyI#ruu#r>Z)dT9b0zdPot4a4*-d32Z76=Up23Dp z)p?kHWA7||Hn0JlP*i%;EfPw9=8CIn1lb!7%A3C|7f0?hS`eW7K1*K5@5}0na<;y~ zSs2?GqIExa)M_f)iniv-HW47i+<@jXP*V0WiH*V5Le3-l7+-#NK8URMF#BDjI{*2f zB3mu@66Ap2wD6r%AN)V;y>(EPZ~N{I21p1hB`TrPEz+@2Lb_qmAPrIi(y%~Mx9nFgr<^4tT^^I*i*0Jp`L-#ms!Xuh5&epSs zwXQe?nJ(K8-E9jG#y)`cDjWcER;spGG(WPAJ8fM)(Tr$E8}nFF1GKydHPjpr#4^VT zyi8rd(eoM-l+o3^l=_y5TwBohMvG54+_10(#1FHrI4JNEkr8fqaUKwWZ)t30aHv%8%XcD}Lm3Us>71g_>c0X`JeLT z%N&OCITmnLDvR$zQxvtB+O732<8pv36xh}FnWNwoDo78Ib%G6oP4;RZhj=R9zJ0&D zBd0akt!2wV)*V6d_}DkW^m)_ik<+WMyC!%q1RjK)AKQeF5fkD|bmaWplkAFqR=>K~ zz$>YFk6X70YX)Jl%(gjP<4X~Hh1~&lNcr|w56|5ZM1e2%0@}Ms6`R&wKARUa5PHNl z3&UW%k}R@+DKOHA3J8}e+)xuv#5V(>BsP9=w=o*YlOcn}{i+QeuM$~a2e7y&5*oT0JVFcD|kEt*rd+=J8xiT3UVvrb;^I7l?bwPrk+CQC3rL)#P?*jQhe((*G>%3Jk%J|$a8 znPrW@wjXDv=wHco@aou&*y-2I^9gf}RGjB7PyE)+I(MnV49ZrHKMZ}Qla^+FV)&>@ zQuU$|p9o109Cf~fIfOjZvBb_FAEYzs?nDVkWO)(3^%(~$n*ESrhF4!kDVa-fhx+dz zB%3L_ltWH3(an%S(5JIt3Z~z|r(()30{!3Rj6rG*t2f37Aabd8C&e9$VBAX$=2L2eukAX*OC-)zMl!GSkkZQq5YSMCa+;-o=Zl_zL&}N?1RG7AN{T7* z&VATZ%eRlOWcA(~SiJoZ{N>gbIoB>4IRU=i2#jq$HaachrYtB__mZFU-n@KH7o&ks z@;wjQB&B4#jU62~g?@yGec!IM!InD44VHDoVF!2PwWJ0q{>dGiSKY+SHzE(9$FX|Q zRpM*d%NjUMiDaB{AvOds`Tp{lF3fD+qavmxg%(}M)UC0{P=Ad2X&n!)n%{vD7esjE zg#ep`{#2DbS38UQ&Y9G+vNF@h-`aRbU^$$cZH`(t zNkULAVjKreOJs`TJL2=}pEJP%q_}w=uUtff0^Vux)Ue_&Rqf;x=6D4dKHJ^j&L(=9 za5JxaF#}@6H&^OE*)bF=3*)4Z$2Lz%X(24D=I&bjhHGr2ZrZ4AWJ!OBvmNi@QT5@ZF=Bk3yj9uh%OpFS;ol8Z?N zVP(2Yd5X5c;$glHmE*YItSo!24wk%eNl!{Tlrr|^w#F@9aS>!CkI@)-wq_D_W&wI0 z{=yKrh;wDM=&EfD{k4NM@n)xmdp)%Z>iu3wcs4uU1-vd_rSzt4ew|#nkD42vue>Hx z+RBp0D?-#E1#c`)8<%aUKhHIH~v`ctIx8Ro(0@T$$G4zZ-L-b+ISt^eo$0x9xo~GNk$wL0_0>-fTmJC!AtYx_4$ZPf3Uw z=m4@g{p08I^7ErL;p|0HRNj(2n@UGC)P~u?;`GfAYST1OnrY3?NaAS%kcM?KFe>am>Z?gO6LZvckvBYoS1%j4CPhU=L&o3VmD ze!dH%SY9!IX;gFV-?|U=f4Qvw54z7+^RpfOw|Z-U;FSIvCHD|Nf!GfN+_O!2Dci0s zT+^qJY?Uv3*hKhf=^(!#8YiX0)G1Lfpi9X{`~B2hYws3CP>UaAmlp7+J%SStwA-V) zgT4Ffan}GT%Os7=?ed$?IFP7%{lqHea0cuwy{X+SsV=0fMWm-2ggJ4#Fh5Jo3SHm3 zcRaJoX^RwHxDbULHHa(4fH(QM^PP_%MOKX_VyrJ(qftT7{GC;dY%I1rKUW9$Kj zS3;}2pSB(a2Sc5VAA8E34Qa3|n)AB6tgNk!iaQKKJdb%c^1P7IM_h-hj|?+x2 zQIGw;DdS`*Eos>?Zyn1$8(wa!0AKmm{Zbr!88nJ<7T#kHF+G_uTncvdznipFV1NP_ClM zyFC8dxLAHLouF`W;KYY}#En5-9w1$z9ri9$Gu305;CgDEo3`Xb5SC47;zG|sanOMY z`_Q~Yq<)vYWestSOE|LeRK*JZi$2Q`l9Dmcc~6xjbVeV~x^=%Km|eZ$mzuxa{8ij~ zo*mAtlGkQTQ9kS87Kf~M0py{ue{p%q9=3kY%Rbr*IP@6m9CpFq_+;`bpSwW&j`Glz_HbHwyH{zTyzc2&^fI=R z#C_}p2VZSV>QP(9dy#4LDdU~#tQj2ew#J;%m!vyY0^5!6^Ffc&q!o;FB!?I<@n;3F zrf$34)7@rFn7Z9667g>j7BL#`o!iC9fo`1^kHbl0o#g1KLN zR)>$dB$-RIy^Y3OKB%FZc$dkjCSEk6aD*>aw`%z{P6p8JOgWEhVH$e--Uq$T=fH#d z^#@iD-jk^yKD77Xd+BB;%0d0VsXT<80%qyz6Q1vW7;*gYDM`lt9XsN?Z$b<@tvAY1 zy_@I-LHVY?U{2uXo=cg~a3Tz8KDa5wPiQwi3lordATTTl3mpzQ|$Nv9&yZnrmpN-g2@s z79;AZR>9z)T})G^o$B{05>BJDo{Q=ntqO+O(nW?An9`|&Cyer?kk5S!nN6KZPpX3k zS~0mP#FCaKYGC6r^~Os!NBMiN0U8mhteP1+c>J zG`)kp<1jj(&7zknVqddE2$}eSt!)}2GTE}mS4tydZaW$O7_U1>@n><@dyBUvvi(Fbk0caU9mBJ(LBjul~k z3sIImPJzazh4N6L)eM5~%-BSDKcU2hxjvL{KADJ0C=T9RVkU2`W?;KgwORtwO@x|v zZT2c!A8p(w1(`iRtO6R2{;vFB>kb-bQ6LjlCFbBmtG|OEk3D#z!3)1mKVMa^wv#x= zAiu{;nusOnJVTdJ41HX1hI_JF%ipIB6l2V`H;r_0_LEnc#VoLWtG-y6YSfxABf~=( zf7fA43WcQ}X4M@no!Yh1i!j#h9{%0qu5@n-I<#~*O+}6=*N%yI@2qc*PcCaYf19H0 zWNk>^5&q5<#njjhOvCzpXu%uYYdk%e1K~%vRc0#eo=(u;{Ej|N4;3-A*L^?yacp*h zc#=IEH0_1&8hotIpWtWp)O?$ZmA-&Awb`YD!-eqX9dl;&0_np-7M4OiQ62|H{||k< z#8x|7usFRNyV$jc;sL*?j05RfqFTOitq)CtGk4^-f_d9hJzu1dXo&5I9aHG?2msaB zN}_#zDHA!`n~OVY9OE0UKd0$vr46U_k0=dmbz-QW`^&F3&QJoOX=8I$+Kp;GUjfN} zf@xO)Xa7O`3zkai>>|4F;wmS6BM7nYbJnvew>Fr=~?el0Zm{!Pdtp5&qZo8RDSn#zF`iUV5<|FV5 zwAjI@+NT;}3ZrOZU2SM(%P^u_!76t)s}gKN5puTK&v6VBex1eh$UZG(tu23tgZY8A zxhNZNvOo*h4>&OMJ@?8?IKtoZoXt{o-3}+xy7)I02QtILaS+Ehv*mX7@l94W`{QS4 z7qPE4E1ojp=WP28hVvN-ub$agR2Gr*XO04{sis6~@73P$SENQ~7~Rpr$?uj)1MY^0 z_WIJ?gMPs)Ss=xd& z7rXLCzDey@Hdl%umIm9wd7`(4luGTirC6%%QBV5re@jk`S?*4SyhtC6eafP=b~WP> zjHUdsUy6Ef-@{cw(x1@r-1qGj;r2=?J9c2_9QegO0B?iFM4SRZF7>~=Vo-e5QP87A zXBIfqNWs$64HZBGG$ovSgaa;bFQ`@L1~EzQY~s|Lai@)GWuf|NZom6#X#IQ&9H!6a z3uB>T(?cb}%DL&Fd{%`!7pb}K90QE>7Rew?G%t<3$nZZz8Z?)-{|=<)zm%;1LluTn zxitT0NelRw|FiD(|IrWqcoYsKcgRsrc$A{YLeUWP3&r2HG0&9oM{y*fznxxaUbljn z6I%pP6`|r+T)EDVWUxQik1lUy;v6=C%2X|1nI4~CQp}KohqiaVk>GE;vB!+FvUc5O z#3LY2D=bsh9Nd#j>pWe(1mVe#*>L2X(~IP$q)>1(&kGMoOM9$6lrMDeU7$Os8Z}m$ zsS~rC*f1GStNdu%bF%|@`IYb6Z82*=Gm%loc>>A7+*lfF)&bxY8fK(i1K^q5CHSwf zeD}@+;Kh8^zjbDILI57B!}Q>7m?mJ5zXsA^!-C>3BP~eDo~=8FsTVN+LItxl=jy)EwL-)fctIWV{RIgW9^?=rq9aGyov>Dn>pisTKiV z)_ec_Y%?ejURs$?{i!ibQppAj;&Q9>Gwl!R$kIZ*?ub74u2|Z+hQItZrWEKG4N>Pi z7p(g=(?)c)M*R{67V05^1Z7**Mzw&n&tt(;@d)gqk~JVTJ}0WN)cqe?#-plG2+RQ z^c0azSFR0fh+{KA#lX)bJ@T=E=n;w_tYUrq2`e?tyf&)WMSzO8*x2k->GHRr={JmO zO6bpxAwV?Sb_&?v0K0jFc1Cl(RCIOuFS=-c%TPuO0$zYTXvM1vbR0ZAj&VrdsBU_= z@Pge*!Dv>&KzzYrSgI9R7Me+jRKVx3cWK$*%x%Ogk9)!IG&Yv4G+uAC(i%&L?9uLJ z{BY`zTr(AD&^;^fzSP#z&ucX+Tv+BnHiv{pR>HWugP%LA`s7n2<O#GL?;HUR!QiK~`Ijr`#ALs*hW#LA{l#ameC8QYFce1lct-q5sM>}mXYx9c*s z>4s@h?GU`y@+*FAjA;L;3AbS+miBVMVHFIa4fp!O|^x|;~A7M z)*eJ;FBRCcOtzUD(ug`dEQH?bQqEyPrJ;>x4fs)v5);3&>#H)Mn-NdFd&OwIrdTHG zh{yAZ@HGXl3Ip#ab|%s(kZxnG$~BI2-xUrY`e!sEqucZYk2E4xSi2dMG zg(n|}^rc6<=o@+fCpckQn3d2&rL)>DZI_5;*?iV9f6RmzeDIM8&aKTxtQ37jJ^{Y_ z)h6A{``+O?d9D@pC}phdRo&->{@ZFOu*&;uphE7D}B-V92f zVErQC`4VCw19v8GCR|$%y)0=M3KPkRy-ab3znD8cQ}H+o?0NqWLuKEBgy2*qJ{*W^ zMO9N3xT&xq3Vh?N2>V}9(}wcoSNay>#D;IX%6}ga2R%t3hnHaGk;55sgj4(OMNt?` zEcaRk5NW8N0|`oLz+f|~Mk{<|ofp$DgE7Pmtn7sGjtk{8mafy^>14Gu+?M5kS#EiL zxbUtA16>zCsS#AfsxOm?T+lWp6k?B9VKBN{cjG5_69yv0%LNWYMjw@=L7z1z|CzIZ7CKV6N=)uJAse=kmX_@ z`eAX#cUur0AbMgBQqW-?gGwOnLFz65pARJc58jBBWChWOSc*o|);3tqpE%S5gMX!@ z04qO1q0jzA;7B#d^FfaRa8`Q)wMd@+0m9-s9{j}Mnc|d>iQ@5APZO-@ki-O_-|RI# z?lW+G5myCM9fPpnn}FPco8|&eGCUGR5E|MK_MCvvi7%M5d}ff!zmL@i(a6Qmo&r~6 zccPMrWrhDR>5VHGzx2>8b3?&;>PPClX^dieo1iwVN z0U>2<3r+vyd+H>k?$ocNy&He(Ge%{ts=mzA7Tf6wnBJjPftb*y%1tjl>jVCbr*j>| z4h8Aa4cvtg&)GB5*k8&io&Kyl>sje*aDFvQ)B{AG#z*5BDw~r{k1vd@wD{m7TFxhT zGA{6b_|x0Yr|BjYKD^wDjKyD08Zm_E7Mux;lg{peB9QdW@gA! zYAw$50ueR0&$TDO>;&nHYSq}#KGcbHFT2JEOLo%${*VGBMe(&jlLS$1)1kb^qRmp# zS$UYXbE3>CMHq#ZN&$;-GM^J09DyJkubzTzuF?kMgy#7;@=O8<2Cq2! zqv6#KyiG;=+MCJfPJ0gNVUVW}?hQ=pc8imMq)->o`;T;12{ZW^0gcP1B2R1sY6`=7 zjLAO`uU&ib*OxR?ci-5Y_DpbIUH!@4FwWHEm`6r^3&`qR+zTyEzySYJ+F9FoyuYQD z-zZV}Qs)+rb&jt}A&!)?ZkfyGCH9qE4%r%SSqbsO!mHm;+zwx}fMBNI@9cl?EJK1Y zy-=bM6CbO5=Qs8WB*3$^?Q#V92h@-Dk@uem{Xgd$KR?93Q2bT5nf@J8{$FYP|Mm0I z1t>s-&Bzx$!JpmyMeUa_W_*Yep@k379uPw!edfepL2k1(0Y|bo7#3Lzoik3YeF|5x z0Q!ro0nq^&6QZ?hE+avE5TY$MTC+*@ExC;Re6Ht&@&0+r?ytEOG-m)_;7obp<0|h; z@)dNxNU?^LQs=9Blme2>9W~L!v+DbiJ6>IBL?_a$Ob{Ziq=)9^NLOoymnvTLu9zHM zL1HpEMK4e z*s$&!%#}xDBxvb^fG{qNbMHRa?|krwGEi)6X9aSdsPe!=xpe^Aqm#jSBSjF^s%W00 zcJ!>Z>4o(Z`3*riQiAV$QRc+(9?Vz@{xBXYgtn4i)OSr&;W+p0J=O9R#Zw;m_sGDM z_~LpP!tmwF2ise#y?gtEHY2yLL!lFVKsq$h787$wOlwP^foMbhxK2GX6y1Ae6W&|A+xI2R1My^v1qicJAFOn!n^)^g$E#rAR@(_?-Ei$5ZHSkRb1oB=nP7gB zb&rzrL6XsPhcAB)C}Ddk{+1aCCuG!rxr`Z~3^Sb4M4>#FMW4wX#!3*N=$%O6D3z9{ zpRQP0*BEW)&ocxhsB3^x98C;m{enz&OB_?6Mj)d=d$d<`Vk~L3*t3Mi%ypg1>YF1? z>ZqmHyjaP6#e8OJQt{^aE}B^yT9AnlSd-)5b526Z(=lFx37<*uKK>F|T`ZZC{To;z zek!XsoXuTdBGk2-8!M9UEIjN1VHk^F0_x)8n|}BamMor1OlU}NM*jSkLPVMv|Ig#% zF07UZg+rh+T=r>`2l=w1yAQTtuH$hz^}s^n!2S!X`P|Q4YO7yYrT<T>iUDW!P!=5pl7Y&1?oR7yZ2(|aHn)|kOBX8+Ipl#DkFV<*Y8 zkI435R?*Jsybqh7y7|NsYKkR&W_kFCxEQkOHnYa6A`padQ$LSd000oXdG3#aMcpqR zE2%mjUe&@(tHc2p&iU~89m{Q`R8Vtzx=jcP;rLh6F*G<}Yn5iRGLPE??1X#hVP?c; zvlu%o9vf#dU%BiuK2Nwn-a`BIjxmVlLakDa{nu~k#XH7bVNcd4bllm?!Uk~oS`Ej^`!8hNX&Kp)Ht zc6EKCmaR<@QO6c(GlTx)tuY`zkZRWCN+nMpsr5Y@ai^E~<&3w5mfZl>m9O^GY-;@m zBwd2cXf^v{kDGDWQ~MVkgIj%mTj9*Zw?PFZWu(M4P&73Aw`gLoH;N{K7V2$b*UTr+ zVq|nR)=Sc>UOy?X4*x;fkyf#;C`AvP|0GwlB%|xo+u1o49Fx;3k<0D6sm|PBzhiuZ z3!RCoZT3s$sk?1c)&oUO;Ey>J?vqQHvoO-+g2y*Axfk5* z9{bTm1>^0`w4&YnzD%E(CvViFSSIm$uW!x<9_x$X3<6^s!@0(qe1U`SYDf6<4reWb zt4+gH3fhFd!%!^hHNd9-NgOC?Vo9~`q_A}qrS&8cRB&M*BHP%{1ZRCVtf}HNer{3e z0NXaXC^k_l8E%`HA_`+sSL_WbO2dI41wIajUwof%89^p2;cp;) z*7t$K&w!1~d&Z3h=jbnteFC~M6B|pSU*;Wbce71L^o=x0ulXW*b!}Q^S_2~%3OG~+ z023J`NhG$CTovg~%IuNZdD(BJDjRQ@3YIX@XuVdulhnSdx4{1I?qrn5?t!erD+?8_=|WTkP3%^n{)#AePE z-W%Gn^OD#xAu*=q!9pd0ANyF$uLgboqd0pk=s`XryYEA301UsL@@(LZ#!}u*{rRNl z?$v9Dt5dPUXe$@6kgPwRwpt?FEM*@@5k z)Lv2Z=2S1ajycF}tL*0D<$05l<_%ew{;hbm?wwo<%=45WtuDhHk+(3Wy*l3ZqHV%i z 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≈mvBgqQ@pa` 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 literal 0 HcmV?d00001 diff --git a/lab5/img/wrong.png b/lab5/img/wrong.png new file mode 100644 index 0000000000000000000000000000000000000000..16acfe6be99b7a6cb2485039cfd168eadde53ccb GIT binary patch literal 9216 zcmchdXH-+o+V_Jfh%|3Nk*kN3BA|Qi}Wgp2na~;O}Yf4q4(ZGQ+n^A zOCS(J3p{w==e+M)XPsxQ_tX0!d-mS5Cb?#I=Kq`PKRZHQO`h}~?L7bhK&q%9s{sJu z72TYFzDsa(6y_z}yeaV9HRN9dDu(H|Z!T`zyi$Dy0Q`t0zBIdYb4}!;pyv(%P`vx| z!CSOu@&*8&CMn9k((*R`ouz6|-#gh0JR=!q^|FWxW*{_&ClORNJhC^-EF}DB`6M%J zlHgh8{gBTVefm+U(s%JGo_u-4L!|=#_(MqV_8s%}=)LG>@2@;AsMQ^jO)YINZ4VDG zjLJxf)pd~iiAq_qv08KHH_eHF#j~ZLYxi$A0R_h#RGcy0oNV1zSGg%f?@&?R+*QNt zz6}86YD)9s-BeNi_p0~9F6iBl=UY3q8*`Z=m&v2E>g3nFOLOZv@;k#5pmChck;MD3 zWQO1v{C~dfley^S24#AAn3-Co;?0lchWK}n&w+!aF8GNXL-7R-!`yBG0N-_$RDGr< zYbPQ_)#YIrFGqZy3h4f&?^kCRZ|~k_wy*P_Nf)ETL#z9Dt3sCgvxDo4*Rehaj+pAR z(x){{W@ySH4=Ls1)Z{CJ*WzL5vsU)G*yYpa^OE>VMPYD|?;VEN>wK};!CLkb_7tQ# z4%z=}AYYUEN=d5E*<7F7hYkcIj?zJu8SIqSXa72cnb zH|0kKAZhQfypR39BsUVZK*7FM6u2v%qpZLhRN{b3P)QSdsKGZHaW-odH#fFKHW-$< z)N?$t+;C-{hd#6t^bz-vj7LoPm3meL79|cc<;Wx#k!6wYXUgeHQ+ z3GL)|Mj%oihmW2uPx?V6yz2J=@1ixjk6jchTNZ0(o2kP@5y@7%ZyG6m2D#G?IYFcELJpOVaME~Ry_ZFOiLERiSJ^LLW1;su zzHQgoiZTOKe^L)ilD%7QvaRXxY!<|VS%&cK1Q9b4MLo>(S?GKKq>6p!%^k7^zs z4oE9N@O0mB$W}rsp-y8}d_RF6%uM^3UclRwsl+JlPSk3_E5`two5zf8Se>P0P5&K) z@=MeHdlj;04rr353RQt8`W1m@d@L9w;)||6`T-v3)_juMdp??U(P;L<=dZ-Yf9S4= zIw?^j$fV`jB`yyvk2R&Oe-KjF@BexMSV`(Or68}0Ov07a#7lt6%7BbwV) zWUbAZ-Q}^qu8hAwhVWJf7oKq%F$t`^3L8?IY578A{^scUq?|V>G80ygQ5^2cWV3Es zg*KCp4rsH~H$NI3bK4cj{4kVklj3wU@%J@?PFLa?wAK#xmeOf8R4w84#+0zEp^DEn z#fxL9{U3BYs(E}W)6g4EtYZj^=%mv?*Ch@+H34kz;Agj>g+*g#MYrSt631ameq$EU zLlG_^WNDKgB5BgtExo94x9a7JLPR*5lxOS&^M%?5{}}S7_i{=PC`X#+art}&YpFC@ z(A(ayoeXs79eU???h=uWUv1Tt0*h8A@w4B<-4LU{>^@>lV=KQpz0myyF}&L1j) zPRA{XW7{{Vuv=%QFmoBpw4Z=RI)qCBfQ&DPa?fAq%j;bBB2 zGyfq}QipCN(7`ei!eJ9|H>5<=Rd}tmDba1)|I`tB9fFn2s1Ai#J(`4QWJ@jZ_Wr;~ zl*yZ@2TdQ6(Pf7J5ww2*U?(}k!1w~0_BEd7aYp2+&lf$gqUk-6BWQYJa>yPYfFU<9 zwp6Zb5U`=9DUzeYIHqJLRLKqiRCT}BQOOOZ-`Vs&rJ@!Z!~+-sBDcB1gtsx0R4C*t zc051>{y!Y~@l%5JkJ6Jp|5Ie$iX;L6q>F>iZ*=}Adu}S=`Fjv|kNDZ}9myIg9#G{* zwXEu*C;TTI|32W~%vjYKuS2O-9w@W$+W*0W!uNk#(*juoU)f#}ST3fFkU ze2mb8=J+u?rfr_M6Zoa4xxyBJ7Vko6IWrfcs^nJtOMl z9LaojRQ_uYYQOLY#!|&;yKw#8>eGkLI_x5F@49?gy)y}R9+}_}vpqXY>gjU&hZAeP z?ZFkLDKl+v4Jx!$&R|W>E%FL#_HVA$RW$Sy@T=Ern8wKDK9YTvraz0qf3-G~24Ru; zrdgKQA>1<6{dCdYZ?4)o66G+1_n5D{i$Bl5v|MKC7so1GWYyEakh5z(WvmVRz@wu5 z6P=mhR)n7btK?tmbOV{~?%#{0$AkgPzt`Nc0|a|Rj;W#ty;WkqRZWFyqDNX457YbsDvCXxZTG2)TH)SR0chcrWGkR}z1hD?z7If%q z5eC`ER5Cn!CIyR8@S&+iRZ^~pzt(-nI1NPQk@d4iKl7rvUwO^;3fP$^)RLl$XQ2^|0ku>yfUxJFNkxRH{ zH}O(|?Vh#QnC4*YZbiBnQ-(=XGjy5pV-i|7&LKP1uV~R?)b(IJuTDy*w|g%LOku81 z18ug$dT$#tG|UMR%sMD2MovNwrBw{j+txF9eTra}Le|DxzLT|l zvud@t4BV~8AT5HCz4EV${Uc$|7=x?R>=r*k;=rGhtYs=UClrJPzsIKp2zv3SfvxSE zsK1-cUqq!#58-&nY&GgB%=i-;ER)RRiXi=vAM7CHkVZv=+Xn$vw25d2<52Lb&>$v_P)UltC@0q=c-i>0>(Qiuno>fp^plz>$fbG|{7cj@Gl9K4Zzs zFmIfUu!l+l7^ZajWa!XlbTsI?{wd|) zRUB-P+3%r4L#1_R*NqZP^=fAMoxo}(LkD!YS)(U5?bc>u>-$4QS(pgkhVtkeaMe3R zDt@uDPJF>`CAm1j`ozGgIi*%JN3uUzxHvWzv@?(dm=eiw-}_~r!PMB=<73J1lwUQ- z;dc`xJ7jz8YoOR(>ohA3*kMmT75vdGixqh`#sF)EF$TN}u0i81m{u<|7JoO6P@%Cf(iv0S%viRS_w@KgJA zh_z+&Lv1)@ARAcZ!fMx{H%M}mt-Q;0h@alWMX*zWRnnFcOL4bvZUV*|#43EHSpP zyUGXh&IblGp)i)}i4RqVXh|Ihetu0+p;I3iN6LEa>_k5l?K)eIauj>+C3oT4%jS7_ zIF8X*eKI&UXrYY%ZFJNPScEbnA7D5}7For1pb!ZMy;H?Zf!_nq2Y^SoiIL)6CPRs4 zZ1@GXtaw+dd31^WatXBS#?=_!ku#@5Jat;T=tUWLmbt%h^)wK7ltVm)dfRjom~}Gs z%g=$)9>r@FiR4NQ&k!PHsC^1cypNbJK=rp7mc<`QL|RCE$x3Q8SoC{Of|2k!XXi`2 zUvmfRhflLHb?L7{S0Ene8P6<3=7Ii!geJ;GuVMl`94tiWdlgf$;JALRka;6K-H+0{ z$3@aJsKxQ`G8AmXnMzi$>@k#251@NB$)$A8<(Y~-z3&`<6NugNhdMu=j#xF7o*Exe zamsi<;OAOVLNC?u6;Dd!pIHt%VA8ZB6KW@ zz7kCNQTU;t%6rLn#FbCUV=1L3ez~_?E<~az>aeTy2@15zXuW`dlXA}1(dA|(o;~od z1BDLJ6IOC`NxbX&U03I>;3mxUA_7>bB|^*+^?tiyhRB9IP6M<;{AmtUL{Robkol2Li(EjJ;LjUncCG)l#7 z6mcBf^O=pK`9aTy|unb%Laa>|IgZ5gVd zYT~$RzDBfHUVhMWV1b3{n9{k9B%Z~fx=r!?H zEy8X11-92RU#D%ZoU`4hI$a#X9+wxDd61@K0ZKHB^sjpwj{Fk9b~LlbA@{mG0QDd|SFj(TtV+6}+u;QWW*orqO*yb(nFoaAZaSzmo z_`p%@NI6kXDBfv~OcbsX6$ua5dKojVVL+Q_hV_UXN6HJE^x<8|lkdR6cH3b7&s(x@sR5KBP6DA{ zSY^T8zMtKnd+8-`B(V!6;!}wuclK;_^ucTqr}v|}gzMN<8TV}Rl3Eg`!NrPYKfzr5 z$wnvqnZEC2k~eSuK@t8txfa%8DNo2RwQjCx%TZZd{r-Wgge_KQR z|EY>v`IoOLFEsCCdG-CV$~l&N2rHbWvbdB^49H~4O>HyxMiu!U?13=CVGHl;2}DN% zG@QHwC3u&LitP`Bot{Q+AJEybW`vPq4w&i*0WOPuthc;|?f{0#&mv1}xhnPOJP8Ty z>h2+LM#uC=Vmi8_+_~(5M{bPqE{d(yNfxYqXocw%+n4wY`EXx2)%5qZX!){N_|gV8 z@luk!#i&_G%0prH@bUxXM`<1>7q0e$_dVoMP(D&~UhH|Q$hUQe(ddaB<5#_FCS8l_ zNhD#kXSz+^;M#FbcZmma{7G0@9J2dCf}VDEMwjLU7~>peg{cUKmzKcb;*9|TDoZ(J z*T3hfN4!3dd+#77z=3Tdt3lVek?ouH21x4ia#QmvGfYP+ry|G&bG*oOesPVf3OrvS zG`YZD9ts*Y`ZipRmF>++oL{Y+FwJ=38Zl!g#v-l6t1-pM>o=<&L2DmOB(Y=fWHbVI zLK4T$qSPEZqe45XC;KM;{==lzcM=BXL z7zXm%%ElMGyy9^W^TuUb!v=N`7aM-0qKg|Wo5e&;qjk+?zIn&b za-isbyI!1e8emT9adn49rn9T2L$EdV3gY~7xA(#y4S7{-nvjPsud@m&@-*;i)zAcz zXTO763{yt9|F4azc06$)P5MUsR3IO7sj{jRaa0F#(~YnNNSsOuFWse`CbZKL%_Vsw z5L^K>so+Cz+WM!%9b*sPIE9}R{=9W%-xm=@_tO+L z0>xu^%ZAj8^&-EMjjPL~cb9KWeL*Msx1);h__w2)w);htxLw-TgX;3QdOFW6usMf6hQNQO^6$JG3JFLIJTq-OURz&VCgrO$JT$Q#O< zUbBRuHgvpnQ_PJ%U<>-rX7zK{9R_{Od&;tBav1bIx6#|T*b{hE6KW8IEIrLFw8yq? ze4S>A2IMN2pepubC}^cdo7?4zU0a1FWiOXD+~#`HGR}^9P0z=u$ukUolX&mXKjBZi zue_|6HH}+PQvt>bf>$rP1IkJwdght<7y57>etr=w{b#f&N;~)L)I(+;cprPI59yq}7`J2H9eA4xV6e`8ecHiunZ5GK_p4Q=9yK(Sz=8jGZ zE)6yrRyj#{EB_UDWBA%utFBX%eA;WJY)u8bGA+U;{XtfHYm<#_momL9b@7$lpx1oS z42ggFh`~SS1r2O9k3C8{6nL(q6xepQ$sn2DJ5o;NIOD*9$f4aF?ujl2WH5!`CEHAz zy>sxbhj)f^42DsF-?Wzb*#Y^dEcq=MgKwlX-fyUlHF%}aT$0o3Owl+=z4vVEL|M>x zHIstxY-KppDCOccpBk6F_n8LE7zHqlYtjr z@tORE&I276pC7QQ#aRqVSS8jlbqpwnk#ODkEKNd=v(Gn81WT}@BE=gbB8;ys9V873 z%3GZ04Bj%H3pX&FutMCpC*^sKqj*rcEvZnR#NKwjZGjXqi zR};^_e9sTr5J;}1(WSB^2W$Z_ekxqd11>MT(h+(Y=GOcfw*b-xobS4Ci+guReqO2~Y_2^me*Sg(-ULF4 zL>c1)n(8y7%~x$~Y?o(R4;v9nUoSmh-l42T4o9i$iF67c`!5R{Ry~=k=yqR}&LC7h zq@wi7l!Kb?FKyI*%o&+l>f>nBLKCQ09CxH%y$QiYzhCm?N=QOuE8ZXB&x+ed zf>o^VbfQ3&z*M%Ug&)h@4_p)>KSpwnCSRPr*V@*)L@Vt6bX2{HB81_NU9tBPZAMT_2pUZKb^Lhgc$ooO^?9`No?7F63semraGOE= z&Q@2N+3Mj5L&(c-U>`Vb=4i_Ol$0g1=8HWq*KAvc22$Nu^{$iaY;uwhgD~G@D38Jm zwUMQVO$;`D-(k!;WOix+t^hlQ(BYP%uIop zD&Tz6wi;w@b|+N{f;7vB{6h*0-)3`2;3ZqQ6@!I1@TXxo7!V zkxK0MNGX&zEIv)w6+db+W?-;n^rh2`%TYS3dei?QH18M-3HeSzL)3*2)uFzjqLouu zH}2yu_q>|4t%t*I_2Ga;vxxin^by(WXS2 zrLpLMTRIVGX#%Cy{({fLq`3@_Ps2UdkH5W8Ru}NOYINW!?ra#3>f1->u zj)RbFQtG4ob8tfchi+NTBE`{eg+F%tQ$v9ptR8Pc9{MTDn*7YR znQ=ONchm6Tya`OlErVOu-+`LKovw7Ob6XhW&Qnj<N)fZm6TM+d`0tXcTdGKwL-Roh9HixrutY3iO)-M1b(u`_j5}&elVNGPM z`C|=2o1DExy2pvmUV|E=RXkyx0jpHG2}N{d+5ezok>}GK1VhxYims<^9@Wc3`Z|~b z4c;emP57{Kc&?i+$6Y{9lI-|aqQ^=JNaAA)oQ0;0EGef_pN$=9axoRDJS;~qs%n%J z9Al#}ivl<;_j}})zAg3&g;+It;)Zr6E4f$8*)&4VFaP9?t!fM)A-Z=pT zD9ryQ%&M4WZsQ^O*EnC;x2Q+(71dBzq`Q$8ceasDXu?d2kLbJ|n2ieba?5_|KyIvf zy#KTjaf)$HTNsrnLwM6B0-s4$#%ob?{Q_rf3b7SG0?y9=nOTf)RiK=EagO#W$W717 zsoOuye+C^f@*%Zl+Dv(*Mj1k}ch_kiCxC+n2T(hjD(AY~bFml%yNP0&IPC9T$j>}; zR@w?Gt{fvB+duT$0%H2J*oFE*Y5waITv7AlZ1v+)ez%(Jh<3&aX!d;C;yqW%)qG7p zS{3ak5Xj zddQw=6Dc&pst(@UKmEEk8&8B^s~Y#~)}L;8f4>9Bq=BZc&lJStKXnM%+}u;*B3X{M z4D9X31LP9$65hHW{NV3*Ti*Xu{O_;0kmZeE>}\\ + + \hfill \break + \hfill \break + \hfill \break + \hfill \break + \large{Лабораторная работа №5}\\ + \large{<<Реализация LL(1)-анализатора>>}\\ + \large{по дисциплине}\\ + \large{<<Математическая логика и теория автоматов>>}\\ + \large{Вариант 15}\\ + + % \hfill \break + \hfill \break + \end{center} + + \small{ + \begin{tabular}{lrrl} + \!\!\!Студент, & \hspace{2cm} & & \\ + \!\!\!группы 5130201/20102 & \hspace{2cm} & \underline{\hspace{3cm}} &Тищенко А. А. \\\\ + \!\!\!Преподаватель & \hspace{2cm} & \underline{\hspace{3cm}} & Востров А. В. \\\\ + &&\hspace{4cm} + \end{tabular} + \begin{flushright} + <<\underline{\hspace{1cm}}>>\underline{\hspace{2.5cm}} 2025г. + \end{flushright} + } + + \hfill \break + % \hfill \break + \begin{center} \small{Санкт-Петербург, 2025} \end{center} + \thispagestyle{empty} % выключаем отображение номера для этой страницы + + % КОНЕЦ ТИТУЛЬНОГО ЛИСТА + \newpage + + \tableofcontents + + + \newpage + + \section*{Введение} + \addcontentsline{toc}{section}{Введение} + Лабораторная №5 заключается в следующем. Для заданной вариантом грамматики необходимо: + \begin{itemize} + \item Построить множества FIRST и FOLLOW для каждого нетерминала. + \item Построить таблицу выбора (lookup table). + \item Реализовать детерминированный левый анализатор (проверка принадлежности цепочки грамматике). + \item Назначить семантические действия части заданных продукций (например, генерация машинноориентированного кода). + \end{itemize} + + \textit{Грамматика в варианте 15 состоит из следующих продукций}: + \vspace{-0.3cm} + \begin{verbatim} + S -> B A b + A -> a A B C | b B + B -> b + C -> c A + \end{verbatim} + + + \newpage + \section {Математическое описание} + \subsection{Иерархия грамматик Хомского} + Иерархия Хомского — классификация формальных языков и формальных грамматик, согласно которой они делятся на 4 типа по их условной сложности. На Рис.~\ref{fig:homsky} представлены все четыре типа грамматик (по типу продукций, из которых они состоят) и отношения между ними. + + \begin{figure}[h!] + \centering + \includegraphics[width=0.8\linewidth]{img/homsky.png} + \caption{Иерархия грамматик Хомского} + \label{fig:homsky} + \end{figure} + + Любая автоматная грамматика является контекстно-свободной, любая контекстно-свободная грамматика является контекстно-зависимой, любая контекстно-зависимая грамматика является неограниченной. + + \subsection{Контекстно-свободные грамматики} + + Контекстно-свободные грамматики являются частным случаем формальных грамматик, в которых левые части всех продукций содержат только один нетерминальный символ. Это означает, что все продукции имеют вид $A \rightarrow \beta$, где $A$ — нетерминальный символ, а $\beta$ — произвольная цепочка терминалов и нетерминалов. + + Грамматика этого варианта лабораторной работы задаётся в виде следующего списка продукций: + \begin{verbatim} + S -> B A b + A -> a A B C | b B + B -> b + C -> c A + \end{verbatim} + + Она, очевидно, является контекстно-свободной, так как в левых частях всех продукций присутствует только один нетерминальный символ. Также можно сразу заметить, что грамматика не является автоматной, так как в списке есть продукции, в правых частях которых присутствуют несколько нетерминалов. + + Язык, порождаемый грамматикой, очевидно, не сложнее контекстно-свободного. Также, по продукции \texttt{A -> a A B C}, можно сделать вывод, что язык не является автоматным. Эта продукция является рекурсивной и порождает вложенную структуру, которая не может быть описана конечным автоматом. + + + \subsection{LL(k)-анализаторы и LL(k)-грамматики} + + Синтаксический LL-анализатор -- это нисходящий синтаксический анализатор для некоторого подмножества контекстно-свободных грамматик, известных как LL-грамматики. При этом не все контекстно-свободные грамматики являются LL-грамматиками. + + Буквы L в выражении «LL-анализатор» означают, что входная строка анализируется слева направо (left to right), и при этом строится её левосторонний вывод (leftmost derivation). + + LL-анализатор называется LL(k)-анализатором, если данный анализатор использует предпросмотр на k токенов (лексем) при разборе входного потока. Грамматика, которая может быть распознана LL(k)-анализатором без возвратов к предыдущим символам, называется LL(k)-грамматикой. Язык, который может быть представлен в виде LL(k)-грамматики, называется LL(k)-языком. + + Как будет показано далее, грамматика, рассматриваемая в этом варианте лабораторной работы является LL(1)-грамматикой, так как для неё можно однозначно заполнить таблицу LL(1) синтаксического анализа. Это означает, что для распознавания любой цепочки грамматики, анализатору достаточно просматривать входной поток только на один символ вперёд для принятия решения о том, какое правило грамматики необходимо применить. + + + \subsection{Алгоритм построения LL(1) таблицы синтаксического анализа} + Чтобы заполнить таблицу синтаксического анализа, необходимо установить, какое правило грамматики синтаксический анализатор должен выбрать, если нетерминальное $A$ находится на вершине его стека и символ $a$ — во входном потоке. Легко заметить, что такое правило должно иметь форму $A \rightarrow w$ и что у языка, соответствующего $w$, должна быть по крайней мере одна строка, начинающаяся с $a$. + + С этой целью мы определяем \textbf{множество \texttt{FIRST()} для $w$}, обозначенное как $\texttt{FIRST}(w)$, как множество терминалов, которые могут быть найдены в начале любой строки в $w$, и $\varepsilon$, если пустая строка также принадлежит $w$. + + Учитывая грамматику с правилами $A_1 \rightarrow w_1, \dots, A_n \rightarrow w_n$, можно вычислить $\texttt{FIRST}(w_i)$ и $\texttt{FIRST}(A_i)$ для каждого правила следующим образом: + + \begin{enumerate} + \item Инициализировать каждое множество $\texttt{FIRST}(A_i)$ пустым множеством. + \item Добавить $\texttt{FIRST}(w_i)$ к $\texttt{FIRST}(A_i)$ для каждого правила $A_i \rightarrow w_i$, где $\texttt{FIRST}(w_i)$ определяется следующим образом: + \begin{itemize} + \item $\texttt{FIRST}(a w') = \{ a \}$ для каждого терминала $a$ + \item $\texttt{FIRST}(A w') = \texttt{FIRST}(A)$ для каждого нетерминального $A$ с $\varepsilon \notin \texttt{FIRST}(A)$ + \item $\texttt{FIRST}(A w') = \left( \texttt{FIRST}(A) \setminus \{ \varepsilon \} \right) \cup \texttt{FIRST}(w')$ для каждого нетерминального $A$ с $\varepsilon \in \texttt{FIRST}(A)$, включая случай $A_i \rightarrow A$, то есть $w' = \varepsilon$, в этом случае $\texttt{FIRST}(A w') = \texttt{FIRST}(A)$ + \item $\texttt{FIRST}(\varepsilon) = \{ \varepsilon \}$ + \end{itemize} + \item Повторять шаг 2, пока в множествах $\texttt{FIRST}$ происходят изменения. + \end{enumerate} + + Однако множеств \texttt{FIRST()} недостаточно, чтобы построить таблицу синтаксического анализа. Так происходит, потому что правая сторона $w$ правила могла бы в конечном счёте быть приведена к пустой строке. Таким образом синтаксический анализатор должен также использовать правило $A \rightarrow w$, если $\varepsilon \in \texttt{FIRST}(w)$ и во входном потоке символ, который может следовать за $A$. Поэтому также необходимо построить \textbf{множество \texttt{FOLLOW()} для $A$}, которое определяется как множество терминалов $a$, таких что существует строка символов $\alpha A a \beta$, которая может быть получена из начального символа. + + Вычисление множеств \texttt{FOLLOW()} для нетерминалов в грамматике выполняется следующим образом: + + \begin{enumerate} + \item Инициализировать $\texttt{FOLLOW}(S) = \{ \$ \}$, а все остальные множества $\texttt{FOLLOW}(A_i)$ пустыми, где \$ — специальный терминал, служащий для указания конца входной цепочки. + \item Если есть правило формы $A_j \rightarrow w A_i w'$, тогда: + \begin{itemize} + \item Если терминал $a \in \texttt{FIRST}(w')$, то добавить $a$ в $\texttt{FOLLOW}(A_i)$ + \item Если $\varepsilon \in \texttt{FIRST}(w')$, то добавить $\texttt{FOLLOW}(A_j)$ в $\texttt{FOLLOW}(A_i)$ + \item Если $w'$ имеет длину 0, то добавить $\texttt{FOLLOW}(A_j)$ в $\texttt{FOLLOW}(A_i)$ + \end{itemize} + \item Повторять шаг 2, пока в множествах \texttt{FOLLOW()} происходят изменения. + \end{enumerate} + + Теперь можно точно определить, какие правила будут содержаться в таблице синтаксического анализа. Если $T[A, a]$ обозначает ячейку в таблице для нетерминального $A$ и терминала $a$, то: + + \begin{itemize} + \item $T[A,a]$ содержит правило $A \rightarrow w$ тогда и только тогда, когда: + \begin{itemize} + \item $a \in \texttt{FIRST}(w)$ при проходе правила $A \rightarrow w$, или + \item $\varepsilon \in \texttt{FIRST}(w)$ и $a \in \texttt{FOLLOW}(A)$ + \end{itemize} + \end{itemize} + + Если таблица будет содержать не более одного правила в каждой ячейке, то синтаксический анализатор сможет однозначно определить, какое правило необходимо применить на каждом шаге разбора. В этом случае грамматику является \textbf{LL(1)} грамматикой. + + \subsection{Множества FIRST и FOLLOW для заданной грамматики} + + Приведём множества FIRST и FOLLOW для всех нетерминалов заданной грамматики. + + Множества FIRST: + \vspace{-0.3cm} + \begin{verbatim} + FIRST(S) = {b} + FIRST(A) = {a, b} + FIRST(B) = {b} + FIRST(C) = {c} + \end{verbatim} + + Множества FOLLOW: + \vspace{-0.3cm} + \begin{verbatim} + FOLLOW(S) = {$} + FOLLOW(A) = {b} + FOLLOW(B) = {a, b, c} + FOLLOW(C) = {b} + \end{verbatim} + + \subsection{Таблица синтаксического анализа для заданной грамматики} + + Таблица синтаксического анализа для заданной грамматики представлена в таблице~\ref{tab:syntax_analysis}. + + \begin{table}[h!] + \centering + \caption{Таблица синтаксического анализа для заданной грамматики.} + \footnotesize + \begin{tabular}{|c|c|c|c|c|} + \hline + & \textbf{a} & \textbf{b} & \textbf{c} & \textbf{\$} \\ + \hline + S & - & B A b & - & - \\ + A & a A B C & b B & - & - \\ + B & - & b & - & - \\ + C & - & - & c A & - \\ + \hline + \end{tabular} + \label{tab:syntax_analysis} + \end{table} + + + \subsection{Алгоритм разбора предложений} + + Перед запуском алгоритма разбора в стек помещаются два символа: + \begin{itemize} + \item Специальный символ~\$ — признак конца входной цепочки. + \item Начальный символ грамматики (на вершину стека). + \end{itemize} + + Cинтаксический анализатор выполняет три различных вида действий в зависимости от того, находится ли на вершине стека нетерминал, терминал или специальный символ~\$. + + \begin{enumerate} + \item \textbf{Если на вершине стека — нетерминал}, то в таблице синтаксического анализа ищется правило грамматики, находящееся на пересечении строки и столбца, соответствующих этому нетерминалу на вершине стека и текущему входному символу. Если же в указанной ячейке таблицы правило отсутствует — синтаксический анализатор останавливается и сообщает об ошибке. + + \item \textbf{Если на вершине стека — терминал}, то синтаксический анализатор сравнивает его с текущим входным символом. Если они равны, то входной символ считывается, а соответствующий символ из вершины стека — удаляется. + + \item \textbf{Если на вершине стека — специальный символ~\$}, и текущий символ на ленте также равен~\$, то синтаксический анализатор сообщает об успешном распознавании цепочки. В противном случае — сообщает об ошибке. В обоих случаях происходит останов анализатора. + \end{enumerate} + + Эти шаги повторяются до тех пор, пока не произойдёт останов. После останова мы получаем либо сообщение об ошибке, либо сообщение об успешном распознавании цепочки. + + \subsection{Алгоритм генерации цепочек} + + Генерация цепочек происходит следующим образом: + \begin{enumerate} + \item В список помещается начальный символ грамматики. + \item Осуществляется проход по списку. Первый встреченный нетерминал заменяется на его случайно выбранную продукцию, после чего проход начинается заново. + \item Алгоритм завершается, когда в списке не осталось нетерминалов. + \end{enumerate} + + Этот алгоритм не позволяет контролировать длину предложения. Также алгоритм может не сходиться в общем случае. Но вероятность того, что алгоритм попадет в петлю убывает геометрически с ростом длины цепочки, так что на практике этот метод работает. + + \subsection{Семантические действия} + + Каждой продукции можно сопоставить некоторое семантическое действие, которое будет выполняться при применении этой продукции, во время распознавания цепочки. Таким образом, можно, например, генерировать машинный код. + + В данной лабораторной работе в качестве семантических действий решено было использовать генерацию инструкций для Java Virtual Machine. JVM это стековая виртуальная машина, её инструкции изменяют содержимое стека. Примеры инструкций: + \begin{itemize} + \item \texttt{iconst\_1} — положить целочисленное значение 1 на вершину стека. + \item \texttt{isub} — вычесть верхнее целочисленное значение стека из предыдущего и положить результат на вершину стека. + \item \texttt{iadd} — сложить два верхних целочисленных значения стека и положить результат на вершину стека. + \end{itemize} + + При распознавании цепочки можно, например, генерировать инструкции, в результате выполнения которых на вершине стека окажется следующее целочисленное значение: + $$\#b - 2 \times \#a + 3 \times \#c$$ + + где $\#a$, $\#b$, $\#c$ — это количества вхождений символов $a$, $b$, $c$ в цепочку соответственно. + + Для этого продукции были сопоставлены со следующими инструкциями: + \begin{itemize} + \item $S \rightarrow B A b$ -- \texttt{iconst\_1} + \item $A \rightarrow a A B C$ -- \texttt{iconst\_2 isub} + \item $A \rightarrow b B$ -- \texttt{iconst\_1 iadd} + \item $B \rightarrow b$ -- \texttt{iconst\_3 iadd} + \item $C \rightarrow c A$ -- \texttt{iconst\_3 iadd} + \end{itemize} + + Тогда при левом выводе цепочки \texttt{babbbcbbb}, будет сгенерирована следующая последовательность инструкций: + \begin{verbatim} + iconst_1 # [1] - значение на вершине стека + iconst_1 iadd # [2] + iconst_2 isub # [0] + iconst_1 iadd # [1] + iconst_1 iadd # [2] + iconst_1 iadd # [3] + iconst_3 iadd # [6] + iconst_1 iadd # [7] + iconst_1 iadd # [8] + \end{verbatim} + + Значение на вершине стека в конце выполнения всех инструкций равно 8. Поскольку в цепочке \texttt{babbbcbbb} 7 символов $b$, 1 символ $a$ и 1 символ $c$, то и значение выражения $\#b - 2 \times \#a + 3 \times \#c$ для этой цепочки равно 8. + + + \newpage + \section{Особенности реализации} + + \subsection{Задание правил грамматики} + + Грамматика задаётся в виде текстового файла, в котором каждая строка соответствует одной продукции. Синтаксис задания продукций соответствует общепринятому, за исключением того, что вместо $\varepsilon$ используется слово <<\texttt{epsilon}>> и любые символы грамматики должны быть разделены пробелами. + + + \subsection{Класс \texttt{Grammar}} + + Класс \texttt{Grammar} содержит в себе всю информацию о грамматике, а также методы для работы с ней. Код конструктора класса представлен в листинге \ref{lst:grammar_constructor}. Конструктор класса принимает на вход строку, содержащую описание грамматики и объект типа \texttt{Callable[[int, tuple[str, list[str]]], None]} -- функцию-колбэк, которая будет вызываться при применении продукции. Эта функция должна принимать два аргумента: номер продукции и кортеж, содержащий левую и правую части продукции. Далее конструктор вызывает методы для парсинга продукций, нахождения терминалов, вычисления множеств FIRST и FOLLOW, заполнения таблицы синтаксического анализа. + +\begin{lstlisting}[caption={Код конструктора класса \texttt{Grammar}.}, label={lst:grammar_constructor}] + class Grammar: + EPSILON: str = "epsilon" + + def __init__( + self, + text: str, + semantic_action: Callable[[int, tuple[str, list[str]]], None] | None = None, + ): + self.productions: OrderedDict[str, list[list[str]]] = OrderedDict() + self.start_symbol: str = "" + self._parse_productions(text) + + self.terminals: set[str] = set() + self._find_terminals() + + self.first_sets: dict[str, set[str]] = {} + self._calculate_first_sets() + + self.follow_sets: dict[str, set[str]] = {} + self._calculate_follow_sets() + + self.lookup_table: dict[str, dict[str, list[str]]] = {} + self._fill_lookup_table() + + # Сопостовляем уникальный номер с каждым правилом + self.rule_numbers = {} + rule_idx = 1 + for nt, rules in self.productions.items(): + for rule in rules: + self.rule_numbers[(nt, tuple(rule))] = rule_idx + rule_idx += 1 + + # Semantic action callback + self.semantic_action = semantic_action +\end{lstlisting} + + + \subsubsection{Метод \texttt{\_parse\_productions}} + + Метод \texttt{\_parse\_productions} выполняет разбор текстового описания грамматики и создаёт внутреннее представление продукций. Код метода представлен в листинге~\ref{lst:parse_productions}. + + Метод принимает ссылку на объект класса Grammar и строку text типа str, содержащую текстовое представление грамматики. + + Метод не возвращает значений явно, но заполняет словарь productions и устанавливает переменную start\_symbol в объекте класса. + +\begin{lstlisting}[caption={Код метода \texttt{\_parse\_productions}.}, label={lst:parse_productions}] +def _parse_productions(self, text: str): + for line in text.splitlines(): + line = line.strip() + if not line: + continue + + non_terminal, rule = line.split("->") + if self.start_symbol == "": + self.start_symbol = non_terminal.strip() + + non_terminal = non_terminal.strip() + rules = [ + [ + symbol.strip('"') + for symbol in re.findall(r"\".*?\"|\S+", rule.strip()) + if symbol.strip('"') != self.EPSILON + ] + for rule in rule.split("|") + ] + + if non_terminal not in self.productions: + self.productions[non_terminal] = [] + + self.productions[non_terminal].extend(rules) +\end{lstlisting} + + \subsubsection{Метод \texttt{\_calculate\_first\_sets}} + + Метод \texttt{\_calculate\_first\_sets} вычисляет множества FIRST для всех символов грамматики. Код метода представлен в листинге~\ref{lst:calculate_first_sets}. + + Метод принимает ссылку на объект класса Grammar. + + Метод не возвращает значений явно, но заполняет словарь first\_sets в объекте класса. + +\begin{lstlisting}[caption={Код метода \texttt{\_calculate\_first\_sets}.}, label={lst:calculate_first_sets}] +def _calculate_first_sets(self): + # Инициализация FIRST для всех символов + for non_terminal in self.productions: + self.first_sets[non_terminal] = set() + + # Для терминалов FIRST содержит только сам терминал + for terminal in self.terminals: + self.first_sets[terminal] = {terminal} + + # Вычисление FIRST для нетерминалов + changed = True + while changed: + changed = False + for non_terminal, rules in self.productions.items(): + for rule in rules: + if not rule: # Пустое правило (эпсилон) + if "" not in self.first_sets[non_terminal]: + self.first_sets[non_terminal].add("") + changed = True + else: + all_can_derive_epsilon = True + for i, symbol in enumerate(rule): + # Добавляем все символы из FIRST(symbol) кроме эпсилон + first_without_epsilon = self.first_sets[symbol] - {""} + old_size = len(self.first_sets[non_terminal]) + self.first_sets[non_terminal].update(first_without_epsilon) + if len(self.first_sets[non_terminal]) > old_size: + changed = True + + # Если symbol не может порождать эпсилон, прерываем + if "" not in self.first_sets[symbol]: + all_can_derive_epsilon = False + break + + # Если все символы в правиле могут порождать эпсилон, + # то и нетерминал может порождать эпсилон + if ( + all_can_derive_epsilon + and "" not in self.first_sets[non_terminal] + ): + self.first_sets[non_terminal].add("") + changed = True +\end{lstlisting} + + \subsubsection{Метод \texttt{\_calculate\_follow\_sets}} + + Метод \texttt{\_calculate\_follow\_sets} вычисляет множества FOLLOW для нетерминальных символов грамматики. Код метода представлен в листинге~\ref{lst:calculate_follow_sets}. + + Метод принимает ссылку на объект класса Grammar. + + Метод не возвращает значений явно, но заполняет словарь follow\_sets в объекте класса. + +\begin{lstlisting}[caption={Код метода \texttt{\_calculate\_follow\_sets}.}, label={lst:calculate_follow_sets}] +def _calculate_follow_sets(self): + # инициализировать Fo(S) = { $ }, а все остальные Fo(Ai) пустыми множествами + for non_terminal in self.productions: + self.follow_sets[non_terminal] = set() + + # Добавляем символ конца строки $ для начального символа + self.follow_sets[self.start_symbol].add("$") + + # Повторяем, пока в наборах Follow происходят изменения + changed = True + while changed: + changed = False + + # Для каждого нетерминала Aj в грамматике + for non_terminal_j, rules in self.productions.items(): + + # Для каждого правила Aj → w + for rule in rules: + + # Для каждого символа в правиле + for i, symbol in enumerate(rule): + + # Если символ - нетерминал Ai + if symbol in self.productions: + # w' - остаток правила после Ai + remainder = rule[i + 1 :] if i + 1 < len(rule) else [] + + # Если есть терминалы после Ai (w' не пусто) + if remainder: + # Вычисляем First(w') + first_of_remainder = self._first_of_sequence(remainder) + + # Если терминал a находится в First(w'), то добавляем a к Follow(Ai) + for terminal in first_of_remainder - {""}: + if terminal not in self.follow_sets[symbol]: + self.follow_sets[symbol].add(terminal) + changed = True + + # Если epsilon находится в First(w'), то добавляем Follow(Aj) к Follow(Ai) + if "" in first_of_remainder: + old_size = len(self.follow_sets[symbol]) + self.follow_sets[symbol].update( + self.follow_sets[non_terminal_j] + ) + if len(self.follow_sets[symbol]) > old_size: + changed = True + + # Если w' пусто (Ai в конце правила), то добавляем Follow(Aj) к Follow(Ai) + else: + old_size = len(self.follow_sets[symbol]) + self.follow_sets[symbol].update( + self.follow_sets[non_terminal_j] + ) + if len(self.follow_sets[symbol]) > old_size: + changed = True +\end{lstlisting} + + \subsubsection{Метод \texttt{\_first\_of\_sequence}} + + Метод \texttt{\_first\_of\_sequence} вычисляет множество FIRST для последовательности символов. Код метода представлен в листинге~\ref{lst:first_of_sequence}. + + Метод принимает ссылку на объект класса Grammar и список символов sequence. + + Метод возвращает множество (set) строк, представляющих FIRST для заданной последовательности. + +\begin{lstlisting}[caption={Код метода \texttt{\_first\_of\_sequence}.}, label={lst:first_of_sequence}] +def _first_of_sequence(self, sequence): + """Вычисляет множество FIRST для последовательности символов""" + if not sequence: + return {""} + + result = set() + all_can_derive_epsilon = True + + for symbol in sequence: + # Добавляем First(symbol) без эпсилон к результату + result.update(self.first_sets[symbol] - {""}) + + # Если symbol не может порождать эпсилон, останавливаемся + if "" not in self.first_sets[symbol]: + all_can_derive_epsilon = False + break + + # Если все символы могут порождать эпсилон, добавляем эпсилон к результату + if all_can_derive_epsilon: + result.add("") + + return result +\end{lstlisting} + + \subsubsection{Метод \texttt{\_fill\_lookup\_table}} + + Метод \texttt{\_fill\_lookup\_table} заполняет таблицу синтаксического анализа для LL(1)-грамматики. Код метода представлен в листинге~\ref{lst:fill_lookup_table}. + + Метод принимает ссылку на объект класса Grammar. + + Метод не возвращает значений явно, но заполняет словарь lookup\_table в объекте класса или вызывает исключение, если грамматика не является LL(1). + +\begin{lstlisting}[caption={Код метода \texttt{\_fill\_lookup\_table}.}, label={lst:fill_lookup_table}] +def _fill_lookup_table(self): + # Для каждого нетерминала A + for non_terminal, rules in self.productions.items(): + # Формируем таблицу синтаксического анализа + self.lookup_table[non_terminal] = {} + + # Для каждого правила A → w + for rule in rules: + # Вычисляем First(w) + first_of_rule = self._first_of_sequence(rule) + + # Для каждого терминала a в First(w) + for terminal in first_of_rule - {""}: + # Если T[A,a] уже содержит правило, грамматика не LL(1) + if terminal in self.lookup_table[non_terminal]: + raise ValueError( + "Грамматика не является LL(1)-грамматикой.\n" + f"Конфликт в ячейке [{non_terminal}, {terminal}]\n" + f"Новое правило: {non_terminal} -> {' '.join(rule)};\n" + f"Существующее правило: {non_terminal} -> {self.lookup_table[non_terminal][terminal]}" + ) + + # Добавляем правило в таблицу + self.lookup_table[non_terminal][terminal] = rule + + # Если эпсилон в First(w), то для каждого b в Follow(A) + if "" in first_of_rule: + for terminal in self.follow_sets[non_terminal]: + # Если T[A,b] уже содержит правило, грамматика не LL(1) + if terminal in self.lookup_table[non_terminal]: + raise ValueError( + "Грамматика не является LL(1)-грамматикой.\n" + f"Конфликт в ячейке [{non_terminal}, {terminal}]\n" + f"Новое правило: {non_terminal} -> {' '.join(rule)};\n" + f"Существующее правило: {non_terminal} -> {self.lookup_table[non_terminal][terminal]}" + ) + + # Добавляем правило в таблицу + self.lookup_table[non_terminal][terminal] = rule +\end{lstlisting} + + \subsubsection{Метод \texttt{format\_rules}} + + Метод \texttt{format\_rules} форматирует все правила грамматики для удобного представления. Код метода представлен в листинге~\ref{lst:format_rules}. + + Метод принимает ссылку на объект класса Grammar. + + Метод возвращает строку (str), содержащую все правила грамматики с их номерами. + +\begin{lstlisting}[caption={Код метода \texttt{format\_rules}.}, label={lst:format_rules}] +def format_rules(self) -> str: + result = [] + sorted_rules = sorted(self.rule_numbers.items(), key=lambda x: x[1]) + + for rule, number in sorted_rules: + non_terminal, symbols = rule + rule_text = f"{number}: {non_terminal} -> {' '.join(symbols)}" + result.append(rule_text) + + return "\n".join(result) +\end{lstlisting} + + \subsubsection{Метод \texttt{format\_lookup\_table}} + + Метод \texttt{format\_lookup\_table} форматирует таблицу синтаксического анализа для удобного представления. Код метода представлен в листинге~\ref{lst:format_lookup_table}. + + Метод принимает ссылку на объект класса Grammar. + + Метод возвращает строку (str), содержащую таблицу синтаксического анализа в виде таблицы с использованием библиотеки PrettyTable. + +\begin{lstlisting}[caption={Код метода \texttt{format\_lookup\_table}.}, label={lst:format_lookup_table}] +def format_lookup_table(self) -> str: + table = PrettyTable() + terminals = list(self.terminals) + table.field_names = [""] + terminals + ["$"] + + for non_terminal in self.productions: + row = [non_terminal] + for terminal in terminals + ["$"]: + if terminal in self.lookup_table[non_terminal]: + rule = self.lookup_table[non_terminal][terminal] + rule_num = self.rule_numbers.get((non_terminal, tuple(rule)), "") + row.append(f"{rule_num}: {' '.join(rule)}") + else: + row.append(" - ") + table.add_row(row) + return str(table) +\end{lstlisting} + + \subsubsection{Метод \texttt{format\_first\_sets}} + + Метод \texttt{format\_first\_sets} форматирует множества FIRST для удобного представления. Код метода представлен в листинге~\ref{lst:format_first_sets}. + + Метод принимает ссылку на объект класса Grammar. + + Метод возвращает строку (str), содержащую множества FIRST для всех символов грамматики. + +\begin{lstlisting}[caption={Код метода \texttt{format\_first\_sets}.}, label={lst:format_first_sets}] +def format_first_sets(self) -> str: + """Форматирует множества FIRST в читаемый вид.""" + result = [] + result.append("Множества FIRST:") + result.append("=" * 40) + + # Сортируем для гарантии порядка вывода + for symbol in sorted(self.first_sets.keys()): + # Заменяем пустую строку на эпсилон для лучшей читаемости + first_set = { + self.EPSILON if item == "" else item for item in self.first_sets[symbol] + } + result.append(f"FIRST({symbol}) = {{{', '.join(sorted(first_set))}}}") + + return "\n".join(result) +\end{lstlisting} + + \subsubsection{Метод \texttt{format\_follow\_sets}} + + Метод \texttt{format\_follow\_sets} форматирует множества FOLLOW для удобного представления. Код метода представлен в листинге~\ref{lst:format_follow_sets}. + + Метод принимает ссылку на объект класса Grammar. + + Метод возвращает строку (str), содержащую множества FOLLOW для всех нетерминалов грамматики. + +\begin{lstlisting}[caption={Код метода \texttt{format\_follow\_sets}.}, label={lst:format_follow_sets}] +def format_follow_sets(self) -> str: + """Форматирует множества FOLLOW в читаемый вид.""" + result = [] + result.append("Множества FOLLOW:") + result.append("=" * 40) + + # Обрабатываем только нетерминалы + for non_terminal in sorted(self.productions.keys()): + follow_set = self.follow_sets.get(non_terminal, set()) + result.append( + f"FOLLOW({non_terminal}) = {{{', '.join(sorted(follow_set))}}}" + ) + + return "\n".join(result) +\end{lstlisting} + + \subsubsection{Метод \texttt{analyze}} + + Метод \texttt{analyze} выполняет синтаксический анализ входной последовательности токенов с использованием LL(1)-алгоритма. После применения продукции метод вызывает функцию-колбэк, представляющую семантические действия, если она была задана при создании объекта класса Grammar. Код метода представлен в листинге~\ref{lst:analyze}. + + Метод принимает ссылку на объект класса Grammar и список input\_tokens типа list[str], представляющий последовательность входных токенов. + + Метод возвращает список (list) целых чисел, содержащий номера применённых правил в процессе анализа. + +\begin{lstlisting}[caption={Код метода \texttt{analyze}.}, label={lst:analyze}] +def analyze(self, input_tokens: list[str]) -> list[int]: + input_tokens = input_tokens.copy() + input_tokens += ["$"] + input_pos = 0 + + # Инициализируем стек с терминальным символом и начальным символом + stack = ["$", self.start_symbol] + + rules_applied = [] + + while stack: + top = stack[-1] + + current_symbol = ( + input_tokens[input_pos] if input_pos < len(input_tokens) else "$" + ) + + # Случай 1: Верхний символ стека - нетерминал + if top in self.productions: + # Ищем правило в таблице синтаксического анализа + if current_symbol in self.lookup_table[top]: + # Получаем правило + production = self.lookup_table[top][current_symbol] + + # Удаляем нетерминал из стека + stack.pop() + + # Добавляем правило в rules_applied + rule_number = self.rule_numbers[(top, tuple(production))] + rules_applied.append(rule_number) + + # Execute semantic action if provided + if self.semantic_action: + self.semantic_action(rule_number, (top, production)) + + # Добавляем правило в стек в обратном порядке + for symbol in reversed(production): + stack.append(symbol) + else: + expected_symbols = list(self.lookup_table[top].keys()) + raise ValueError( + f"Syntax error: expected one of {expected_symbols}, got '{current_symbol}'" + ) + + # Случай 2: Верхний символ стека - терминал + elif top != "$": + if top == current_symbol: + # Удаляем терминал из стека + stack.pop() + # Переходим к следующему символу ввода + input_pos += 1 + else: + raise ValueError( + f"Syntax error: expected '{top}', got '{current_symbol}'" + ) + + # Случай 3: Верхний символ стека - $ + else: # top == "$" + if current_symbol == "$": + # Успешный синтаксический анализ + stack.pop() # Удаляем $ из стека + else: + raise ValueError( + f"Syntax error: unexpected symbols at end of input: '{current_symbol}'" + ) + + return rules_applied +\end{lstlisting} + + \subsubsection{Метод \texttt{generate}} + + Метод \texttt{generate} генерирует случайное предложение по заданной грамматике. Код метода представлен в листинге~\ref{lst:generate}. + + Метод принимает ссылку на объект класса Grammar и необязательный параметр symbol типа str или None, указывающий начальный символ для генерации. + + Метод возвращает кортеж (tuple), содержащий список терминалов и список номеров применённых правил. + +\begin{lstlisting}[caption={Код метода \texttt{generate}.}, label={lst:generate}] +def generate(self, symbol: str | None = None) -> tuple[list[str], list[int]]: + """Генерирует предложение по заданной грамматике. Возвращает список терминалов + и список номеров применённых правил.""" + + if symbol is None: + return self.generate(self.start_symbol) + + # Если символ - терминал, возвращаем его + if symbol not in self.productions: + return [symbol], [] + + # Выбираем случайное правило для нетерминала + rules = self.productions[symbol] + chosen_rule = random.choice(rules) + + # Получаем номер выбранного правила + rule_number = self.rule_numbers[(symbol, tuple(chosen_rule))] + + # Инициализируем результаты + terminals = [] + rule_numbers = [rule_number] + + # Разворачиваем каждый символ в правой части правила + for s in chosen_rule: + sub_terminals, sub_rules = self.generate(s) + terminals.extend(sub_terminals) + rule_numbers.extend(sub_rules) + + return terminals, rule_numbers +\end{lstlisting} + + \subsubsection{Метод \texttt{generate\_derivation\_steps}} + + Метод \texttt{generate\_derivation\_steps} преобразует список номеров правил в последовательность шагов вывода. Код метода представлен в листинге~\ref{lst:generate_derivation_steps}. + + Метод принимает ссылку на объект класса Grammar и список rule\_numbers типа list[int], содержащий номера правил для применения. + + Метод возвращает список (list) строк, представляющий каждый шаг вывода предложения. + +\begin{lstlisting}[caption={Код метода \texttt{generate\_derivation\_steps}.}, label={lst:generate_derivation_steps}] +def generate_derivation_steps(self, rule_numbers: list[int]) -> list[str]: + """Преобразует список номеров правил в последовательность шагов вывода. + Возвращает список строк, представляющих каждый шаг вывода.""" + + # Получаем соответствие между номерами правил и самими правилами + rule_details = {num: rule for rule, num in self.rule_numbers.items()} + + # Начинаем с начального символа + current = self.start_symbol + steps = [current] + + # Применяем каждое правило по порядку + for rule_num in rule_numbers: + if rule_num in rule_details: + non_terminal, replacement = rule_details[rule_num] + + # Находим первое вхождение нетерминала и заменяем его + words = current.split() + for i, word in enumerate(words): + if word == non_terminal: + words[i : i + 1] = replacement + break + + current = " ".join(words) + steps.append(current) + + return steps +\end{lstlisting} + + \subsection{Функция \texttt{load\_grammar}} + + Функция \texttt{load\_grammar} загружает грамматику из файла и возвращает объект класса \texttt{Grammar}. Функция принимает необязательный параметр filename типа str, указывающий имя файла с грамматикой. Функция возвращает None в случае ошибки и объект класса Grammar в случае успешной загрузки грамматики. Код функции представлен в листинге~\ref{lst:load_grammar}. Также в ней задаются семантические действия, которые будут выполняться при применении продукций, и сохраняются в файлы множества FIRST и FOLLOW и таблица синтаксического анализа. + +\begin{lstlisting}[caption={Код функции \texttt{load\_grammar}.}, label={lst:load_grammar}] +def load_grammar(filename: str = "grammar.txt") -> Grammar | None: + try: + # #b - 2 * #a + 3 * #c + actions = [ + lambda rule_number, applied_count, _: print( + f"Rule #{rule_number} (applied x{applied_count} times): iconst_1" + ), + lambda rule_number, applied_count, _: print( + f"Rule #{rule_number} (applied x{applied_count} times): iconst_2 isub" + ), + lambda rule_number, applied_count, _: print( + f"Rule #{rule_number} (applied x{applied_count} times): iconst_1 iadd" + ), + lambda rule_number, applied_count, _: print( + f"Rule #{rule_number} (applied x{applied_count} times): iconst_1 iadd" + ), + lambda rule_number, applied_count, _: print( + f"Rule #{rule_number} (applied x{applied_count} times): iconst_3 iadd" + ), + ] + + with open(filename, "r", encoding="utf-8") as file: + text = file.read() + grammar = Grammar(text, ActionsListWithAppliedCount(actions)) + + # Сохраняем информацию о грамматике в файлы + with open("grammar_rules.txt", "w", encoding="utf-8") as output_file: + output_file.write(grammar.format_rules()) + print("Правила грамматики с номерами сохранены в grammar_rules.txt") + + with open("grammar_lookup_table.txt", "w", encoding="utf-8") as output_file: + output_file.write(grammar.format_lookup_table()) + print( + "Таблица синтаксического анализа сохранена в grammar_lookup_table.txt" + ) + + with open("grammar_first.txt", "w", encoding="utf-8") as output_file: + output_file.write(grammar.format_first_sets()) + print("Множества FIRST сохранены в grammar_first.txt") + + with open("grammar_follow.txt", "w", encoding="utf-8") as output_file: + output_file.write(grammar.format_follow_sets()) + print("Множества FOLLOW сохранены в grammar_follow.txt") + + print(f"Грамматика успешно загружена из файла {filename}") + return grammar + except FileNotFoundError: + print(f"Ошибка: Файл {filename} не найден") + return None + except ValueError as e: + print(f"Ошибка при загрузке грамматики: {e}") + return None + except Exception as e: + print(f"Неизвестная ошибка: {e}") + return None +\end{lstlisting} + + \subsection{Функция \texttt{main}} + +Функция \texttt{main} реализует интерактивную консольную оболочку для взаимодействия с пользователем. Код функции представлен в листинге~\ref{lst:main}. + +\begin{lstlisting}[caption={Код функции \texttt{main}.}, label={lst:main}] +def main(): + print("Программа для работы с LL(1)-грамматиками") + print("=" * 60) + print("Варианты команд:") + print(" - load <файл> - загрузить грамматику из файла (по умолчанию grammar.txt)") + print(" - check <строка> - проверить, соответствует ли строка грамматике") + print(" - generate - сгенерировать случайную строку по грамматике") + print(" - exit - выход из программы") + print("=" * 60) + + # Загружаем грамматику по умолчанию при старте + grammar = load_grammar() + + while True: + command = input("\nВведите команду: ").strip() + + if not command: + continue + + parts = command.split(maxsplit=1) + cmd = parts[0].lower() + + if cmd == "exit": + print("Выход из программы.") + break + + elif cmd == "load": + filename = "grammar.txt" + if len(parts) > 1: + filename = parts[1].strip() + grammar = load_grammar(filename) + + elif cmd == "check": + input_string = "" + if len(parts) > 1: + input_string = parts[1].strip() + check_string(grammar, input_string) + + elif cmd == "generate": + generate_string(grammar) + + else: + print(f"Неизвестная команда: {cmd}") + print("Доступные команды: load, check, generate, exit") +\end{lstlisting} + + \newpage + \section{Результаты работы программы} + Результаты работы программы представлены на Рис.~\ref{fig:result1}. + + \begin{figure}[h!] + \centering + \includegraphics[width=0.9\linewidth]{img/result1.png} + \caption{Результаты работы программы.} + \label{fig:result1} + \end{figure} + + \newpage + + \begin{figure}[h!] + \centering + \includegraphics[width=0.6\linewidth]{img/wrong.png} + \caption{Реакция программы на некорректный пользовательский ввод.} + \label{fig:wrong} + \end{figure} + + На Рис.~\ref{fig:wrong} представлена реакция программы на некорректный пользовательский ввод. + +\begin{lstlisting}[caption={Содержимое файла \texttt{grammar\_first.txt}.}, label={lst:grammar_first}, basicstyle=\ttfamily] +Множества FIRST: +======================================== +FIRST(A) = {a, b} +FIRST(B) = {b} +FIRST(C) = {c} +FIRST(S) = {b} +FIRST(a) = {a} +FIRST(b) = {b} +FIRST(c) = {c} +\end{lstlisting} + +\begin{lstlisting}[caption={Содержимое файла \texttt{grammar\_follow.txt}.}, label={lst:grammar_follow}, basicstyle=\ttfamily] +Множества FOLLOW: +======================================== +FOLLOW(A) = {b} +FOLLOW(B) = {a, b, c} +FOLLOW(C) = {b} +FOLLOW(S) = {$} +\end{lstlisting} + +\begin{lstlisting}[caption={Содержимое файла \texttt{grammar\_lookup\_table.txt}.}, label={lst:grammar_lookup_table}, basicstyle=\ttfamily] ++---+------------+----------+--------+-----+ +| | a | b | c | $ | ++---+------------+----------+--------+-----+ +| S | - | 1: B A b | - | - | +| A | 2: a A B C | 3: b B | - | - | +| B | - | 4: b | - | - | +| C | - | - | 5: c A | - | ++---+------------+----------+--------+-----+ +\end{lstlisting} + + В листингах~\ref{lst:grammar_first}, \ref{lst:grammar_follow} и \ref{lst:grammar_lookup_table} представлено содержимое файлов \texttt{grammar\_first.txt}, \texttt{grammar\_follow.txt} и \texttt{grammar\_lookup\_table.txt} соответственно. + + + \newpage + \section*{Заключение} + \addcontentsline{toc}{section}{Заключение} + % В ходе выполнения лабораторной работы была построена контекстно-свободная грамматика для подмножества немецкого языка, описывающая простое прошедшее время Претерит. На основе разработанной грамматики была реализована программа, которая проверяет принадлежность входной строки заданному языку и генерирует случайные корректные предложения. Для анализа предложений использовался алгоритм LL(1)-разбора, основанный на построении множеств FIRST и FOLLOW для всех нетерминалов грамматики и создании таблицы синтаксического анализа. + + % Из достоинств выполнения лабораторной работы можно выделить возможность задания грамматики в отдельном текстовом файле, что позволяет легко изменять и расширять её без модификации программного кода. Также программа автоматически проверяет, что введенная грамматика является LL(1)-грамматикой. В противном случае, программа выводит сообщение об ошибке, в указывается на конкретные правила грамматики, между выбором которых возникает неоднозначность. + + % К недостаткам текущей реализации можно отнести ограниченность словарного запаса, что сужает разнообразие генерируемых предложений. Также алгоритм генерации не контролирует длину предложений, что может приводить к избыточно длинным или коротким конструкциям. В текущей версии система не учитывает некоторые грамматические особенности немецкого языка, например, склонение прилагательных и согласование артиклей с родом существительных. + + % Функционал программы несложно масштабировать. Грамматику легко расширять, добавляя новые слова и правила в текстовый файл без необходимости изменения программного кода. Класс Grammar может служить хорошей основой для создания полноценного LL(k) анализатора. + + % На выполнение лабораторной работы ушло около 12 часов. Работа была выполнена в среде разработки Visual Studio Code. Программа написана на Python версии 3.13. + +\newpage +\section*{Список литературы} +\addcontentsline{toc}{section}{Список литературы} + +\vspace{-1.5cm} +\begin{thebibliography}{0} + \bibitem{vostrov} + Востров, А.В. Курс лекций по дисциплине <<Математическая логика>>. URL \url{https://tema.spbstu.ru/compiler/} (дата обращения 01.04.2025 г.) + \bibitem{lutz} + Лутц, М. Изучаем Python. 5-е изд. / М. Лутц. — СПб.: Питер, 2019. — 1216 с. +\end{thebibliography} + +\end{document} \ No newline at end of file