S→Abc A→a|e B→ble这个文法为什么不是LL(1)的
时间: 2024-05-20 18:12:16 浏览: 22
这个文法不是LL(1)的,因为存在左递归和First集合与Follow集合的交集不为空,具体如下:
1. 存在左递归:非终结符A可以推导出自身,即A→Aβ,其中β为任意符号串。这会导致LL(1)分析表中出现“左递归”或“无限递归”的情况,从而无法进行语法分析。
2. First集合与Follow集合的交集不为空:对于非终结符A,有A→a和A→Bc两个产生式,其中a∈First(A),c∈Follow(A),且B的First集合包含ε。这会导致LL(1)分析表中同一单元格出现多个产生式,从而无法确定正确的语法分析路径。
因此,这个文法不是LL(1)的。
相关问题
下面文法中哪个是LL(1)的,说明理由。 (1) S→Abc A→a|e B→ble (2)S→Ab A→a|B|e B→b|e
第二个文法是LL(1)的,因为它满足LL(1)文法的三个条件:
1. 没有左递归:该文法中没有左递归。
2. 没有公共左缀:该文法中没有公共左缀。
3. 可以用一个表来处理所有的FIRST集和FOLLOW集,并且没有冲突:对于该文法,可以构造出FIRST和FOLLOW集合,并且它们不会产生冲突,因此可以用一个表来处理它们。
BLE为什么设备A可以用B设备的public key去验证B设备用CSRK生成的签名?
BLE中设备之间的认证和加密是通过配对和密钥派生来实现的。在BLE配对中,每个设备都会生成一个长期密钥LTK(Long-Term Key),同时也会生成一个临时密钥STK(Short-Term Key)。在配对成功后,设备之间可以使用LTK来加密和解密通信内容,同时使用STK来生成会话密钥。
在BLE中,设备之间的认证是通过公钥加密和签名来实现的。在配对时,设备A会向设备B发送自己的公钥,设备B会使用该公钥对设备A发送的随机数进行加密,并将结果发送回设备A。设备A收到加密后的随机数后,使用自己的私钥进行解密,如果解密成功,则说明设备B已经认证通过。
在BLE中,设备之间的签名是通过CSRK(Connection Signature Resolving Key)来实现的。CSRK是在配对时生成的,用于验证设备之间的数据完整性。设备B使用自己的CSRK对数据进行签名,设备A可以使用设备B的公钥来验证数据的完整性。因为设备B的公钥是在配对时由设备A保存的,所以设备A可以使用设备B的公钥来验证设备B生成的签名。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)