软件验证曾被视为小众或不切实际的追求,如今却正备受青睐。这种复苏主要源于 AI 编程代理的兴起,它们在生成代码的同时,也需要稳健的保障手段来验证代码,而 AI 同时也让验证过程变得更加快速且易于实现。 本文反思了 1979 年发表的论文《社会过程与定理及程序的证明》。该论文曾指出形式化验证注定会失败,因为它忽视了数学证明的社会属性以及现实世界需求固有的混乱性。尽管作者正确地强调了验证并非“万能钥匙”,且更广泛的工程实践、同行评审和系统设计对于可靠性同样至关重要,但他们对形式化方法的否定显然过于悲观。 现代技术的进步,尤其是人工智能辅助的规范化与验证,已经克服了 50 年前指出的许多障碍。如今,形式化方法正从学术练习演变为一种实用的、必要的工具,以确保在 AI 代理处理大量软件生产的时代实现正确性。归根结底,验证与传统工程并非竞争对手,而是追求可靠、高质量软件过程中相辅相成的组成部分。
英特尔于 1997 年推出的 MMX(多媒体扩展指令集)将 SIMD(单指令多数据流)技术引入了主流 x86 桌面平台。通过允许在单个 64 位寄存器内同时处理多个整数,MMX 显著提升了图像处理、音频和视频任务的性能。
虽然 MMX 并非首个 SIMD 实现(此前已有 ILLIAC IV 等超级计算机),但它却是那个时代开发者的重要“成人礼”。它迫使程序员从标量值转向以向量形式思考,这种思维方式至今仍是现代计算的基础。然而,MMX 存在明显的局限性,例如它与 80 位浮点寄存器共享空间,这不仅要求开发者必须谨慎管理状态转换,还阻碍了浮点运算的同步使用。
从长远来看,MMX 是一项成功的过渡性技术。它最终被 AMD 的 3DNow! 所盖过,随后又被英特尔自家的 SSE 和 SSE2 彻底取代,后者引入了专用且更宽的 128 位寄存器以及真正的浮点 SIMD 支持。尽管 MMX 指令集早已过时,但它为如今硬件所使用的 AVX 和 NEON 等高性能扩展奠定了概念基础,标志着并行处理技术正式步入普通个人电脑的历史转折点。