Homework Handout 2
Context Free Grammars, Derivations, and Parse Trees

CISC 470/670 - Programming Languages
Fall 2000

                    (Due at 4 pm on Friday, September 15))

NOTE: You should do this homework on your own, not with the help of others
in the class or outside the class.  You may ask for clarification of questions
from the TA or instructor.

PURPOSE: The purpose of this homework is to 
gain some experience reading and writing context free grammars.

1. Consider the context free grammar below in which nonterminals are 
written in upper case and terminals are written in lower case:

SENTENCE ::= PERSON APPRECIATES MUSIC | MUSIC APPRECIATES PERSON 
MUSIC ::= rocknroll | rap | jazz 
APPRECIATES ::= likes | loves | adores
PERSON ::= george | martha 

(a) Give a derivation and parse tree for the sentence:

	george loves rocknroll

(b) Is 
	rocknroll loves rocknroll 
    a legal sentence?  Why or why not?

(c) Show 5 legal sentences in this language.

(d) Show 5 illegal sentences in this language using the same set of
terminals.

2. A palindrome is a sequence of terminal symbols that
reads the same as its reverse.  For example, "mom" and madam i'm adam"
are both palindromes (up to the punctuation in the latter case).
Write a context free grammar for palindromes 
over the alphabet {a, b, c}.

Last Change: September 3, 2000 / pollock@cis.udel.edu