【发布时间】:2010-08-12 12:41:49
【问题描述】:
我想听听关于如何在关键任务实时应用程序中安全使用 C++ 的各种意见。
更准确地说,可能可以创建一些宏/模板/类库以进行安全数据操作(密封溢出,零除产生无穷大值或除法仅适用于特殊的“非零”数据类型),具有边界检查的数组和 foreach 循环、安全智能指针(例如,类似于 boost shared_ptr)甚至是安全的多线程/分布式模型(消息传递和类似的轻量级进程在 Erlang 语言中定义)。
然后我们禁止一些危险的 c/c++ 构造,例如原始指针、一些原始类型、本机“新”运算符和本机 c/c++ 数组(当然,对于应用程序程序员,而不是对于库编写者)。理想情况下,我们应该创建一个特殊的预处理器/检查器,至少我们必须有一些正式的检查程序,可以使用某些工具或由某些人手动将其应用于源。
所以,我的问题:
1) 是否有任何现有的库/项目利用这种想法? (嵌入式 c++ 显然不是想要的那种)?
2) 这到底是不是个好主意?或者它可能仅对另一种假设语言的原型有用?还是完全无法使用?
3) 也欢迎对此问题的任何其他想法(或链接)
对不起,如果这个问题实际上不是一个问题、离题、重复等, 但我还没有找到更合适的地方问它
【问题讨论】:
-
只使用 Ada 而不是将 C++ 转换为 Ada 可能会更快。