出一道与编译相关的计算理论问题

发布于 2022-09-18 18:32:21 字数 90 浏览 21 评论 0

我们知道,编译程序也是程序,等价于一DFA,接受的是正则语言.可是,我们知道,高级语言代码并非用正则语言编写,那么按理,编译程序是处理不了高级语言的,可是为什么编译程序能够处理呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

倦话 2022-09-25 18:32:21

那不是一遍一遍的分析和转换就转换的正则化了么。

离去的眼神 2022-09-25 18:32:21

这不就是编译原理吗。
转成有限状态机

伊面 2022-09-25 18:32:21

我要问的是,DFA(有限状态机)只能接受正则语言,而高级语言看起来并不是正则语言,所以它按理不能接受.可是我们发现我们的编译程序(一个DFA)却能很好的接受这些看起来并不是正则语言的高级语言.为什么?

橘和柠 2022-09-25 18:32:21

我觉得你的说法有点错误。编译程序不单单等于DFA,接受的也不单单是正则语言。你所说的只是正则语言所对应的编译器。其实,正则语言的表达能力是比较有限的,我们通常用的高级语言,比如C语言,是用上下文无关描述的。

眸中客 2022-09-25 18:32:21

原帖由 cjaizss 于 2009-4-1 21:06 发表
我要问的是,DFA(有限状态机)只能接受正则语言,而高级语言看起来并不是正则语言,所以它按理不能接受.可是我们发现我们的编译程序(一个DFA)却能很好的接受这些看起来并不是正则语言的高级语言.为什么?

不好意思,没看完你的描述。我想问一下,有这样的事情吗?比如?

走过海棠暮 2022-09-25 18:32:21

原帖由 wongyeam 于 2009-4-2 11:27 发表
我觉得你的说法有点错误。编译程序不单单等于DFA,接受的也不单单是正则语言。你所说的只是正则语言所对应的编译器。其实,正则语言的表达能力是比较有限的,我们通常用的高级语言,比如C语言,是用上下文无关描 ...

这一点不会错的,任何可以处理非正则语言的机器只会出现在形式系统中,现实中是不会出现的,只要学过了计算理论就知道其原因.

冬天旳寂寞 2022-09-25 18:32:21

正则语言的表达能力的确有限,有限状态机的处理能力和正则语言的表达能力一样非常有限.可惜的是,我们周围的一切与数字技术相关的东西其能力都只是有限状态机的能力.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文