[发明专利]拉姆达表达式有效
申请号: | 200680027768.1 | 申请日: | 2006-06-23 |
公开(公告)号: | CN101233487A | 公开(公告)日: | 2008-07-30 |
发明(设计)人: | H·J·M·梅杰;A·赫杰斯伯格;D·F·布克斯;M·J·瓦纳;L·伯洛格纳斯;G·S·凯茨泽伯格;P·A·豪拉姆;D·C·库尔卡尼 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 上海专利商标事务所有限公司 | 代理人: | 张政权 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 拉姆达 表达式 | ||
1.一种计算机程序编译系统,包括:
获得与拉姆达表达式有关的上下文信息的上下文组件;以及
基于由所述上下文组件提供的上下文信息来推导与所述拉姆达表达式相关联的类型的推导组件。
2.如权利要求1所述的系统,其特征在于,还包括便于指定包括零个或多个隐式和/或显式类型化参数以及主体的拉姆达表达式的开发组件。
3.如权利要求2所述的系统,其特征在于,所述拉姆达表达式采用以下形式之一:|参数|主体、||=主体、参数=>主体、(参数)=>主体、参数==>主体、以及(参数)==>主体。
4.如权利要求3所述的系统,其特征在于,所述主体包括表达式和语句块之一。
5.如权利要求1所述的系统,其特征在于,所述上下文组件从所述拉姆达表达式向其赋值的函数中检索上下文信息。
6.如权利要求5所述的系统,其特征在于,所述推导组件包括将所述函数的返回类型与所述拉姆达表达式的返回类型进行比较以验证所推导的类型的确认组件。
7.如权利要求6所述的系统,其特征在于,所述函数是委托类型和泛型委托类型之一。
8.如权利要求5所述的系统,其特征在于,所述上下文组件从拉姆达表达式参数类中检索上下文信息。
9.如权利要求1所述的系统,其特征在于,还包括将所推导的类型与一个或多个显式类型进行比较并在所述显式类型不匹配所推导的类型时生成错误的类型检查器组件。
10.如权利要求1所述的系统,其特征在于,还包括在所述拉姆达表达式和一重载方法的参数相同的情况下基于所述拉姆达表达式的返回类型选择所述方法的选择组件。
11.一种计算机实现的拉姆达表达式转换方法,包括:
确定一拉姆达表达式的电子表示与一委托类型是否兼容;以及
如果所述表达式和所述类型兼容,则将所述拉姆达表达式转换成所述委托类型,否则生成错误。
12.如权利要求11所述的方法,其特征在于,确定兼容性包括分析所述委托类型,如果所述委托类型具有空返回类型或者包括引用或传出参数,则所述拉姆达表达式和所述委托类型不兼容。
13.如权利要求12所述的方法,其特征在于,确定兼容性包括分析所述拉姆达表达式和所述委托类型中每一个的参数,如果所述拉姆达表达式和所述委托类型具有不同数目的参数和/或相应的参数是不同类型的,则所述拉姆达表达式和所述委托类型不兼容。
14.如权利要求13所述的方法,其特征在于,确定兼容性包括分析与所述拉姆达表达式相关联的表达式主体,如果所述表达式主体与所述委托类型的返回类型是相同类型或者可被转换成所述委托类型的返回类型,则所述拉姆达表达式和所述委托类型兼容。
15.一种其上储存有用于执行如权利要求11所述的方法的计算机可执行指令的计算机可读介质。
16.一种计算机实现的重载解决方法,包括:
标识一方法自变量中的拉姆达表达式;
确定所述拉姆达表达式的返回类型;以及
基于所述返回类型选择所述重载方法之一。
17.如权利要求16所述的方法,其特征在于,选择所述重载方法之一包括选择与所述拉姆达表达式具有相同返回类型的方法。
18.如权利要求16所述的方法,其特征在于,选择所述重载方法之一包括选择具有与所述拉姆达表达式的返回类型兼容的返回类型的方法。
19.如权利要求16所述的方法,其特征在于,确定所述返回类型包括获得与所述拉姆达表达式有关的上下文信息并基于所述上下文信息推导所述返回类型。
20.一种其上储存有用于执行如权利要求16所述的方法的计算机可执行指令的计算机可读介质。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680027768.1/1.html,转载请声明来源钻瓜专利网。