Kontrolltöö 25.10.99

Smil-süntaksi testimiseks kasutatud tekstid:
korrektse süntaksiga: smil_examples;smil2.smi, smil11.smi (regioonil puudub id), smil12.smi (kasutatakse defineerimata regiooni), smil13.smi (puudub avav tag <smil>), smil14.smi (vigane tag <reg id=... ); kommentaarides lahendustele on tavaliselt viidatud (link) loodud skanneri poolt vastava sisendiga genereeritud väljundile

Valemite keele testimiseks kasutatud tekstid:
korrektse süntaksiga valem1.txt
vigase süntaksiga (avaldises puudub korrutusmärk *): valem2.txt
vigase süntaksiga (tekstis järjest kaks omistusmärki ::=::=): valem3.txt
vigase süntaksiga (avaldises järjest +- ): valem4.txt

Brodski, Dmitri

4-

Ülesanne 1 Grammatika (kontekstivaba) - OK, flex-program esimene.lex annab 2 veateadet
Ülesanne 2: -
Ülesanne 3
: -
Ülesanne 4
  Flex-programmi neljas.lex abil genereeritud skanner annab korrektse sisendi valemt1.txt korral korrektse väljundi brodsk41.txt, kuid üheski süntaksiveaga sisendis viga ei leita (väljundid brodsk42.txt, brodsk43.txt, brodsk44.txt)

Haljak, Antti

5-

Saab hakkama korrektsete sisenditega ja tunneb ära ka vea smil13.smi-s (kuigi alles kogu sisendteksti lõpus) , kuid vigaselt kirjutatud tag <reg .. smil14.smi-s tekitab täieliku segaduse; väljund kordab peaaegu täpselt sisendit

Kljubin, Aleksandr

5

teie lex-programm teeb kõik näited õieti, kuid ei genereeri mingit väljundteksti ? (Teie traceMessage-funktsioone veidi muutes on lihtne genereerida väljund)

Kuhi, Rainer

3-

Grammatika on üldiselt OK (miks identifikaatoris ei või kasutada suurtähti?), kuid väidet "See grammatika on regulaarne" peab põhjendama (näiteks keelt tunnistava lõpliku automaadi visandiga); flex-programm on täiesti "mööda" (kogu smil süntaksis pole omistamist "::=", aritmeetilisi avaldisi, reaalarve jne)

Mandre, Indrek

5-

Grammatika on vigane (ja sellisel kujul see ei vasta loengus esitatud regulaarse grammatika definitsioonile), see grammatika lubab näiteks tagide jadasid <smil><head><layout></layout><region>... (regioonide definitsioon algab pärast </layout>-tagi), <layout> tag-i võib lõpetada </root-layout> jne;

Linux-i ja Unix-i all töötavaid programme ma ei saa kontrollida; töös kasutatavtes arvutites oli (vaid) gnu c ja Teie programmid peavad töötama sellega.

Manuilov, Konstantin

4-

Ülesanne 1: smil.flx annab 16 süntaksiviga, esimene reas 44 (üleliigne ")" )

Ülesanne 3: Automaadi graafil puudub oleku "A" jaoks üleminek sisendiga "0" (sama viga on ka grammatikas); olekud "A" ja "D" võiks kokku kleepida;

Ülesanne. 4: Teie 4.flx põhjal genereeritud skanner ei leia ühegi vigase sisendiga valem2.txt , valem3.txt, valem4.txt genereeritud väljundis manuil42.txt, manuil43.txt, manuil44.txt viga

Nisamedtinov, Ilhan

3

Ülesanne 2. Teie selgitusest "Kuna ühe leheni jõuab mööda tuletuspuu erinevaid oksi läbides see on antud produktsioonide puhul võimalik)." ei saa ma kahjuks aru; siin peaks esitama konkreetselt, millise genereeritava stringi tuletuspuust ja millistest teedest räägitakse.

Ülesanne 3: Automaat on põhiliselt korrektne, kuid mittedeterministlik (produktsioonid (q0,"1")->qf, (q0,"1")->q1) ja pole kõikjal määratud (oleku qf ja sisendi "1" jaoks pole üleminekut); olekud qf,q1 võiks samastada, samuti nagu olekud q0, q3. Grammatika on vigane, sest produktsioonid A->AB, A->1, B->0 võimaldavad genereerida üïkskõik millise arvu "1"-dedega jadasid

Ülesanne 4. Teie flex-sisendi abil genereeritud skanner väljastab nii korrektse näite valemt1.txt kui ka vigase näite valemt2.txt sisestamisel arusaamatu veateate :"Muutuja A omistamine! Viga!" (väljundid nisam41.txt, nisam42.txt) , ka käsu exit(0) väljakommenteerimise järel

Oja, Jaanek

4+

Ülesanne 1 Grammatika (kontekstivaba) - OK
Ülesanne 2: OK
Ülesanne 3
: OK
Ülesanne 4
 Teie Flex-sisend annab 10 süntaksiviga

Pihlak, Priit

2

Ülesanne 1 Grammatika (kontekstivaba) - OK
Ülesanne 2: Lause "On, sest ei ole voimalik konstrueerida kahte erinevat derivatsioonipuud" vajab täpsustust (tegelikult see ei ole ühene).
Ülesanne 3
: Lause "See on regulaarne grammatika, sest koik produktsioonid tulevad kujul X->Ya voi X->Y" ei ole põhjendus - tuleks esitada selline grammatika; Teie automaat ei tunnista mitte ülesandes esitatud keelt (ühtede arv=1 (mod 3), vaid keele (ühtede arv = 0(mod 4)
Ülesanne 4
 Teie Flex-sisend number.lex annab 11 süntaksiviga

Seljamäe, Kaimar

3

1yl_reg.txt grammatika küll ei ole (mis on siin terminalid, mis mitteterminalid ja kus on produktsioonid?); sellest võiks saada SMIL-tekste kirjeldava regulaarse avaldise (idee on korrektne)
Teie scan.lex abil genereeritud skanner (kompileeritud gcc-ga) ei anna ühegi näidisfailiga valem1.txt, valem2.txt, valem2.txt, valem4.txt, mingit väljundit ?!
Ülesanne 3: OK

Silinski, Dmitri

3

Ülesanne 1: kon1.lex annab 10 süntaksiviga

Ülesanne 3: Teie joonistatud automaat ei tunnista mitte ülesandes antud keelt (ühtede arv =1(mod 3)), vaid keele (ühtede arv=0 (mod 4)); väidet "keel on regulaarne" peab põhjendama
Ülesanne 4: Teie kon4.lex abil genereeritud skanner teisendab korrektse sisendi (nimede tabelit ei moodustata), kuid vigaste sisendiga saadud väljundtekstides sil42.txt, sil43.txt, sil44.txt pole mingeid vigu avastatud

Tkatšov, Andrei

5-

SMIL-programmi kehas (body) mingeid uusi identifikaatoreid enam ei defineerita (ega kanta nimede tabelisse), siin tuleb vaid kontrollida, kas kõik kasutatud regioonid on defineeritud!

 

 

 

 


Küsimused, probleemid:

jaak@cc.ttu.ee


Tagasi loengute sisukorra juurde