2011-11-10 42 views
0

程序如何使用其他程序不是相同的语言? 例如,Windows使用C++,但内核使用C语言。 我也看到Java程序也使用C程序。
他们如何做到这一点?
他们使用主类吗?像class Whatever : MasterClassName程序如何使用其他程序不使用相同的编程语言

+0

Windows不是用C++编写的,而是用C编写的。因此,没有涉及的类。 Windows需要交叉语言兼容对象时才使用接口。 Java程序大部分使用C动态链接库(DLL)。 –

回答

0

我不确定当你说你看过Java程序使用C程序时你的意思。你的意思是一个Java程序使用从C代码生成的可执行文件吗?

稍有不同,两个程序可以通过DLL,套接字接口(TCP/UDP),文件,数据库和/或CORBA等互相通信。

0

编程语言与程序之间的通信不是相关的。编程语言只是使程序可读的一种手段;计算机实际执行的是机器代码。

为了沟通,程序需要对这个通信的外观进行一些假设。这种机制通常被称为协议。

例如,应用程序通常通过系统调用协议与OS内核进行通信。它们在处理器寄存器中存储一些特殊值,并使用机器代码指令切换到内核模式。然后内核检查上述特殊值以确定需要执行哪个操作(例如,打开文件,在终端上打印等)。特定值的含义由协议指定。

DLL,文件,数据库,IPC,网络等都是通信协议,在这个特定的解释。不过,它们通常是以更低级别的协议来实现的,比如内核系统调用。

相关问题