返回介绍

3.1 标准

发布于 2024-08-19 12:44:37 字数 895 浏览 0 评论 0 收藏 0

标准委员会的目的是编写标准。制定标准的一个官方理由是**促进贸易,特别是减少国际贸易的技术壁垒和人为障碍**,及**提供实现经济、效率和互操作性的框架**。标准是规范,不是实现。它的目的是保持多个实现一致,并确定一致性在 一个必须能够有效利用各种不同底层硬件的世界里到底意味着什么。许多程序员在理解这一点上存在问题。他们要么认为当前的编译器就是语言的定义,要么难以理 解为什么很难在许多不同的、通常是竞争性的组织之间达成 100% 的协议。在 1990 年代,委员会考虑过制定形式规约(formal specification),但咨询过世界一流的专家后得出结论,规约技术的进展和成员的水平都还达不到制定 C++ 形式规约的程度。当然,也考虑过参考实现,但语言的复杂度,特别是与硬件使用和优化相关的问题,已经挫败了这种想法。如果有参考实现,它会太复杂,也会代 价过大。要么就得把它简化到一种对最困难的问题没有帮助的程度,但这样的困难问题正是最需要参考实现的场合。再有,当 N 个彼此竞争的实现团队记录他们的决策、运行广泛的合规性测试并讨论它们的不同之处时,会有些意外收获;如果已经有了个复杂的参考实现,就可能掩盖掉这样的 意外收获。对于 C++,从前端实现来说(Clang、EDG、GCC 和微软)N 至少为 4,至于后端,N 少说有十几个。

因此,标准委员会正在努力解决拥有多种实现带来的问题。另一条路是冒险搞单一文化。如果 C++ 技术只来源于一个组织,那么无论好坏,每个人都会得到相同的东西。一个控制唯一真正实现的组织将在社区中拥有主导话语权,他们出现的问题,就会影响到所有人。特别是,一旦有资金问题、商业顾虑、政治见解或者技术上的一意孤行,就会严重破坏语言及其用户群体。

无论好坏,C++ 社区选择了半组织的混乱,里面有一个很大的委员会加上多个编译器、工具及库的供应者。我们没有用统一所有权或独裁者模式。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文