谁能以简单的方式向我解释以下条款
1-IDL 接口定义语言 2-互操作性 3-可移植性 4-API
先感谢您
互操作性通常只是意味着系统的设计方式使得其他系统可以与之通信(向其发送信息以存储/处理,向其请求信息,或两者兼而有之。)
IDL 是一种允许程序(dll 等)描述其输入和输出的元语言——它是一种接口定义语言,因为它只提供了一个接口。存在许多特定的实现,但它们在功能上都非常相似,大多数在语法上相似,并且它们“全部”完全是声明性的(它们指定具有输入和输出的函数的名称,但不是那些函数的名称做'')。它们通常专门用于通过 RPC 调用函数。
API 比这更通用 - IDL 可以指定 API,但 Web 服务(SOAP 或 REST)或一个应用程序、dll 等调用另一个函数的任何其他方式也可以。“抽象”的意思就是——它只是有一个接口来调用一组相关函数而不知道或关心它们的实现的概念。它完全独立于语言。
可移植性是一个不同的概念 - 这通常意味着能够在不同平台上编译或运行您的程序而无需大量工作。当然,API 可以帮助解决这个问题,如果它们抽象出平台差异的话。例如,如果您想将图像从磁盘读取到内存中,您会在 Windows 和 Linux 上执行非常不同的操作,在 Windows 8 和 Windows 95 上会有所不同,并且在同一操作系统的 x64 和 x86 版本中可能会略有不同. 如果有人给您包装器,以便您可以根据您的平台编译或链接到不同的文件,这样您就可以始终在代码中调用相同的函数并获取相同的数据,而不管平台如何,这些函数本身就是 API,包装器将是 API 的实现,您的代码将被视为可移植的。