从“带类的C”到真正的语言实验



斯特劳斯特鲁普在研究操作系统和分布式系统时接触到Simula,并认可它在表达复杂实体方面的能力。例如,交通系统可以被拆分为车辆、道路、信号灯和调度器,程序能够围绕这些实体描述状态与行为。不过,Simula的执行效率和系统级控制能力并不完全符合高性能软件开发的要求,这促使他寻找更适合实际工程的组合方案。



C++的前身“带类的C”始于1979年。当时斯特劳斯特鲁普在贝尔实验室开始尝试为C增加类机制,希望在不牺牲执行效率的前提下,改善大型程序的结构。



早期实现采用了一个非常关键的工程策略:新语言的源代码先被转换成C代码,再交给成熟的C编译器处理。这个转换器后来被称为Cfront。这样的做法降低了实现门槛,也让新语言能够借助当时已经广泛使用的C编译器和工具链逐步传播。



Simula如何影响了C++的早期方向



C++最早并不叫C++,而是从“带类的C”(C with Classe📌s)开始😎。它先服务于大型软件开发中的真实问题,后来经过命名、工具实现、社区传播和国际标准化,才从个人研究项目发展为影响深远的通用编程语言。



面向对象思想在这一时期提供了另一种解决方向。面向对象编程强调把数据和操作数据的函数组织在一起,通过类、封装、继承和多态等机制控制复杂性。它🎆并不意味着所有🎯程序都必须采用同一种写法,而是为大型系统提供了更清晰的组织工具。



C++的标准化过程解决了不同编译器之间行为不一致的问题。1998年发💪布的C++98确立了基础语言规则,并纳入标准模板库等重要组成部分,使开发者能够在更明确的规范下编写可移植程序。



举报/反馈