Bjarne Stroustrup与C++:17c.c++是谁的“精神传人”

如果“17c.c++是谁的‘精神传人’”实际想问的是“C++继承了谁的语言思想”,通常答案是C语言。更准确地说,C++由Bjarne Stroustrup主导设计,直接建立在C语言的语法、编译模型和系统编程传统之上,同时吸收了Simula等语言的面向对象思想。因此,“精神传人”是对语言发展关系的形象说法,不是正式的技术称号。

先给出明确答案:C++主要承接C语言

C++并不是凭空出现的新语言。它最初的设计目标之一,是在保留C语言效率和底层控制能力的基础上,引入更适合大型软件开发的抽象机制。早期项目曾使用“C with Classes”这一名称,后来逐渐发展为今天的C++。

从语言血缘看,C是C++最直接的前身。C++继承了C语言中的许多核心特征,包括基本数据类型、指针、数组、函数、结构化控制语句,以及接近硬件的内存和系统资源管理方式。程序员熟悉C语言后,通常也能较快理解C++中的一部分基础代码。

不过,C++不能简单理解成“加了几个功能的C”。它后来形成了自己的类型系统、类与对象机制、继承、多态、模板、异常处理、标准库和泛型编程体系。因而,称它为C语言的“精神传人”可以概括历史关系,但不能把两者当成同一种语言。

Bjarne Stroustrup是谁:C++的主要设计者

Bjarne Stroustrup是C++的主要设计者和长期推动者。他在贝尔实验室工作期间开始研究如何把面向对象的程序设计能力引入C语言环境,同时保留高性能和底层控制能力。早期成果先称为“C with Classes”,后来语言名称演变为C++。

这里需要区分“谁设计了C++”“C++是谁的精神传人”两个问题:

  • 设计者问题:C++的主要设计者是Bjarne Stroustrup。
  • 语言继承问题:C++最直接承接的是C语言。
  • 思想来源问题:C++的类、对象、继承和虚函数等设计受到Simula等早期面向对象语言影响。
  • 组织关系问题:贝尔实验室是Stroustrup开展早期相关工作的机构,但它不是C++的“前身语言”。

所以,如果题目要求填写一个人的名字,适合回答Bjarne Stroustrup;如果题目问“C++是谁的精神传人”,适合回答C语言,并补充说明它还吸收了Simula的面向对象思想。

“17c”与C17、C++17不是一回事

“17c.c++”并不是一个广为认可的标准人物、机构或正式语言名称。它可能是对“C17”和“C++”的混写,也可能只是标题或关键词中的字符排列。仅凭这个字符串,不能确认它对应某位人物、某家公司或某个官方项目。

几个容易混淆的名称
名称 实际含义 与C++的关系
C语言 一种通用的系统编程语言 是C++最直接的语言前身
C17 C语言标准的一次修订版本,通常指C标准的2017版修订 属于C语言标准体系,不是C++
C++ 由Bjarne Stroustrup主导设计的编程语言 继承C的基础能力,并扩展面向对象和泛型机制
C++17 C++标准的一次重要版本更新 属于C++标准体系,不等于C17

因此,看到“17c”时,不能直接把它解释成“C++的创始人”或某个机构名称。C17与C++17只是两个不同语言标准体系中的版本称呼,前者属于C,后者属于C++。

C++为什么被认为是C语言的延续

这种说法主要来自三层关系。第一层是语法和代码基础。C++保留了大量C语言语法,因此两者在变量、表达式、函数、指针和控制结构上存在明显连续性。

第二层是运行效率和系统定位。C语言和C++都强调编译型执行、资源控制和较高的运行性能,长期用于操作系统、编译器、嵌入式设备、游戏引擎、图形软件和高性能计算等场景。

第三层是设计取向。C语言强调直接、清晰和接近机器;C++在此基础上增加抽象能力,但仍然允许开发者对内存、对象生命周期和底层资源进行细致控制。这种“既提供高级抽象,又保留底层能力”的路线,是两者最重要的共同传统。

与此同时,C++的面向对象部分并非完全来自C。Simula对C++的设计影响尤其重要,它提供了类、对象和继承等面向对象思想的早期实践。因而更严谨的关系应当写成:C是C++的直接语言基础,Simula等语言提供了重要的面向对象思想影响,Bjarne Stroustrup负责把这些方向整合成C++

不要把“精神传人”理解成正式师承

“精神传人”适合用于介绍语言之间的继承、延续和影响,但它不是ISO标准中的术语,也不是C++官方对自身身份的定义。C++的发展经历了多个阶段,后来又经过标准委员会持续修订,形成了C++98、C++11、C++14、C++17、C++20和C++23等标准版本。

这些标准并不意味着每个版本都重新诞生了一门语言,而是对同一语言的功能、库和规范进行扩展与完善。同样,C17也只是C语言标准体系中的一个版本,不能因为名称中有“17”就与C++17建立直接关系。

最终结论

对于“17c.c++是谁的‘精神传人’”这句话,最稳妥的解释是:

  • 如果问C++继承了谁的语言传统,答案是C语言。
  • 如果问C++由谁主导设计,答案是Bjarne Stroustrup。
  • 如果问C++的面向对象思想受到谁影响,应提到Simula等早期面向对象语言。
  • 如果“17c.c++”被当作一个人物、机构或正式项目名称,目前不能仅凭该字符串确认其具体身份。

因此,一句话概括就是:C++是Bjarne Stroustrup主导设计、以C语言为直接基础,并吸收Simula面向对象思想发展起来的编程语言;“17c”则应与C17、C++17分别辨认,不能直接混为一谈。

免责声明:本内容来自腾讯平台创作者,不代表腾讯新闻或腾讯网的观点和立场。

相关推荐