首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++ 之父 Bjarne Stroustrup:我会为全球数十亿行 C++ 代码带来一个崭新解决方案

01 反对更换编程语言案例 在演讲一开始,Stroustrup 分享了一张题为“安全不仅仅是类型安全”幻灯片,列出了从资源泄漏溢出到内存损坏计时错误各种各样安全问题。...Stroustrup 称我们目前情况是“处于使用渐进渐进方法趋势,而非只采取全新方法。”一张幻灯片结尾甚至引用了加尔定律:“一个有效复杂系统总是由一个有效简单系统演化而来。”...因此,谈到添加安全改进工具时,“我认为配置文件注释应该有助于解决这个问题。” Stroustrup 提出了总体策略:使用静态分析来消除潜在错误。...因此,虽然核心指南可能建议安全编码实践,但“我们需要强制执行规则。”正如 Stroustrup 所说,“我们必须制定安全使用规则。我们必须提供方法来验证人们是否确实做了他们想做事情。”...Stroustrup 放了一张幻灯片,表示 C++ 可以消除许多常见错误,包括未初始化变量、范围错误、空指针取消引用、资源泄漏悬空引用。 演讲接近尾声时,Stroustrup 进一步阐述了细节。

29010

C++之父Bjarne Stroustrup:我会为全球数十亿行 C++ 代码带来一个崭新解决方案

反对更换编程语言案例 在演讲一开始,Stroustrup 分享了一张题为“安全不仅仅是类型安全”幻灯片,列出了从资源泄漏溢出到内存损坏计时错误各种各样安全问题。...Stroustrup 在演讲还指出,“许多所谓‘安全’语言将所有低级内容外包给 C 或 C++”,用这种办法来暂时逃避使用它们语言来访问硬件资源甚至操作系统(通常是用 C 语言编写),乃至“可信代码...Stroustrup 称我们目前情况是“处于使用渐进渐进方法趋势,而非只采取全新方法。”一张幻灯片结尾甚至引用了加尔定律:“一个有效复杂系统总是由一个有效简单系统演化而来。”...因此,谈到添加安全改进工具时,“我认为配置文件注释应该有助于解决这个问题。” Stroustrup 提出了总体策略:使用静态分析来消除潜在错误。...因此,虽然核心指南可能建议安全编码实践,但“我们需要强制执行规则。”正如 Stroustrup 所说,“我们必须制定安全使用规则。我们必须提供方法来验证人们是否确实做了他们想做事情。”

17810
您找到你想要的搜索结果了吗?
是的
没有找到

C++ 夺冠!成为 TIOBE 2022 年度编程语言

C++虽然没有Java那样繁荣开源社区通用开源框架,但C++也有庞大开源技术与功能体系,一个大型商业化系统总是离不开C++,后台多个业务模块都是用C++开发实现,也会大量地使用多种C++开源库...内容全面,探究原理,698条编程建议、1000余代码示例 这本书是对C++语言进行了最全面、最权威论述,覆盖标准C++以及由C++所支持关键编程技术设计技术。。...C++之父Bjarne Stroustrup所著C++程序设计:原理实践》专注于C++程序设计技术、实践技巧,而非C++语言本身,是一本能让你学到基本实用编程技术(包括支持这种技术编程思想语言工具...专注程序设计而非C++语言,教你编写“有用程序” 1182道习题助你实现从“工匠”到“艺术家”升华 将经典程序设计思想与C++开发实践完美结合,全面地介绍了程序设计基本原理,包括基本概念、设计编程技术...C++之父Bjarne Stroustrup在《C++语言导学》描述了现代C++语言构成。这本简洁、自成体系导引书籍包含了C++语言大多数主要特性标准库组件。

53650

C++ 会变成像 Rust 一样安全语言吗?

它可以随着时间推移而进化,这一点很重要,因为 C++ 是一种活语言,而敌手会不断地改变他们攻击手法。 Sutter 还描述了一些错误问题认识。...“便于强制执行”意味着它们就像语言规则一样,程序员可以使用不同强制执行工具,而且不同工具对于相同代码会给出同样答案。 特别地,C++ profiles 包括类型安全、边界安全生命周期安全。...现在,甚至在系统编程领域,C++ 也受到 Rust(一种强大内存安全编程语言,而且可以避免 C++ 许多问题)威胁。...回到 Sutter 观点, Stroustrup 一样,他也相信,profiles 是使 C++ 更安全一个关键特性,可以将 C++ 代码类型 / 边界 / 初始化 / 生命周期相关 CVE...我只是希望 C++ 能默认执行我们已经熟知安全规则最佳实践,如果我想的话,我也可以明确地选择不遵守。然后,我仍然可以使用完全现代化 C++……只是更友善一些。

10210

C++是程序界“屠龙刀”,但是握刀的人经常用成“杀猪刀”

C++初衷 1)早期C++许多工作是对于C强化净化,并把完全兼容C作为强制性要求。C89、C99许多改进正是从C++中所引进。可见,Stroustrup对C语言贡献非常之大。...今天不管你对C++怎么看,C++的确扩展进化了C,对C造成了深远影响。 2)在C++兼容C过程遇到了不少设计实现上麻烦;以及守旧K&R C程序员对Stroustrup批评。...然后,你可以读读《Exceptional C++《More Exceptional C++》,你可以了解一下C++各种问题解决方法一些常见经典错误。...而对于STL各种坑,我觉得是程序员们还对GP(泛型编程)理解得还不够,STL是泛型编程顶级实践!属于是大师级作品,一般人很难理解。...必需承认STL写出来代码编译错误的确相当复杂晦涩,太难懂了。这也是C++一个诟病。 C++是一门很恐怖语言,而比它更恐怖是很多不合格程序员在使用着它。

91840

腾讯携手2020全球C++及系统软件技术大会

C++语言一直被誉为系统级编程“皇冠上明珠”。随着9月份C++20 国际标准草案获得一致通过,ISO C++20新标准在翘首期待终于尘埃落定。...系统级软件及其他编程语言,深度探讨系统级软件技术领域最佳工程实践前沿方法。...大会主席:Bjarne Stroustrup C++之父, 美国工程院、ACM、IEEE 院士 Bjarne StroustrupC++之父,C++ 编程语言最初设计建构者,作为全球C++及系统软件技术大会荣誉主席...演讲嘉宾:蒲俊峰 腾讯高级工程师 蒲俊峰,16年C++工程实践经验,负责腾讯广告推荐系统研发工作。在实战,积累了深厚高吞吐、低时延分布式式在线推理系统设计、开发经验,精通系统性能调优。 ?...》 马骏 (良斌):阿里云智能 C/C++编译器技术主管 《C++协程在阿里推广大规模应用》 冉昕:Boolan资深咨询师 《低延迟场景下性能优化实践》 赵永刚:资深系统架构师 《使用代码检查提升软件质量

1.3K30

C++发展史

当然,同时由于Java、C#等语言出现硬件价格大规模下降,C++受到了一定冲击; 第三阶段:从2000年至今,由于以Loki、MPL等程序库为代表产生式编程模板元编程出现,C++出现了发展历史上又一个新高峰...B.Stroustrup 写了一个转换程序 "Cfront" 把 C++ 代码转换为普通 C 代码,使它在各种各样平台上立即投入使用。1983 年,这种语言被命名为 C++。...1990 年, Template(模板) Exception(异常) 加入到了 C++ , 使 C++ 具备了泛型编程(Generic Programming)更好运行期错误处理方式。...C++语言既保留了C语言有效性、灵活性、便于移植等全部精华特点,又添加了面向对象编程支持,具有强大编程功能,可方便地构造出模拟现实问题实体操作;编写出程序具有结构清晰、易于扩充等优良特性,...用C++编写程序可读性好,生成代码质量高,运行效率仅比汇编语言慢10%~20%。 C++语言具有以下特点: C++是C语言超集。

1K10

拜登:“一切非 Rust 项目均为非法”

在该报告,拜登政府希望软件开发人员尽量使用 Rust 这样内存安全编程语言,并放弃 C C++ 等安全性薄弱语言。另外,参议院还强调会努力为内存安全立法。...图源:报告文件 科技巨头要为安全负责 这并不是拜登政府对内存安全语言首次提倡。 美国网络安全与基础设施安全局(CISA)在去年 9 月一篇博文中,也曾公开敦促开发人员使用内存安全编程语言。...有人欢喜有人愁 网总办公室还公布了报告筹备过程征集到意见: Rust 基金会呼吁“公共资助组织及其承包商应默认使用内存安全编程语言(例如 Rust),并将此作为良好实践要求”。...他们还在回应强调,还有很多其他方式会导致编程错误,包括逻辑错误、资源泄露、并发错误、类型错误、计时错误、终止错误等等。该小组希望改善对 C++ 程序员教育指导,“从根本上解决安全问题”。...Stroustrup 给出解决方案是配置文件(指的是需要遵循一组规则,可以实现特定安全保证),它们由 ISO C++ 标准定义,解决常见安全问题,例如指针和数组范围。

39740

C++核心准则边译边学-序言

dalian_cover.png C++核心准则(C++ Core Guidelines)是由C++语言两位大神级的人物发表有关C++语言编程指导性文件,目前还处于不断修改完善过程。...从今天开始作者尝试翻译学习该文档。 在接下来文章,如果没有特别说明,英文原文都来自下面的链接,而中文部分是作者翻译理解。...为了表达该语言与c语言渊源关系,它被命名为C++。而Bjarne Stroustrup(本贾尼·斯特劳斯特卢普)博士被尊称为C++语言之父。...代表作《C++编程语言(The C++ Programming Language)》 Herb Sutter ISO/ANSI C++标准委员会委员,Herb Sutter不仅是C++程序设计领域公认专家...这是一个处于持续完善过程完档。它是一个开源项目,目前发布是0.8版。复制、使用、修改从本项目生成生成果都遵从MIT许可证规定。为本项目做出贡献时需要同意贡献者许可。

1.5K12

01-C++基础-第一章-C++简介与C++简史

参考链接: C++ labs() 本系列内容基本保证一天一更,大家努力哦。 本章内容包括: C语言和C++发展历史基本原理。过程性编程和面向对象编程。...1.2.2 C语言编程原理           一般来说,计算机语言要处理两个概念——数据算法。数据是程序使用处理信息,而算法是程序使用方法。...有时不一定使用自上而下编程方法,而是使用自下向上 编程方法。     设计有用、可靠类是一项艰巨任务,幸运是,OOP语言是程序员咋爱编程能够轻松地使用已有的类。...在确定c++语言特性方面,真正编程需要比纯粹原理更重要。Stroustrup之所以在c基础上创建c++,是因为C语法简洁、适合系统编程使用广泛且于UNIX操作系统联系紧密。...C++是C语言超集,这意味着任何有效C程序都是有效C++程序。它们之间有些细微差异,但无足轻重。C++程序可以使用已有的C软件库。库数编程模块集合,可以从程序调用它们。

1.2K20

浅谈 C++编程

结合已有文献个人实践,对有关 C++编程进行了系统分析。...首先介绍了 C++编程相关概念背景,然后利用科学方法分析了元编程 演算规则、基本应用 实践过程 主要难点,最后提出了对 C++编程发展 展望。 1....元编程基本应用 利用元编程,可以很方便设计出 类型安全 (type safe)、运行时高效 (runtime effective) 程序。到现在,元编程已被广泛应用于 C++ 编程实践。...3.3 代码生成 泛型编程一样,元编程也常常被用于代码生成。但是简单泛型编程不同,元编程生成代码往往是通过 编译时测试  编译时迭代 演算推导出来。...例如 Chromium  通用扩展接口 (common extension api) 通过定义 JSON/IDL 文件,通过代码生成生成相关 C++ 代码。 5.

2.9K61

C++概述

本章目标 【了解】C++语言历史 【重点】熟练使用C++编写入门程序 【考点】C++程序编译原理 【重点】掌握C++标准输入输出 【重点】掌握C++注释使用 【了解】熟悉C++关键字 一、编程语言概述及...1.2 高级编程语言 20世纪50年代,新一代编程语言就出现了。他们是平台独立,这意味高级语言书写程序可以在不同类型计算机上运行,高级语言很像英语,易于学习使用。...从“学院派”角度来说,C++支持面向过程编程、面向对象编程泛型编程,而C语言仅支持面向过程编程。...命令行下使用微软编译器理解编译运行机制 cl HelloWorld.cpp /c # 只编译,不链接 cl HelloWorld.obj /link # 链接生成 .exe 文件...cl HelloWorld.cpp # 编译、链接生成 .exe 文件 如果要使用微软编译器cl在控制台编译及链接C++程序,需要进行相关配置: 注意:在不同操作系统或不同 VS

86930

Azure CTO呼吁不要使用 CC++ 启动新项目,C++之父回应:你们这些高管就爱喜新厌旧

微软 Azure CTO Mark Russinovich 呼吁放弃 C C++ 这两门久经时间考验,被广泛应用于高性能本机应用程序开发编程语言。...MSRC 团队还表示,“大多数修复漏洞分配 CVE 都是由开发人员无意中将内存损坏错误插入到其 C C++ 代码造成。...在回复Stroustrup 站在 C++ 立场做了一番辩护。 “人们总是迷恋那些看似能让生活更轻松新事物,这一点在企业高管身上体现得尤其明显。”...Stroustrup 表示,“当然,安全性在大多数开发场景下都至关重要,所以多年来我一直致力于提高 C++ 安全性。” “我们现在已经在 ISO C++ 实现了可靠完美类型与内存安全。...也就是说,每个对象都会根据它定义类型进行使用。具体而言,我们消除了空指针问题、能够捕捉范围错误,并消除了数据争用。请注意,包括 Rust 在内,任何一种号称‘安全’语言都无法彻底避免风险代码。”

30220

Rust 视界周刊 Week 5 | 驳 “Rust 等内存安全语言安全性并不优于C++

回顾从使用 Rust 构建内部 API 以及一些公共 API中学到一些经验教训。它涵盖了从犯错误吸取教训,使用泛型进行更巧妙抽象。 video[12] 深入探究 GCC Rust 前端。...(如 C C++)转移到内存安全编程语言(如 Rust)。...实际上,内存不安全是迄今为止内存不安全编程语言中安全漏洞不稳定最大来源,在某些情况下估计高达70%。这恰恰是 C++ 最严重缺陷领域。换句话说,Stroustrup 博士认为内存不安全并不重要。...而 Rust 语言则专注于解决内存不安全问题。C++ 不强制将内存安全作为编程语言一项功能。这在未来可能会改变(正如 Stroustrup 博士所讨论那样),但这是目前情况。...虽然 C C++ 之间可能存在 30 多年分歧,但 C++ 所谓“进步”都没有涉及从 C++ 删除内存不安全 C 功能,其中许多功能仍在普遍使用,其中许多功能仍然使内存安全在 C++ 几乎难以处理

95080

被批不够安全, C++ 创建者压力下提出解决方案

作者 | 褚杏娟 近期,这条由 C++ 创建者 Bjarne Stroustrup 与其它开发者联合发布声明表示,需要改变编程语言自身来解决解决安全问题。...具体来说,他们建议“将几个特性打包到配置文件(Profiles )”(“配置文件解释是:定义要强制执行属性限制需求集合,用来强制执⾏语义⼀致规则集,⽽不是让单个开发⼈员在对单个语⾔、库设施编码规则...通过这种方式,安全方面的新更改“应该是可见,这样安全代码部分就可以被命名 (可能使用配置文件),并且可以与普通代码混合使用。...但当时他对此表示否认:NSA 报告中提到 “安全” 编程语言 (如 C#、Rust、Go、Java、Ruby 或 Swift) 在重要应用程序实际上并不优于 C++。...Stroustrup 当时批评 NSA 报告只关注内存处理问题,而忽略了许多其他影响项目安全性可靠性编程语言问题。他建议使用代码注释编译器选项来控制规则包含,以确保类型资源得到安全处理。

30250

左清华,右C++,你Pick哪边?

作者把作为新手会有哪些坑,该怎么做,不该怎么做都会告诉你,书中有很详细例子,可以帮助指导实践,并让你在实践过程,反复查询对应item,更加理解所有的原因。 2、《C++ Primer》 ?...Moo编写《Accelerated C++》是一本介绍C++编程入门书籍,作者是著名计算机科学家,书中对C++编程进行了清晰完整介绍,不仅讨论了C++语言特性,而且还介绍了如何使用这些特性。...这本书内容讨论了学习C++所需要编程背景知识,作者是C++编程语言设计者最初实现者。 5、《C++程序设计原理实践》 ?...本书是经典程序设计思想与C++开发实践完美结合,是C++之父回归校园后对C++编程原理技巧全新阐述。...书中全面地介绍了程序设计基本原理,包括基本概念、设计编程技术、语言特性以及标准库等,教你学会如何编写具有输入、输出、计算以及简单图形显示等功能程序。

69410

成为一名C++开发工程师,需要具备哪些条件?

已经演变为一门集面向过程、面向对象、函数式、泛型编程等多种编程范式复杂编程语言。...岗位职责 1、可以熟练使用c/c++ 开发语言,精通windows下多线程多进程开发; 2、根据项目计划,在保质保量前提下,按时完成开发任务; 3、负责相关产品功能模块设计,负责相关产品功能模块设计...; 4、解决产品开发中发现问题; 5、负责产品文档撰写; 6、负责编写产品核心代码; 7、负责检查、维护数据库数据。...与Java.NET比,C++是一种应用范围更广、运作效率更高编程语言,软件开发行业一直流传着一句话: 没有学过C++就不是真正程序员,没有掌握C++编程技术就等于没有抓住通向国际一流企业敲门砖。...书籍推荐 入门书籍: 《C++程序设计教程》,钱能 《易学C++》,潘嘉杰 《大话设计模式》,程杰 《C++编程规范:101条规则、准则与最佳实践》,刘基诚 《CC++程序员面试秘籍》,董山海 进阶书籍

77440

使用CSV模块Pandas在Python读取写入CSV文件

什么是CSV文件? CSV文件是一种纯文本文件,其使用特定结构来排列表格数据。CSV是一种紧凑,简单且通用数据交换通用格式。许多在线服务允许其用户将网站表格数据导出到CSV文件。...要从CSV文件读取数据,必须使用阅读器功能来生成阅读器对象。...在仅三行代码,您将获得与之前相同结果。熊猫知道CSV第一行包含列名,它将自动使用它们。 用Pandas写入CSV文件 使用Pandas写入CSV文件就像阅读一样容易。您可以在这里说服。...结论 因此,现在您知道如何使用方法“ csv”以及以CSV格式读取写入数据。CSV文件易于读取管理,并且尺寸较小,因此相对较快地进行处理传输,因此在软件应用程序得到了广泛使用。...Pandas是读取CSV文件绝佳选择。 另外,还有其他方法可以使用ANTLR,PLYPlyPlus之类库来解析文本文件

19.8K20

【TypeScript 演化史 -- 12】ES5ES3 生成迭代支持及 --checkJS选项下 .js 文件错误

tsconfig.json文件lib选项。...使用--importHelperstslib减少代码大小 在上面的代码示例,__values__read 辅助函数被内联到生成 JS 代码。...在较好项目配置,咱们会使用诸如 webpack 之类绑定器将所有模块捆绑在一起。如果 webpack 不止一次地包含一个帮助函数,那么它生成包就会不必要地大。...--checkJS 选项下 .js 文件错误 在 TypeScript 2.2 之前,类型检查错误报告只能在.ts文件使用。...如果报告了错误,则可以立即修复它,使用// @ ts-ignore忽略导致错误行,或使用// @ ts-nocheck忽略整个文件

1.1K20

C++入门】初识C++

C++重要性 3.1 语言使用广泛度 下图数据来自TIOBE编程语言社区2024年最新排行榜,在30多年发展,C/C++几乎一致稳居前5。...在分布式领域,好些分布式框架、文件系统、中间组件等都是C++开发。...《C++程序设计原理实践》,而一般C++课程也止于此,另外《C++ 标准程序库》及《The C++ Standard Library Extensions》可供参考; 第二个层次,正确高效使用C+...《C++ Templates》、《C++设计新思维》、《C++模版元编程》; 第四个层次,研究C++ (返璞归真) 阅读《C++语言设计演化》、《编程本质》(含STL设计背后数学根基)、C+...+标准文件《ISO/IEC 14882:2003》、C++标准委员会提案书报告书、关于C++学术文献。

15920
领券