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

C语言是所有编程语言的“爹”吗?不!他不是但是胜似!

仅仅看一下计算机语言的家谱就应该阐明C的位置。

C是一种非常成功的计算机语言,它的后代(C ++,Java,Objective C,以及许多动态语言,例如Perl,Python或JavaScript)都非常活跃。但是C绝不是第一种编程语言,甚至也不是唯一的编译语言(还编译了Fortran,Pascal,Lisp或Basic)。

C从一开始就被认为是一种可移植的汇编语言,因此它具有一个有趣的生态位,这意味着从C程序到任何汇编语言(处理器指令集的语言)的转换都非常简单。在定义第一种C语言40多年后,大多数情况仍然如此。

C并不完美。它的基础模型是基于指令,基于寄存器和堆栈的顺序编程。当前的处理器仍然基于寄存器上的指令集,所以这也导致了C捕获并行性(向量化或线程化)的亮度要差得多。为并行性而构想的语言(例如Erlang)可以做得更好。C太简单了,无法从数学角度轻松地表达程序(功能语言要好得多)。C缺少许多用于将程序表示为现实模型的内置构造:面向对象的语言要好得多。

的确是,当您必须处理硬件或寻求高性能时(例如,当从头开始编程另一种编程语言时),通常首选C而不是汇编,因为它在软件和硬件之间的开销很小。对于许多目的来说已经足够好了。

为了更好地掌握计算机科学,您应该至少学习一种迭代式低级语言,例如C或某种汇编语言(以更好地了解底层硬件和操作系统),一种功能性语言(以更好地理解算法)以及面向对象的语言。例如C++等。

后来转向C ++或Java可能是一个不错的举动,因为它们已在行业中广泛使用。而且,有了扎实的背景,它们比较容易上手。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券