## Ada:被遗忘的现代编程先驱 Ada 是一种在 1970 年代为美国国防部开发的编程语言,它预见了许多现在在 Rust、Python 和 C# 等现代语言中至关重要的安全和设计特性。Ada 的诞生源于国防部内部的软件不兼容和难以维护的危机,它通过强类型、接口与实现的分离(包)、内置的并发支持和范围约束类型等特性,优先考虑可靠性和可维护性。 尽管由于其冗长性而被主流行业 largely 忽略,Ada 却率先提出了现在被认为是必不可少的一些概念:泛型、区分联合和强大的异常处理。现代语言已经独立地重新发现了这些解决方案,努力达到 Ada 数十年前就提供的相同安全性和清晰度。 Ada 的优势在于其正式标准和编译器,它强制执行关于合法性、可见性和类型的严格规则——本质上是“拒绝”不安全的做法。这种对正确性的关注,加上它在航空电子设备和铁路控制等关键系统中的成功部署,证明了 Ada 的持久价值,即使它的贡献在更广泛的编程讨论中 largely 未被承认。它提醒我们,许多“现代”语言特性实际上是针对长期存在的软件工程问题的成熟解决方案。
## PROBoter:自动化嵌入式系统安全分析
对嵌入式系统,特别是PCB级别的安全分析,通常是一个耗时的过程,涉及目视检查、逆向工程和探测。PROBoter平台旨在自动化这些任务,使安全分析人员能够专注于更高层次的测试。PROBoter由SCHUTZWERK与肯普滕高等专业学校合作开发,具有最多四个独立探测器的自动化探测功能、完全集成的超高分辨率摄像头系统,以及采用标准和3D打印部件的简单、经济高效的设计。
该平台自动化了PCB图像生成、使用神经网络进行视觉分析以识别组件和引脚,以及(半)自动化探测。它简化了从PCB拆解到报告生成的流程,专注于自动化重复性任务,例如组件定位、引脚识别和电气连接映射。未来的开发包括自动化运行时信号分析和安全测试。
PROBoter的硬件和软件是开源的,可在GitHub上获取。该项目旨在构建协作知识库,缩短分析时间并提高嵌入式系统安全评估的效率。下一篇博文将详细介绍硬件平台及其自动校准功能。
## 高性能计算30年:回顾与新语言的呼唤
过去30年,高性能计算(HPC)硬件发生了巨大变革。核心数量增加了数百到数千倍,性能也提升了数百万倍,这得益于多核处理器、GPU和高基数网络等技术的进步。然而,我们*编程*这些系统的方式却出人意料地保持静态。
尽管硬件发生了革命,但主导HPC编程语言——Fortran、C和C++——自1995年以来基本没有变化,同时MPI仍然被广泛用于分布式内存并行,OpenMP用于共享内存。虽然CUDA和Python等技术已经出现,但核心编程范式并没有显著发展。这与主流编程形成鲜明对比,在主流编程领域,许多新的语言蓬勃发展,优先考虑生产力、安全性和性能。
作者认为这种停滞不前是由于HPC社区面临的一系列独特挑战:其专业化的需求、对遗留代码的支持、对硬件而非软件的投资重点,以及倾向于优先选择足够好的解决方案而不是理想的解决方案。这导致了一种复杂的符号组合,要求程序员管理低级细节,而不是专注于算法。
作者倡导对HPC特定语言设计进行重新投资,强调像Chapel这样的语言能够抽象硬件复杂性并提高程序员生产力的潜力。最终,一个蓬勃发展的HPC未来需要认识到专用编程工具的价值,并培养一个愿意拥抱超越硬件进步的创新的社区。