10.02.2019 Views

opora

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

KAPITOLA 4. BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY60<br />

Obrázek 4.7: Derivační stromy věty i + i ∗ i<br />

Obrázek 4.8: Derivační strom věty i + i ∗ i v G 2<br />

použije víceznačné gramatiky a nežádoucí interpretace víceznačné věty se vyloučí<br />

dodatečným sémantickým pravidlem.<br />

Příklad 4.9 Jedním z nejznámějších příkladů víceznačnosti v programovacích<br />

jazycích jsou konstrukce s then a else. Skutečně, přepisovací pravidla<br />

S → if b then S else S<br />

S → if b then S<br />

S → p<br />

kde b značí booleovský výraz a p jiný, než podmíněný příkaz, vedou k víceznačné<br />

interpretaci podmíněného příkazu. Např. k větě<br />

if b then if b then p else p<br />

existují dva různé derivační stromy. Zatímco Algol 60 tuto konstrukci nedovoloval<br />

(za then musel být složený příkaz), jazyk Pascal uvedenou víceznačnost řeší

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!