GRUDAT, ÖVNING 9 Syntax och rekursiv medåkning 1 SYNTAX FÖR TROENDE (Efter tildatenta 7 mars 1998, uppgift 6.) DU TROR INTE ATT JAG VET ATT DU INTE TROR ATT JAG TROR. Skriv en syntax för meningar av denna typ. Använd symbolerna , , , }. Endast ord ur exempelmeningen kan förekomma, men även den enkla meningen DU VET ska uppfylla syntaxen. Observera att INTE placeras olika i huvudsats och attsats. Beskriv i ord hur ett program kan undersöka om meningar följer din syntax! Vilka procedurer behövs? 2 GENSYNTAX (Tildatentan 17 april 1999, uppgift 6.) En DNA-molekyl kan beskrivas som ett mycket långt ord i alfabetet CGAT, alltså av typen GTCTAAGCCCTAAGCG. Alla gener börjar med CTT och slutar med antingen TAG eller GAG. Antalet bokstäver i genen är alltid delbart med tre. Skriv en grammatik för sådana bokstavsföljder. 3 SYNTAX FÖR FUNKTIONSANROP (Tildatentan 21 mars 1998, uppgift 6.) F(x,P(a,b),y,G(z,H(a),x,P(y,y)),F(F(F(c)))) Skriv en kontextfri grammatik för funktionsanrop av denna typ. Funktionsnamn är alltid en stor bokstav, variabelnamn alltid en liten bokstav. Alla anrop ska ha minst en parameter men syntaxen kollar som synes inte att varje anrop till en funktion har samma parameterantal. Använd till exempel symbolerna , , , . Beskriv i ord hur ett program kan undersöka om ett funktionsanrop följer din syntax! Vilka pythonfunktioner behöver du skriva? 4 FRUKTSALLADSSYNTAX (Tildatentan 18 mars 2000, uppgift 6.) Skriv en syntax för fruktsalladsbenämningar av typen BANAN-, MELON-, MANGO- OCH ANANASSALLAD Det kan ingå valfritt antal frukter, till exempel FIKON- OCH PÄRONSALLAD men åtminstone en frukt måste ingå, till exempel PASSIONSFRUKTSALLAD Man kan anta att det redan finns en definition ::= BANAN | MELON | CITRON | ... Beskriv kortfattat hur ett program för fruktsalladssyntaxkoll kan fungera. 5 WEBBSYNTAX (Tildatentan 31 aug 2000, uppgift 6.) En webbfil innehåller dels webbsidans text, dels taggar för radbrytningar och indragningar. Taggen
ger ny rad och för att få indragning av ett textavsnitt skriver man taggen före och taggen } efter. Exempelvis ger webbfilen Organismer
Djur
Flugor
Sillar
Svamp
Flugsvamp
Sillkremla
följande webbsideutseende. Organismer Djur Flugor Sillar Svamp Flugsvamp Sillkremla Skriv en syntax för webbfiler där endast dessa taggar och vanlig text förekommer. Du kan få använda för att beteckna godtycklig taggfri text. 6 RINGDANSSYNTAX (Tildatentan 16jan 2001, uppgift 6.) Vid dansen kring granen sjungs texter med många upprepningar. Ett ekonomiskt skrivsätt är följande. Nu är glada julen 3[slut] julegranen kastas 3[ut] 2[2[Små grodorna] är lustiga att se] Skriv en syntax för detta skrivsätt. Du får använda symbolerna och utan definition, du får anta att högst nio upprepningar förekommer och du kan strunta i mellanslag och skiljetecken. Det ska inte kunna vara tomt mellan hakparenteserna. Skriv syntaxen så att den lätt kan göras om till ett syntaxkontrollprogram!