最近,我一直在学习D语言。我一直对运行时有些困惑。
从我能够收集到的信息来看(并不是很多),我理解它是一种帮助D语言某些特性的运行时环境。比如垃圾回收机制,它会随着你的程序一起运行。但既然D语言被编译成机器码,如果我们的程序不需要垃圾回收等功能,那么它是否真的需要这些功能呢?
令我困惑的是像这样的说法:
"你可以用D语言编写操作系统。"
我知道这并不可能,因为除非使用一些汇编语言,任何编译语言都无法完整支持一个操作系统所需的所有特性。但是如果你有一个调用D代码的内核,那么D运行时会阻止D在这样一个裸机环境中运行吗?或者说D运行时比这更简单吗?它可以被视为源文件/库的"自动"包含,当与你的应用程序一起编译时,它与自己编写该代码的区别不大吗?
也许我看待问题的角度不太对。但我相信一些关于这个主题的信息对很多人都有好处。