|
微软开源了 Checked C ,这是一个 C 言语的扩展版本,能够用于解决 C 言语中的一系列平安相干的隐患。正如其名字所示,Checked C 为 C 言语减少了反省,这个反省能够帮忙开发者反省常见的编程过错,好比缓存区强占buffer overruns、内存拜候越界、不正确的类型转换等。这些编程过错往往是形成许多严重平安破绽的基本缘故,好比破壳破绽Shellshock、心脏出血破绽Heartbleed、沙虫Sandworm等。
Checked C 经过修正管制指针来解决这些问题,指针被顺序员们用来定义他们的代码所操作的内存地址。当指针数量一多,指针管制就往往容易忙中出乱,名目越大跟踪它们就越难题,相似 Chromium、Firefox、Office、OpenSSL 以及其它的大型代码库在这方面都存在这样的问题,你能够从它们的变卦日志中看到少量的这种问题修复。“Checked C 允许顺序员更好的形容他们想要如何使用指针,以及指针应该指向的内存规模”,微软说,“这个信息能够用于在运转时环境中添加检测,以侦测过错的数据拜候,而不是让过错暗暗的产生而无所察觉。”
Checked C 也将允许开发者检测到他们认为 C 言语有、而实际却没有的功用误用。按编程界的说法来说,这个叫做“界限反省bounds checking”的功用,用于反省变量/指针是不是在它的规模以内赋值,C# 和 Rust 曾经有这样的功用了,并且还不止于此。但是可怜的是,被普遍使用的 C 和 C++ 却没有这样的功用,微软但愿只需求对现有的 C/C++ 顺序做最小的改变,利用 Checked C 就能失掉平安方面的改良,这样会吸引少量的开发者开始使用 Checked C。
Checked C 名目曾经放到了 GitHub 上。这并非微软第一次对根本编程言语做出来本人的演绎,以前该公司的顺序员们还创立了一个名为 TypeScript 的 JavaScript 的超集,而且它曾经失掉了普遍认可。
http://www.linuxprobe.com/microsoft-checkedc-opensource.html |
|