q413054581 发表于 2014-3-5 22:08:09

编程语言为什么依赖于操作系统??

为什么编程语言要依附于操作系统呢?比如DOS,windows,linux下的编程就完全不一样。
编程语言经过编译过后应该是送给CPU运行的0101才对,跟操作系统有什么关系??

zhongguoren 发表于 2014-3-5 22:08:10

貌似你说的不全对。编程语言转换为机器码的过程依赖编译和链接程序,而程序依赖于操作系统(比如DOS下你的vc是不可能运行的了的)。
还有就是,程序的运行需要取得硬件资源的使用权,但操作系统掌管着这些权利的分配,所以编程语言必须依照操作系统的规定行事。比如你要用输入设备,就得发出申请,等待响应等。而这一套规则应该每套系统都有差异。我没用过其他系统。。。。所以只是个人想法。。。。
建议学一下操作系统相关知识。
----个人愚见,请多指教

q413054581 发表于 2014-3-5 22:36:05

zhongguoren 发表于 2014-3-5 22:28 static/image/common/back.gif
貌似你说的不全对。编程语言转换为机器码的过程依赖编译和链接程序,而程序依赖于操作系统(比如DOS下你的v ...

恩恩,有道理,只是在DOS下编程太枯燥了。

故乡的风 发表于 2014-3-5 23:26:26

首先,编程语言是不依赖于操作系统的。比如c/c++,java,php,python等等语言,其语法规则独立于操作系统,甚至汇编语言也是独立于操作系统的,不过汇编语言与cpu架构有关。是先有了语言,然后才有操作系统的,操作系统基本都是c和汇编写的。
你所说的编程不一样也不尽然,如果在不同的操作系统下提供一个相同的接口,你使用这个接口时,你的编码甚至可以无修改移植的,比如使用ISO c标准库库函数的时候,你可以在windows/linux下编写相同的代码实现相同的功能。其实一些跨平台的库,都是在各平台下抽象出相同的接口出来方便程序员使用的。
然后,即使相同的代码在不同的操作系统下编译得到的可执行文件也是不一定相同的,这个就依赖于操作系统了,当然我们其实不需要管这个的,这个是由编译器解决的。可执行文件本质还是文件,只不过它有自己特别的结构,这个我就不讲深入了,你有兴趣的话可以自己查资料了解下各平台可执行文件格式。

你们的亲爹 发表于 2014-3-6 12:20:22

最浅显的说:
   汇编语言,只有会编了。
   就不怕各种操作系统了。
   操作系统之间存在差异很正常。
   如果讨厌了DOS,那就换成Windows什么下玩玩,
   也很有趣的。
页: [1]
查看完整版本: 编程语言为什么依赖于操作系统??