[發明專利]類型推理和類型導向的后期綁定無效
| 申請號: | 200680032080.2 | 申請日: | 2006-08-15 |
| 公開(公告)號: | CN101253478A | 公開(公告)日: | 2008-08-27 |
| 發明(設計)人: | H·J·M·梅杰;B·C·貝克曼;D·N·舒阿奇;A·希爾維;P·A·維克;P·F·德亞頓;A·Y·阿哈羅尼;R·拉梅爾 | 申請(專利權)人: | 微軟公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44;G06F9/45 |
| 代理公司: | 上海專利商標事務所有限公司 | 代理人: | 張政權 |
| 地址: | 美國華*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 類型 推理 導向 后期 綁定 | ||
背景
隨著編程方法和基礎的發展,業已開發出各種應用編程接口(API)和編程模 式來將先前多變型且相對不兼容的編程方法進行標準化和統一化。因此,現代編程 經常是將各種API和模式與可再用庫聯用。此類編程語言持續不斷地演進以便于 程序員做指定并便于程序的高效率執行。
編譯器和/或解釋器承擔著將高級邏輯翻譯成可執行機器代碼的重任。一般而 言,編譯器和/或解釋器是接收以源代碼編程語言(例如,C、C#、Visual?Basic、 Java等)指定的程序并且將由此提供的邏輯轉換成可由硬件設備執行的機器語言的 組件。然而,這種轉換無需逐字進行。實際上,常規編譯器和/或解釋器對源代碼 進行分析并且生成非常高效率的代碼。例如,程序員寫的代碼闡述對人類而言直觀 且易于理解的操作邏輯流,但是這些代碼就計算機執行而言通常效率低下。編譯器 和/或解釋器能夠標識出效率低下之處并且能通過消除不必要的操作和/或在仍實 現預期結果的同時重新編排指令的執行從而在硬件層面上改善程序性能。以此方 式,程序員就能夠創建出強健且高效率的軟件程序。
編程語言包括靜態語言和動態語言。靜態語言要求在編譯之時大多數程序結 構-諸如變量和函數自變量的類型-是確定的。編譯器能夠以運行時靈活性為代價 檢測差錯并優化性能。另一方面,動態語言允許用戶對程序結構進行更多的運行時 更改,諸如將不同類型的自變量傳遞給同一函數、以及在某些語言中還可定義新的 類型或類。動態環境能夠使運行時定義和鏈接得以進行。
一般而言,類型推理是方便程序員寫出正確地歸類的應用程序的語言機制。 請考慮:
Dim?X=″Hello″
作為一個Visual?Basic語句的情形,該語句既宣示了變量X還將其值初始化為字符 串″Hello″。編譯器知曉右手側的類型是String(字符串)。因此,編譯器能夠推理 出變量的類型應該是X。當前,編譯器將X的類型設置為該語言中最普通的類型 “Object(對象)”,并且利用后期綁定來解析后面僅對類型String合法的像 ″X.L.ength()″這樣的代碼。
后期綁定”指的是其中編譯器在運行時插入代碼以查找方法“Length(長度)” 的操作。對后綁定成員名的這種能力對于其中不能靜態獲知數據結構的數據密集型 程序、以及對于編寫通用解釋代碼而言尤為重要。然而,后期綁定盡管非常靈活, 但有時候也會引入運行時開銷并降低用戶界面內的設計時提示(例如,當利用諸如 Intellisense之類的援助提供者時)。這會妨礙程序語言的靈活性。
因此,需要克服與常規系統和設備相關聯的前述示例性缺陷。
概述
以下呈現了簡化概述,以提供對權利要求主題的某些方面的基本理解。本概 述不是廣范的縱覽。它并非意在標識關鍵/重要元素,亦非意欲描繪權利要求主題 的范圍。這一概述的唯一目的是以一種簡化的形式來介紹一些概念,作為稍后呈現 的更為詳細的描述的前序。
本發明提供了通過供給可選擇進入(或選擇退出)后期綁定的選項組件來平 衡編程語言中后期綁定和前期綁定的系統和方法,其中后期綁定是基于變量的靜態 類型(例如,對象或類型/字符串)而觸發的。類型推理組件以編程語言實現,并 且可以調用合適的后綁定助手(例如,用于XML類型的值的XML后綁定助手、 對象的反射后綁定助手等)來以類型導引后期綁定。由此,可基于為變量指定的類 型來觸發后期綁定。選項組件可以包括智能標簽或類似的重構機制,這能夠讓用戶 選擇“作為字符串”或“作為對象”,且不僅指定是否期望后期綁定,還指定例如 后期綁定的類型。后期綁定可以是有關該編程語言的默認場景,并且用戶能夠選擇 退出。或者,編程語言可以包括非后期綁定作為默認,其中用戶可選擇進入。此外, 在Visual?Basic(VB)句法的上下文中,智能標簽在被點擊時能夠展開,以顯式地 指示類型,其中變量聲明即已可用。
根據本發明的另一方面,變量可以在編程語言的不同區域(例如,程序段) 具有不同的靜態類型。此外,可以執行分析來標識變量在程序的不同段處的類型, 或者為該變量標識一組可能的類型。這能夠減輕類型的早期束縛,而如果類型是可 接受的,則可在稍后的時間提供校驗。還可以向用戶提供有關變量類型變化的反饋 警告(相對于差錯而言)。這能夠為向戶提供靈活性,于是例如相同的變量名就能 在整個編程代碼中的若干場合使用。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于微軟公司,未經微軟公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200680032080.2/2.html,轉載請聲明來源鉆瓜專利網。





