正则表达式

首先,我不知道这是否是我要求的正确翻译。 在我的一门课程中,我们只是盯着学习正则表达式,正式语言等等。
Alphabet {1,0,S,R}
Terminals {1,0}
Rules:

S ::= 0
S ::= 1
S ::= 1R
R ::= 1R
R ::= 0R
R ::= 1
R ::= 0
在这种情况下,让我说我从1R开始,然后我可以继续使用1R或0R。 如果我从1R开始,那么只需1 ....那么句子(在这种情况下是二进制数)是完整的吗?因为事后我不能“追加”一些东西,比如1R然后我选择1然后再选择1R? 在此先感谢,如果不正确,请重新/移动帖子。 添加:
0  at rule S ::= 0  
1  with S ::= 1  
10 with S ::= 1R, so R ::= 0
如何生成1100110? 这不是功课,它是powerpoint的一个例子/问题。我不明白这是怎么做的。     
已邀请:
你所拥有的是一种常规语言,使用无上下文语法定义。定义相同语言的正则表达式是
(0)U(1{0,1}*)
。简单来说,常规语言包含以1开头的所有字符串0和1,以及字符串0。 无上下文语法以一些初始非终端符号开始,在这种情况下它似乎是S.然后,您可以根据列出的生产规则用符号串替换任何非终端符号。当字符串不包含非终端符号时,它“完成”。 在您的示例中,如果要替换的字符串中当前存在S或R,则只能“选择1R”。正如这个语法一样,第一次将R替换为1时,您不再需要替换任何非终端,并且完成了字符串的生成。 编辑:这是1100110的制作痕迹。
S  
1R         via S ::= 1R
11R        via R ::= 1R
110R       via R ::= 0R
1100R      via R ::= 0R
11001R     via R ::= 1R
110011R    via R ::= 1R
1100110    via R ::= 0
    
你是对的。不允许附加,只能替换。但是使用这种语言,你可以通过选择“R :: = 1R”或“R :: = 0R”继续使你的字符串更长,然后再次替换R。     
  如果我从1R开始,那么只需1 ....那么句子(在这种情况下是二进制数)是完整的吗? 是的,这是正确的。句子11匹配S = 1R = 11。 但是使用这种语法,你总是可以使用R = 1R或R = 0R来为你的句子添加越来越多的数字。 编辑:回答问题编辑:   如何生成1100110? 1100110 = S = 1R = 11R = 110R = 1100R = 11001R = 110011R = 1100110 希望能帮助您理解。 祝好运!     

要回复问题请先登录注册