【发布时间】:2010-10-17 11:18:25
【问题描述】:
如果 TM 识别语言并进入接受或拒绝状态,则语言是可判定的。作为开发者。我认为这很重要,因为这意味着我们可以确定程序是否包含缓冲区溢出或死锁。此外,以下问题是不可判定的:
- 程序是否曾经访问过未初始化的变量。
- 两个上下文无关语法是否描述相同的语言。
- 如果子例程的参数是通过引用传递还是通过复制结果传递,是否会有所不同
就可判定性而言,您认为可判定性的关键点是什么以及为什么可判定性很重要(尤其是对开发人员而言)。
注意:答案中的要点很好 - 我可以自己查找主题。我只是想知道要点是什么。
【问题讨论】:
-
您的第一点和第三点取决于语言。在一种根本不允许变量未初始化的语言中,当然可以完全确定程序是否访问未初始化的变量(答案始终是否定的)。即使它在某些情况下允许未初始化的变量,它仍然可能是可确定的(取决于这些情况是什么)。
标签: computer-science computation-theory decidable