【发布时间】:2013-11-08 02:08:11
【问题描述】:
由于以下两个问题,我的程序崩溃了,这让我很沮丧:
- 无限循环(例如 C# 或 Javascript)
- SQL 连接我忘记添加连接子句的地方
如果编译器足够称职,这些问题似乎是可以预防的。如何以编程方式预防这些问题?
【问题讨论】:
-
简单。不要写无限循环,也不要忘记添加一个JOIN。
-
如果笛卡尔积是您真正想要的怎么办?毕竟,它们有时很有用。但是要回答这个问题,即使只是在一个神秘的评论中,它也被称为The Halting Problem。事实证明,检测无限循环(可能)是一个np-Hard 问题。
-
编译器不应该是“智能的”,这是程序员应该在关系中提供的。编译器也应该按照你告诉他们的去做。
-
另外,如果你学过编程,你可能会意识到编写一个可以判断其他程序是否会停止的程序存在一定的问题。
-
@JoelCoehoorn 这不仅仅是 NP 难,这是不可能的。
标签: c# sql loops cartesian-product