Question
JAVA or C++ program Define a context-free grammar for each of the languages described below. Then write a test program to implement the grammar as
JAVA or C++ program
Define a context-free grammar for each of the languages described below. Then write a test program to implement the grammar as an instance of your CFG class. Each context-free grammar should be defined in a separate test program.
A CFG for alphabet {a,b} that recognizes the language consisting of all strings that contain exactly one b, have 2N a's (N >= 0, N is an integer) before the b, and 2N+1 a's after the b. Test your program with the following input strings:
ba, aaabaaaa, aabaaa, abaa, aaaabaaa
Sample test program for CFG class
// Test Context-Free Grammar Class
import java.io.*;
public class TestCFG
{
public static void main(String[] args)
{
// Language: strings that contain 0+ b's, followed by 2+ a's,
// followed by 1 b, and ending with 2+ a's.
String[] C = {"S=>bS",
"S=>aaT",
"T=>aT",
"T=>bU",
"U=>Ua",
"U=>aa"};
String inString, startWkString;
boolean accept1;
CFG CFG1 = new CFG(C);
if(args.length >= 1)
{
// Input string is command line parameter
inString = args[0];
char[] startNonTerm = new char[1];
startNonTerm[0] = CFG1.getStartNT();
startWkString = new String(startNonTerm);
accept1 = CFG1.processData(inString, startWkString);
System.out.println(" Accept String? " + accept1);
}
} // end main
} // end class
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started