编程语言与操作系统的交互

时间:2013-04-04 21:16:58

标签: compiler-construction programming-languages operating-system

这是关于编程语言和操作系统的计算机科学问题。

我的问题是,编程语言和操作系统之间的基本交互是什么?我确实知道操作系统的IFE循环,但不确定编程语言是如何适应的。

我已阅读此帖,但它没有任何帮助

Questions on how compiled programs interact with the operating system

编辑:

通过编程语言,我的意思是包括他们各自的编译器/ VM

2 个答案:

答案 0 :(得分:3)

在机器代码级别,程序必须进行系统调用。

不同的处理器有不同的方法可用于进行系统调用。每个操作系统必须为给定的处理器体系结构选择系统调用约定。例如,对于x86处理器,Linux曾经使用软件中断指令INT 0x80来执行其系统调用 - 但是(根据下面的注释)它现在使用SYSENTER指令,该指令被引入到体系结构中专门用于此目的。

系统调用约定并非真正特定于编程语言,但它们必须写入给定语言和操作系统的最基本标准库。

答案 1 :(得分:1)

编程语言不与操作系统交互,因为它是一种语言,一种抽象的概念,它不是任何类型的(内部)演员。它只是一个系统,可以用来表达程序和算法,使用它的词法元素,符合它的语法和规则等。

与操作系统交互的是程序。编程语言的解释器和编译器,即程序,与OS交互。编译的程序与OS交互。语言没有。它们不是程序。