[發明專利]拉姆達表達式有效
| 申請號: | 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.szxzyx.cn/pat/books/200680027768.1/1.html,轉載請聲明來源鉆瓜專利網。





