程序如何使用不同语言的其他程序?
例如,Windows是C ++,但内核是C语言。
我也看到Java程序也使用C程序。
他们如何做到这一点?
他们使用大师班吗?喜欢class Whatever : MasterClassName
?
答案 0 :(得分:0)
当你说你看到Java程序使用C程序时,我不确定你的意思。你的意思是Java程序使用从C代码生成的可执行文件吗?
稍微不同的是,两个程序可以通过DLL,套接字接口(TCP / UDP),文件,数据库和/或CORBA等方式相互通信。
答案 1 :(得分:0)
编程语言与程序之间的通信无关。编程语言只是使程序对人类可读的一种手段;计算机实际执行的是机器代码。
为了进行交流,程序需要对这种通信的外观做出若干假设。这种机制通常称为协议。
例如,应用程序通常通过syscall协议与OS内核进行通信。它们在处理器寄存器中存储一些特殊值,并使用机器代码指令切换到内核模式。然后内核检查上述特殊值以决定需要执行哪个操作(例如打开文件,在终端上打印等)。特定值的含义由协议指定。
在这个特定的解释中,DLL,文件,数据库,IPC,网络等都是通信协议。它们通常是根据更低级别的协议实现的,例如内核系统调用。