为了序言,我对这种东西的了解是微不足道的.
无论如何,我一直在开发一个无上下文的语法来描述alegbraic表达式的结构,所以我可以自学一下CYK解析算法是如何工作的.我理解这样的结构如何只使用中缀代数表达式,但我无法理解如何开发一个可以处理" - "运算符的一元和二元定义的语法.
作为参考,这是我在CNF中编写的语法(其中S是起始符号):
S - > x
A - > OS
S - > LB
B - > SR
S - > KS
O - > +
O - > -
O - >*
O - >/
O - > ^
K - > -
L - >(
R - >)
问题是CYK解析算法如何在遇到" - "运算符时提前知道是否在S - > KS和A - > OS之间做出决定吗?这样的语法上下文了吗?最重要的是,由于编程语言可以处理二进制和一元减号的语言,我应该如何合理地解析它?