Introduction to Syntax/Exercise 1: Difference between revisions

From Wiki**3

< Introduction to Syntax
(New page: == The Problem == Consider the following grammar: <text> bexpr -> bexpr or bexpr | bterm bterm -> bterm and bterm | bfactor bfactor -> not bfactor | ( bexpr ) | true | false </text>...)
 
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
== The Problem ==
#REDIRECT [[ist:Introduction to Syntax/Exercise 1]]
 
Consider the following grammar:
<text>
bexpr -> bexpr or bexpr | bterm
bterm -> bterm and bterm | bfactor
bfactor -> not bfactor | ( bexpr ) | true | false
</text>
 
# Identify the terminal and non-terminal symbols of the grammar.
# Show that the grammar is ambiguous by deriving two different trees for the same input sequence.
# Write a non-ambiguous grammar for the same language.
# Build the tree corresponding to the analysis of the following input sequence: not ( true or false and true )
 
== Solution ==
 
[[category:Compilers]]
[[category:Teaching]]

Latest revision as of 22:15, 5 December 2018