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

透过现象看本质!为什么C/C+深受计算机喜爱?为什么无法替代?

人们一直试图用“更好的更有效的语言”废除C和C ++,但是C / C ++活着的时间比某些新兴语言更长。

计算机仅能理解字节码-一种语言,单词相对较少,但语法复杂度却比许多人曾经希望理解的高出很多。在计算的形成年代,程序员必须学习他们为其编写程序的计算机的特定字节码语言。随之而来的是汇编器-编程世界中的一个天赐之物!程序员可以学习一种语言,这种语言将在现有约80%的系统中保持约90%的一致性。 (当时系统使用的“字节”长度在6到48位之间,并且可用寄存器的数量存在很大差异。)

输入编译器-特定于平台的软件,该软件可以将程序从“高级”语言转换为系统所需的确切字节码。最早的代码之一是Speedcoding,如果您真正阅读了该条目,您会注意到,它使程序员编写代码的速度大大提高,但是计算机实际执行所需的时间却是十倍之多。尽管有些牵强,但却充分说明了计算机与人们完全不同的方式“思考”的事实。

多年来,出现了许多特定于任务的语言-FORTRAN,ALGOL和Pascal是最成功的语言(其他的很少有人记得),它们在很大程度上解决了跨平台的兼容性而又不牺牲太多的性能。随着它们的应用范围的扩大和整体效率的提高,它们中的每一个都经历了许多变化,但是它们仍然偏重于诸如编译轨迹表之类的科学任务。缺乏一些“通用”的东西。

CPL-组合编程语言-第一种“通用”跨平台编译语言和具有较低功能的相对高性能的高级语言。听起来很完美,除了“覆盖所有基础”会产生巨大的“词汇”,本质上是试图将单词与语法合并。简单得多的Basic CPL(BCPL)取得了更大的成功,并为称为B的语言奠定了基础,而该语言最终是C的后继者。

我希望人们现在已经掌握的主要事情是,偏离计算机的“思考方式”,而不是偏离人类的“思考方式”所带来的复杂性。(就好像Java迷需要放弃自己的引以为傲的虚假想法,认为Java可以以速度或力量远程访问C / C ++。)

C设法将适度的类人抽象与类机器语法相结合,以在程序员和计算机之间建立一种愉快的中介-就像任何高级编程语言所希望的那样,“接近金属”,甚至能够利用内联必要时,组装商可以提高性能。

尽管C ++因为其复杂而外界说它“缺乏效率”,但这仅与其C语言的父语言有关。与Speedcoding一样,计算机在编程语言中具有纯功能性和OOP功能,可以简化程序员的工作,但会导致字节码复杂得多,并严重影响性能。

出于很多原因,计算机喜欢C / C ++。使用Swift和Java之类的语言进行编程就像通过你与外国人说你的中式英语一样,并期望以英语为母语的人对你说的能够理解。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210424A06ZBT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券