[發明專利]拉姆達表達式有效
| 申請號: | 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 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 拉姆達 表達式 | ||
背景
編程語言持續發展以便于程序員的說明以及高效的執行。在早期的計算機語言中,低級機器碼是普遍的。采用機器碼,計算機程序或構成計算機程序的指令是用機器語言或匯編語言來編寫的,并由硬件(例如,微處理器)執行。這些語言提供了控制計算硬件的有效手段,但是對程序員而言非常難以理解和開發復雜邏輯。隨后,引入了提供各層抽象的語言。因此,程序員可用較高級源語言在較高的級別上編寫程序,該程序然后經由編譯器或解釋器轉換成硬件理解的較低級機器語言。編程中的進一步進展提供了另外的抽象層,以允許比以前快得多地指定更高級的編程邏輯。然而,這些進步并不是在沒有處理成本的情況下發生的。
編譯器和/或解釋器承擔了將高級邏輯轉換成可執行機器碼的負擔。一般而言,編譯器和/或解釋器是接收以源編程語言(例如,C、C#、Visual?Basic、Java…)指定的程序并將由此提供的邏輯轉換成可由硬件設備執行的機器語言的組件。然而,轉換無需逐字完成。實際上,常規的編譯器和/或解釋器分析源代碼并生成非常高效的代碼。例如,程序員編寫直觀且為人們易于理解的陳述了操作邏輯流程的代碼,但是這通常對計算機執行而言是低效的。編譯器和/或解釋器可標識該低效性并通過消除不必要的操作和/或重新排列指令的執行同時仍實現預期的結果而在硬件級上改進程序性能。以此方式,程序員可創建健壯且高效的軟件程序。
概述
以下提出了簡化概述以提供對所要求保護的主題的某些方面的基本理解。本概述并不是廣泛綜述。它并不旨在標識所要求保護的主題的關鍵/決定性要素,也不旨在描繪其范圍。其唯一的目的是以簡化形式提出某些概念作為以后提出的更詳細描述的序言。
簡言之,所提供的主題涉及拉姆達表達式以及這種表達式在命令性和/或面向對象的計算機編程語言中的應用。拉姆達表達式提供了比常規形式更簡明的指定值或數據的方式。例如,拉姆達表達式可提供指定匿名方法的更簡潔且功能性方式。
拉姆達表達式也可參與類型推導。拉姆達表達式本身無需具有類型。相反,它可具有參數類型和返回類型等等。為減少與拉姆達表達式的指定相關聯的冗長性,這些類型不必明確規定。提供了用于基于上下文來推導這些類型的系統和方法。
另外,拉姆達表達式可便于重載解決。例如,在一方法被重載的情況中,拉姆達表達式可便于選擇一特定方法。例如,在將拉姆達表達式用作重載方法的自變量時,該表達式的返回類型可用作選擇特定方法的因素。
為實現上述和相關目的,此處結合以下描述和附圖描述了所要求保護的主題的某些說明性方面。這些方面指示了可實施本主題的各種方式,所有這些都旨在落入所要求保護的主題的范圍之內。當結合附圖考慮以下詳細描述時,其它優點和新穎特征將變得顯而易見。
附圖簡述
圖1是用于拉姆達表達式的執行系統的框圖。
圖2是用于支持拉姆達表達式的編程系統的框圖。
圖3是類型轉換系統的框圖。
圖4是推導與拉姆達表達式相關聯的類型的類型推導系統的框圖。
圖5是對拉姆達表達式進行類型檢查的類型檢查系統的框圖。
圖6是重載解決系統的框圖。
圖7是拉姆達表達式執行方法的流程圖。
圖8是編程方法的流程圖。
圖9是拉姆達表達式轉換方法的流程圖。
圖10是與拉姆達表達式相關聯的類型推導方法的流程圖。
圖11是示例性類型推導方法的流程圖。
圖12是重載解決方法的流程圖。
圖13是編譯環境的示意性框圖。
圖14是示出合適的操作環境的示意性框圖。
圖15是示例計算環境的示意性框圖。
詳細描述
現在參考附圖來描述本發明的各方面,在全部附圖中相同的標號指代相同或對應的元素。然而,應當理解,附圖和所涉及的詳細描述并不旨在將所要求保護的主題限于所公開的具體形式。相反,本發明覆蓋落入所要求保護的主題的精神和范圍內的所有修改、等效技術方案和替換方案。
如此處所使用的,術語“組件”、“系統”等指的是計算機相關的實體,它或者是硬件、硬件和軟件的組合、軟件、或者是執行中的軟件。例如,組件可以是,但不限于,運行在處理器上的進程、處理器、對象、可執行代碼、執行的線程、程序和/或計算機。作為說明,運行在計算機上的應用程序和計算機都可以是組件。一個或多個組件可駐留在一個進程和/或執行的線程內,并且組件可位于一臺計算機上和/或分布在兩臺或多臺計算機之間。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于微軟公司,未經微軟公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200680027768.1/2.html,轉載請聲明來源鉆瓜專利網。





