编译过程中的前端,词法,语法,语义分析算得上人工智能吗

我猜题主的问题在于,这不就是一种语言处理吗。
是的,这就是一种语言处理手段,最传统的rule-based/knowledge based的处理手段。
这种AI有个致命的问题在于不能持续学习,依赖于你的rule/knowledge,说白了就是傻。
另外一个问题在于,自然语言不是上下文无关的语言,rule based做自然语言处理已经穷途末路。
特别是对于短句的处理上,非常棘手:
比如如下例子:
我们研究所有东西。
究竟是:
我们/研究/所有/东西。
还是:
我们/研究所/有/东西。
如果你基于上下文相关文法去构建产生式,因为这里缺乏上下文,那么只能parse失败。
但是通过机器学习,可以通过概率判断是第一种分词见得多还是第二种多以期最大程度的消歧义。
又如:
中国队大败韩国队。
只有一种分词:
中国队/大败/韩国队
如果你基于上下文相关文法去构建产生式,这里肯定可以处理正确的分词。然而这句还是歧义句,究竟是中国队赢了还是韩国队赢了?依然要看上下文,这就意味着,你要么把同一个token根据上下文强行当成两种token,那么我们回到了情况一,要么就接受同一个产生式也还是有歧义的这一事实。
再比如,自然语言里的文化背景:
蛤。
请问你要如何构建产生式来分辨这个“蛤”到底是不是网友的玩笑?
【编译过程中的前端,词法,语法,语义分析算得上人工智能吗】 所以rule based 的自然语言处理是行不通的。

■网友
算。但这问题有意义吗…编译器是根据给定逻辑规则(grammar)通过传感器(parser)观察变化的环境(source code),并且对环境作出回应或影响(error message、code gen)。算是典型而又简单的Rule-Based AI


    推荐阅读