上下文无关文法

上下文无关文法(context-free gammar):

指文法的前后(上下)没有关系,如文法:

_statement ::= _name is _name's friend.

是上下文无关文法,因为文中出现的两个 name 可以不同(也可以相同,假设自己可以是自己的朋友)。而文法:

_statement ::= _name{0} likes _name{1}, and _name{1} likes _name{0} too.

是上下文相关文法,文中的两个_name{0}必须有同样的扩展,两个_name{1}也必须有同样的扩展。如:tom likes june, and june likes tom too. 即后文中所使用的扩展必须与前文中的扩展相同(或者相关)。同样下文也是上下文相关文法:

_statement ::= _fullname 's last name is _lastname{_lastname must have same extends with _lastname in _fullname}
_fullname ::= _firstname _lastname
_firstname ::= Richard | Tom | Bill
_lastname ::= Stevens | Hanks | Gates


在编译原理中一般把上下文相关的验证放在语义分析中,而不是语法分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值