c - 是否有与C相同的语言?

标签 c

是否有任何被提议的或实现的语言与c一样(巨大的)适合作为一种替代,同时保持对os、高性能、嵌入式和其他角色的所有适用性?

最佳答案

是否有任何被提议的或实现的语言与c一样(巨大的)适合作为一种替代,同时保持对os、高性能、嵌入式和其他角色的所有适用性?
OSS过去是在汇编程序中实现的。后来,开发转向了C,它最初是一种宏汇编程序。
现在大多数操作系统都是用C语言编写的,因为它几乎是唯一一种保持某种汇编程序向后兼容性的语言(例如,可以将硬件规范中汇编程序的很大一部分映射到C语言中)。libc是内核和用户空间之间的主要接口(通常是唯一的接口)。然而,接口并不是包罗万象:内核中的一些东西必须直接访问,因为还没有提供标准接口。例如,必须使用c结构向ioctl传递参数/检索结果。
这意味着,在应用程序开发中使用c在很大程度上是由这样一个简单的事实推动的:如果使用c,则可以自动访问内核(os)的所有特性,内核(os)也是用c编写的。
只有能与C竞争的语言才是基于C语言的语言。以前也有一些比较流行的翻译器,比如p2c(pascal to c):一种语言的开发程序,但是源代码会自动翻译成c进行编译。但是翻译器是相当有缺陷的,如果不了解c语言,程序通常无法调试。所以,如果你必须知道一些C,为什么要麻烦翻译。
我个人(和许多其他开发人员,我敢肯定)使用各种语言时,经常会遇到这样的问题:操作系统有一个特性,但所使用的语言没有提供任何访问它的工具。我认为这是其他语言发展的主要阻碍因素。即使你对一种新语言有很好的想法(这可能与c不兼容,否则想法就不会那么好了),你最终还是要为几乎所有的操作系统(以及各种必备的应用程序库)重新实现接口。
只要(1)c仍然是系统编程的唯一语言,并且(2)os接口仍在不断发展,那么处于另一边的所有不兼容c的语言,即应用程序开发,将处于更大的劣势。
实际上,这是我希望LLVM/clang可能打破的模子之一。clang被实现为一个可重用的库,理论上允许混合语言。例如,主源文件可以是一种语言(由一个前端解析),但是#includes可以是c语言(由clang解析)。

关于c - 是否有与C相同的语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3342213/

相关文章:

c - 引用的库函数不调用会被链接吗?

c# - 在应用程序 Xcode 中编写代码

c - gcc "–Werror: No such file"指的是目标还是 Werror 用法?

c - 在 C 中释放可变大小的结构

c语言问题

正确终止正在运行的线程 "works"

c - 当初始值设定项多于数组大小时的行为是什么?

python - 从 Python 编译的 C DLL 调用简单的 "Hello World!"函数会导致 OSError : exception: access violation

c - 具有链接到同一功能的多个设备属性的 Linux 驱动程序

c - wsdisplay 颜色图未正确检索