[发明专利]将操作系统的本机应用编程接口投射到其他编程语言有效
申请号: | 201210317710.8 | 申请日: | 2012-08-31 |
公开(公告)号: | CN102866884A | 公开(公告)日: | 2013-01-09 |
发明(设计)人: | H.皮尔森;B.雷克托尔;M.洛夫尔;M.普拉克里亚;S.罗维;T.巴苏;R.A.弗洛达茨科;E.H.奥米亚;J.杜尼茨;A.霍尔塞克;L.W.奥斯特曼;曾炜;N.沃瓦;S.索尔卡;M.阿克西安金 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 李舒;汪扬 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 操作系统 应用 编程 接口 投射 其他 语言 | ||
背景技术
操作系统典型地具有几个应用编程接口,这些应用编程接口允许应用访问由操作系统支持的功能性。这样的API典型地由操作系统通过使用某种计算机编程语言中的命名文件或对象而被规定。例如,C编程语言使用可能具有诸如“interface.h”那样的名字的首标文件。同样地,在C#中,称为“P/Invoke”签名的机制被使用来访问操作系统API。编写将利用操作系统API的计算机程序的人典型地在程序中包括对命名的 API文件或对象的引用,或使用由编程语言提供的另一种机制。该程序于是例如包括按照由该API使用的语法的、对由该API定义的函数的调用(call)。
以这种方式定义的API不能由与它们被编写的语言不同的语言直接访问。为了使得用其他语言编写的程序可访问API, API被“包装(wrap)”。这种包装典型地必须按API和按语言来人工地完成,并需要深入理解目标语言和API以及操作系统。因此,许多操作系统API是无法使用的。
发明内容
本概要被提供来以简化的形式介绍概念的选择,这些概念在下面的详细说明中被进一步描述。本概要既不打算确认所要求保护的主题的关键特征或必要特征,也不打算被使用来限制所要求保护的主题的范围。
当构建操作系统时,关于API的信息被生成并被以已知的格式存储在操作系统内的已知位置。这个信息充分描述由操作系统所显露的(expose)所有的API。这包括(但不限于)各种各样类型的关于API的命名元素的信息,诸如基本类型、枚举类型、结构、委托(delegate)、接口、类(class)、方法、属性和事件。这个信息被存储在API元数据文件中。
语言编译器或解释器使用这个API信息来用目标语言构建本机(native)系统API的自然的和熟悉的表示。这个表示随不同的语言而变化(因为所谓的自然的和熟悉的东西是随不同的语言而变化的)。语言编译器或解释器可以在编译时和/或运行时间读取API信息,什么时间对所讨论的语言最适当就在什么时间。例如,类似C++那样的静态编译的语言将仅仅在编译时消费(consume)元数据,而类似Python或JavaScript那样的动态语言将仅仅在运行时间消费元数据。类似.NET或Java那样的环境多半既在编译又在运行时消费元数据。元数据被使用来允许应用引用在API中的命名的元素。构建了投射(projection),所述投射使用元数据来把API中的命名元素映射为在目标语言中的命名元素,以及定义包装器,所述包装器对在目标表示和本机操作系统表示之间的那些元素的数据进行编组(marshal)。
因此,一方面,描述操作系统的应用编程接口的元数据被存储在存储器中。假设有引用了应用编程接口之一的元素的、在按照某个编程语言的程序中的命名元素的指示,该命名元素通过使用元数据被投射到该编程语言中。投射可以在程序的编译或解释期间出现。投射可包括产生创建该编程语言中的一个或多个元素的代码,以及按照类型来对用于所创建的元素的数据编组。接口――包括它们的方法、属性和事件――也可以被如此投射。投射还可以包括将异常(exception)从操作系统传播到应用。
操作系统API到其他语言的这样的投射可以在计算机实施的过程中,在包括一个或多个计算机存储媒体的制造品中,或在计算机器中被体现。
在以下的说明中,参考了形成本说明的一部分的附图,且在图上,作为举例说明,显示了本技术的具体的示例性实现。应当理解,可以利用其它实施例以及可以做出结构的改变而不背离本公开内容的范围。
附图说明
图1是包括API到其它编程语言的投射的系统的框图。
图2是图示开发工具的示例性操作的流程图。
图3是图示编译器或解释器的示例性操作的流程图。
图4是可以在其中实施这样的系统的示例性计算设备的框图。
具体实施方式
下面的段落提供在其中可以实施本机系统API到其它语言的这样的投射的示例性操作环境。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210317710.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种提高块体非晶合金及其结构件室温塑性的装置
- 下一篇:布置区块