为什么所有低级都是用C语言编写的?

时间:2014-07-31 07:52:21

标签: c low-level

为什么所有低级都是用C语言编写的?

我的意思是内核代码,驱动程序,运行时库,编译器,嵌入式系统s / w主要用C / C ++编写。

为什么不使用Fortran,COBOL,Pascal甚至Java / C#或其他第三代编程语言来生成与机器无关的代码,同时也让您可以自由地进行低级,调整和优化。

我的问题是为什么开发人员和公司最终主要使用C来实现这些目的。

编辑:你们大多数人都在谈论表现。那么,没有其他通用低级语言比C更快的原因吗?

4 个答案:

答案 0 :(得分:5)

几点:

  • Pascal不是低级语言,但有kernels and even whole OS written in it
  • 你不希望有一个用Java \ C#编写的操作系统,因为它会很慢。
  • C可能不是最好的语言。它有许多腔,并且已经尝试过像D或C ++这样的改进。唯一的问题"是惯性,C仍然很受欢迎,因为C是使用最广泛的编程语言(你喜欢与否的天气)。使用这种语言有很多内核\ OS \ libraries \ books \ course。更换它需要几十年的时间。似乎尽管有蛀洞,但完全取代它的意愿却很小。

答案 1 :(得分:1)

有人会说,能够编写低级别东西的思维类型只能通过使用C引起的多年损坏来伪造: - )

更严重的是,C的整个目的是作为一种系统编程语言,因此,它主要是不受你的影响。其他语言有不同的用途:COBOL实际上用于事务/业务,C#用于在MS Windows下运行的应用程序,LISP用于喜欢计算括号的人,等等。它们可以用于用于其他事情,但我不会用COBOL编写操作系统。

汇编程序中的会计软件包。

Pascal中的

任何: - )

C允许您不受限制地访问最低级别,而不必担心垃圾收集等问题,这可能会对您的代码造成不可预见的影响。

答案 2 :(得分:1)

Java(以及所有基于JVM的语言)和C#/ F#在"虚拟机"内部运行。这意味着用这些语言编写的应用程序不能直接使用硬件资源,它们包含在沙盒中。#34;。它有助于实现可移植性("在任何实现VM的地方运行")但可能会损害性能(和确实如此)。

答案 3 :(得分:0)

因为相对而言,C和C ++是low level programming languages。有些人仍然在Assembler中写道。我希望没有人仍在机器代码中写道。无论如何,

  

为什么不使用Java,C#,COBOL,Pascal或其他第三代编程语言来生成与机器无关的代码,同时还可以自由地进行低级调整和优化?

这些语言被归类为high level languages。它们提供了一定程度的机器抽象,有利于编程,但对低级裸机开发无用。此外,BWK可能会Why Pascal is Not My Favorite Programming Language相关。