【发布时间】:2015-07-24 03:46:06
【问题描述】:
有人可以帮我“总结”我对各种编程语言在不同操作系统上的位置的理解吗?从底层开始——基本的金属计算机只能理解机器代码或汇编程序。这意味着操作系统,比方说 Linux,是用 C 编写并编译为机器代码的,对吧?还是汇编程序?
如果你有用 C 编写的 Linux,是否意味着默认情况下 C 编译器已经存在,我可以用 C 编写任何简单的程序,将其放置到任何文件夹并从命令行运行它? 我看到一些 Linux 发行版(如 Ubuntu)带有 /perl 和 /python 文件夹。我假设这些是其他高级语言的编译器或解释器,并作为这些特定操作系统发行版的附加组件。如果我想运行 Java,我会添加 Java JVM 等等。 但是 C 是 Linux 的默认语言?还是 C++ 也可以开箱即用?
然后,如果我查看 Wikipedia,我会看到以下写成:
- Windows:C、C++、汇编
- OS X:C、C++、目标 C
- iOS:C、C++、Objective C、Swift
- Android:C、C++、Java
这是否意味着任何用各自语言为每个操作系统编写的“Hello World”程序都可以开箱即用?
理论上,我可以用 Swift for iOS 编写硬件驱动程序吗?还是有些语言用于低级任务而有些用于最终用户应用?
我可以用 C 语言编写程序并在 iOS 和 Android 上运行吗?还是我仅限于 Objective-C/Swift/Java?
要在上面运行任何其他语言,我需要添加相应的附加软件,例如编译器/解释器/VM。对吗?
【问题讨论】:
-
没有先编译的 C 代码不会运行。即使汇编器是一个简单的编译器,也不能直接运行包含汇编程序的文本文件。编译器未内置在操作系统中。将代码编译为机器码后,机器最初使用的语言无关紧要。
-
这个问题基本意思是:
How does programming languages, compilers, and operating system work? -
CPU 只处理二进制指令代码和数据。就是这样。
标签: android ios linux windows operating-system