![]()
TrapC,一个内存安全版本的C编程语言,即将准备进行测试。
"我们快要成功了,"Robin Rowe在电话采访中告诉《The Register》。"它几乎可以工作了。"
我们联系到了Rowe,他是一位计算机科学教授兼企业家,正在进行调试工作,这让他一直工作到凌晨四点。期待已久的TrapC网站已经上线。
"我构建TrapC的工作采取了两条平行路径,"Rowe在他的初始帖子中解释道。"一个叫做itrapc的TrapC解释器和一个叫做trapc的独立编译器。我本想在2026年1月1日之前发布软件版本,但遇到了太多bug。我这个月才完成代码开发,现在正在进行艰难且不眠不休的调试过程。当我有了基本稳定运行的版本时,我会发布。抱歉让大家再等一段时间。目标是2026年第一季度。"
回到2024年11月,Rowe解释说他正在开发TrapC。当时,公共和私营部门正在推广内存安全软件开发,以减少严重漏洞的暴露。
内存安全提供了一种确保内存相关bug(如越界读写和释放后使用)不会发生的方法。在像Chromium和Windows这样的大型代码库中,大部分安全漏洞都源于内存bug。随着这一信息在近年来不断重复,内存安全已成为当务之急,得到了Google和Microsoft等公司以及美国等地当局的推广。
至少在过去十年中,越来越多的声音呼吁采用内存安全的编程语言和技术。这意味着鼓励开发者在可行的情况下避免使用C和C++等语言,转而采用C#、Go、Java、Python、Swift和Rust等语言,特别是在新项目中。
为了保持相关性,C和C++社区试图通过TrapC、FilC、Mini-C、Safe C++和C++ Profiles等项目来解决这些问题。DARPA还在开发一个名为TRACTOR(TRanslating All C TO Rust)的C到Rust转换项目。
但进展缓慢,编写C和C++的人员还没有找到广泛接受的方法。C++标准委员会最近拒绝了Safe C++提案。Rowe说他怀疑TRACTOR今年不会有任何成果。
与此同时,时间紧迫。Microsoft工程师Galen Hunt上个月表示:"我的目标是到2030年消除Microsoft的每一行C和C++代码。我们的策略是结合AI和算法来重写Microsoft最大的代码库。"
如何使用AI工具
"有一些将C代码手工移植到Rust的努力,"Rowe说。"但这样做确实面临一些挑战,因为C中有一些习惯用法在Rust中无法表达。
"Rust比C更加类型安全。所以如果你有一个void指针,在Rust中意味着什么?没有对应的翻译。这就是TrapC根本不同的地方,因为它实际上记住了那个void指针实际是什么。"
Rowe说他预期TRACTOR最终能够使用AI完成C到Rust的翻译。但他认为最好是将必要的工具直接构建到C编译器中,这样你就不必依赖某个外部工具来用不熟悉的语言重写你的代码。
Rowe自己一直在使用AI工具,并教授其他人如何使用。这个学期,他在巴尔的摩县社区学院教授AI网络安全程序员分析师课程(PCO471)——使用bash进行vibe编程的Linux管理,无先修要求。从2月开始,他将教授使用生成式AI的C++编程(PCO472)——C++中的vibe编程。
Rowe说,由于AI工具,编程已经发生了根本性变化。"我认为这类似于C语言出现时人们说'我在汇编语言中很满意'的讨论。仍然会有人用旧方法做事。但因为vibe编程在正确使用时在时间上效率更高,所以别无选择。如果你不进行vibe编程,你就不会有竞争力。"
然后他稍微改变了话题。"但我必须稍微收回这个说法,因为我熬到凌晨四点的原因是我在TrapC编译器上使用vibe编程。它采取了根本错误的设计方向。我没有察觉到它犯了设计错误。我告诉了它我想要如何处理。但不知何故它误解了我,或者它忘记了,或者发生了什么,而我忘记了检查。所以我花了几个小时在调试器中摸索,试图理解为什么代码表现得很奇怪,直到我最后看了看说,'等等,这甚至不是正确的设计。'"
Rowe说在结对编程中会出现类似的情况,你告诉某人做某事,他们没有做,而你直到后来才意识到这一点。
"C++创始人Bjarne Stroustrup曾说软件设计中最重要的事情是明确你要构建什么,"Rowe说。"而vibe编程只是让这一点更加重要。现在我们不仅要自己明确,还必须向大语言模型清楚地传达它。"
Rowe认为必须鼓励开发者尝试AI工具并犯错误。他讲述了在他的AI网络安全程序员分析师课程中,学生们表达了希望做更多实践工作而不是听讲座的兴趣。
"所以我说,'我在互联网上有真实的服务器,那是我公司的。我给你们root权限,'"他回忆道。"我会让什么都不懂的学生在我自己的服务器上自由操作,希望一切顺利,看看会怎样。反应是恐慌。我无法克服胆怯的障碍。"
Rowe说他从那次交流中学到的是,他们不想要自己的实践,他们想要观看他工作。
"我对他们说,'但是伙计们,这就像学弹钢琴一样。你不能通过观看我来学会弹钢琴。是的,你们必须练习。一开始会很尴尬。你知道,你们会弹出很多错音,听起来很糟糕。你必须克服这种情况。'"
这种情况在各种公司中都在上演,AI工具仍未得到充分利用,原因包括缺乏培训、安全担忧、缺乏实用性和工具设计不佳。
中国与美国
Rowe经常前往中国在中国高等教育学会会议上发言。他说,12月份,他接受了中国新闻电视台的采访,谈论中国的AI计划与美国的比较。
在一封电子邮件中他解释说:"我说,'中国的AI+计划呼吁在各个地方都有高效的AI,从农场到工厂到城市,而白宫计划呼吁建设价值5000亿美元的云数据中心...使用的芯片在两年内不可避免地会显得过时。'"
Rowe认为中国的方法会胜出,美国专注于集中式云数据中心来运行大语言模型是错误的方向。他说,在两年内,我们将拥有可以在手机上本地运行的AI模型,大多数任务都不需要网络访问。他说,苹果和华为可能是这种情况下的赢家。
Rowe指出中国的DeepSeek作为例子。虽然它可能不如美国领先的商业模型那么好,但他说,它的功耗要低得多。
"这是一个非常符合摩尔定律的策略,"他说。"我记得1994年我有一台海军超级计算机。那是令人惊叹的技术。但在1995年,Cray破产了。即使它是一个令人惊叹的设备,也没有足够的买家。
"现在我口袋里有一部iPhone。它用电池供电。它不需要整个房间来容纳它,不需要特殊冷却和各种设备。它比那台(1994年的Cray)更强大。所以作为长期策略,朝着设备发展更有意义,因为那个价值5000亿美元的数据中心最终会在我的iPhone上。"
Rowe还说,在他在AT&T DIRECTV创新实验室时期朋友的推荐下,他在Claude不可用时尝试运行Deepseek。他说,Deepseek能够找到Claude找不到的bug。
"令人惊讶的是,bug在Claude生成的代码中,我粗心地剪切粘贴了,"他说。"事后看来,这是一个愚蠢的代码错误,我应该抓住,但它在我查看范围外的'else'分支中。我没有预期或打算让Claude对那个代码块做任何更改。因为代码是有效的但逻辑是错误的,编译器没有捕获它。"
但他说,一旦Deepseek指出来,bug就很明显了。他补充说:"我为Claude支付每年200美元。Deepseek是免费的。"
Q&A
Q1:TrapC是什么?它与传统C语言有什么区别?
A:TrapC是一个内存安全版本的C编程语言,由Robin Rowe开发。与传统C语言不同,TrapC能够记住void指针实际指向的内容,提供内存安全保护,防止越界读写和释放后使用等内存相关bug的发生。
Q2:为什么内存安全对编程语言如此重要?
A:在大型代码库如Chromium和Windows中,大部分安全漏洞都源于内存bug。内存安全能确保不会发生越界读写和释放后使用等内存相关错误,这已成为Google、Microsoft等公司和各国政府推广的重要安全措施。
Q3:AI工具在编程中起到什么作用?
A:AI工具正在根本性地改变编程方式。Robin Rowe认为AI辅助的"vibe编程"在时间效率上远超传统编程,就像C语言取代汇编语言一样。但使用AI工具需要开发者更清楚地表达需求,并要敢于尝试和犯错误。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.