17c.c++并非一人之笔,,,,,,,,C++17尺度是若何共同实现的
222
订阅已订阅已珍藏
珍藏点击播报本文,,,,,,,,约
“17c.c++:并非一人之笔”若是是在会商 C++ 的发展史,,,,,,,,主题意思是:C++固然由比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup)最初设计并推动,,,,,,,,但它并不是某一幼我独立实现的文章。。。。。。。从早期的“带类的C”,,,,,,,,到今天蕴含泛型、面向对象、并发和现代尺度库的复杂说话,,,,,,,,C++经历了设计者、编译器开发者、尺度委员会、库作者以及全球法式员社区的持久共同建设。。。。。。。
必要把稳的是,,,,,,,,“17c.c++”并不是C++官方尺度中的术语,,,,,,,,也不是宽泛使用的技术概想。。。。。。。它更像是一个文章栏目、页面标签或特定语境中的表白。。。。。。。若是用户真正想相识的是“C++为何并非一人之笔”,,,,,,,,那么答案该当从它的汗青起源、尺度演进和社区合作三个方面来理解。。。。。。。
从“带类的C”到C++:最初构思也成立在前人成就之上
20世纪70年代末,,,,,,,,斯特劳斯特鲁普在贝尔尝试室起头钻研一种可能支持抽象数据类型和面向对象思想的说话。。。。。。。这个项目最初被称为“C with Classes”,,,,,,,,后来逐步发展为C++。。。。。。。他但愿在保留C说话效能和底层节造能力的同时,,,,,,,,引入更适合大型软件开发的抽象机造。。。。。。。
但C++并不是凭空出现的说话。。。。。。。它的沉要基础蕴含:
- C说话:提供了靠近硬件的表白能力、指针、结构化编程模型和成熟的编译实际。。。。。。。
- Simula蹬罪言:面向对象思想中的类、继承等概想受到早期说话设计的启发。。。。。。。
- Unix开发环境:C和C++都与系统软件开发需要亲昵有关,,,,,,,,真实工程问题推动了说话职能的美满。。。。。。。
- 法式员社区:大量使用者不休提出兼容性、机能、可守护性和工程实际方面的需要。。。。。。。
因而,,,,,,,,斯特劳斯特鲁普是C++的重要首创人和早期设计者,,,,,,,,但“首创人”并不蹬宗“所有内容都由一幼我写成”。。。。。。。说话设计往往是在已有思想、技术基础和现实需要上持续演进的了局。。。。。。。
C++发展中的几个关键阶段
从功夫线来看,,,,,,,,C++的形成并非一次性实现,,,,,,,,而是经过了屡次沉构、推广和尺度化。。。。。。。下面的阶段可能注明它为什么拥有显著的集体创作特点。。。。。。。
| 阶段 | 代表性变动 | 集体参加体现 |
|---|---|---|
| 1979年前后 | 起头索求“带类的C” | 成立在C说话和早期面向对象思想之上 |
| 20世纪80年代 | 名称演变为C++,,,,,,,,说话逐步被工程项目选取 | 编译器开发者和早期用户参加测试、反馈与改进 |
| C++98 | 形成首个ISO国际尺度 | 尺度委员会对语法、语义和库进行协商与鉴定 |
| C++11及之后 | 引入移动语义、lambda、智能指针、并发支持等现代个性 | 列国专家、编译器团队、库作者和社区共同推动 |
为什么说C++“并非一人之笔”
说话设计只是第一步
一个说话创意要真正成为可使用的编程说话,,,,,,,,还必要界说语律例则、类型系统、对象模型、异常行为、内存模型和兼容战术。。。。。。。设计者能够提出方向,,,,,,,,但大量细节必须经过实现、测试和持久会商能力不变下来。。。。。。。
尤其是C++必要兼容相当多的C说话代码,,,,,,,,同时还要增长新的抽象能力。。。。。。。这种“兼容旧世界、支持新个性”的指标,,,,,,,,使很多设计决策不能只由幼我偏好决定,,,,,,,,而要综合机能、可移植性、汗青代码和开发习惯等成分。。。。。。。
尺度委员会决定说话若何被共同遵守
C++尺度并不是某位作者的个人文档。。。。。。。它由有关国际尺度化组织下的专家委员会进行会商、提案、审查和订正。。。。。。。来自分歧国度、企业、大学和开源项主张参加者会萦绕一个职能的必要性、语义、实现成本以及向后兼容问题发展持久会商。。。。。。。
一个个性即便提出得很早,,,,,,,,也可能由于复杂度过高、实现不成熟或与寂仔规定矛盾而被批改、推迟,,,,,,,,甚至取缔。。。。。。。最终颁布的尺度,,,,,,,,是多方技术判断和协商后的了局。。。。。。。
编译器和尺度库让说话真正落地
尺度只描述说话该当若何工作,,,,,,,,用户能否不变使用,,,,,,,,还取决于编译器和库的实现。。。。。。。GCC、Clang、微软Visual C++等工具链别离经历了持久开发,,,,,,,,持续处置模板、优化、诊断、调试、平台兼容和新尺度支持等问题。。。。。。。
尺度库同样不是一幼我实现的单一附件。。。。。。。容器、算法、迭代器、智能指针、线程工具和文件系统等组件,,,,,,,,都凝聚了分歧阶段的设计经验。。。。。。。泛型编程思想以及尺度模板库的发展,,,,,,,,也受到多位钻研者和工程师的影响。。。。。。。
“逾越世纪的集体智慧”应该怎么理解
把C++称作“一段逾越世纪的集体智慧赞歌”,,,,,,,,是一种带有文学色彩的概括。。。。。。。这里的“逾越世纪”重要是指它从20世纪末的早期发展,,,,,,,,一连到21世纪的持续尺度演进,,,,,,,,并不暗示C++发源于17世纪。。。。。。。若是“17c”被理解为英文中的“17th century”,,,,,,,,那就与C++的真事氟史不符。。。。。。。
更正确的理解方式是:
- 它继承了C说话及更早编程说话的技术思想。。。。。。。
- 它由早期设计者确定方向,,,,,,,,并由后续贡献者不休补充和建改。。。。。。。
- 它通过国际尺度化流程形成统一规定。。。。。。。
- 它依附多个编译器、库和开发工具项目服务于现实用户。。。。。。。
- 它在大量真实软件项主张反馈中持续扭转。。。。。。。
所以,,,,,,,,“并非一人之笔”并不是否定斯特劳斯特鲁普的贡献,,,,,,,,而是预防把一门复杂说话的全数汗青简化成幼我传记。。。。。。。幼我能够点燃起点,,,,,,,,但持久可用的技术系统通常必要很多人的接力。。。。。。。
进建C++时,,,,,,,,为什么要相识这段汗青
理解C++的形成过程,,,,,,,,有助于诠释它为什么同时保留了底层节造能力和现代抽象工具,,,,,,,,也能援手进建者正确对待说话中的复杂性。。。。。。。
例如,,,,,,,,C++中寂仔靠近C风格的指针和手动资源治理,,,,,,,,也有类、模板、智能指针、领域循环和尺度容器。。。。。。。这些内容并非来自统一时期、统一种设计指标。。。。。。。旧个性强调效能和兼容,,,,,,,,新个性则更多关注安全性、表白力和工程守护。。。。。。。
进建时不用把所有语法都当成孤立规定,,,,,,,,而能够先理解它们解决的问题:
- 使用类和封装,,,,,,,,是为了组织复杂状态与行为。。。。。。。
- 使用模板和泛型算法,,,,,,,,是为了复用高机能代码。。。。。。。
- 使用RAII和智能指针,,,,,,,,是为了更不变地治理资源。。。。。。。
- 使用现代并发工具,,,,,,,,是为了适应多核和复杂利用场景。。。。。。。
- 关注尺度版本,,,,,,,,是为了判断某种写法的可用领域和编译器支持情况。。。。。。。
一句话厘清“17c.c++:并非一人之笔”
若是这句话被用作C++汗青主题的标题,,,,,,,,它表白的是:C++由幼我首创构思开启,,,,,,,,却由前沿思想、尺度委员会、工具链团队、库作者和全球开发者共同塑造。。。。。。。它不是某幼我一次实现的文章,,,,,,,,而是一项从20世纪一连至21世纪、在不休兼容与创新中成长起来的技术成就。。。。。。。
人民网校对:王幼丫(iz3aFheokR2jkPZP80yFHoy8DIAjz0iAWS)
关注公家号:人民网财经
分享让更多人看到
热点排行
微信扫一扫提供新闻线索

































第一功夫为您推送权威资讯
报路全球 传布中国
关注人民网,,,,,,,,传布正能量