[發明專利]從代碼使用中創建所推斷的符號有效
| 申請號: | 201080060704.8 | 申請日: | 2010-12-31 |
| 公開(公告)號: | CN102696012A | 公開(公告)日: | 2012-09-26 |
| 發明(設計)人: | 劉凱玲;K·皮爾希-比森 | 申請(專利權)人: | 微軟公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30;G06F9/06 |
| 代理公司: | 上海專利商標事務所有限公司 31100 | 代理人: | 胡利鳴 |
| 地址: | 美國華*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 代碼 使用 創建 推斷 符號 | ||
背景
動態編程語言在運行時執行其他(動態編程)語言如果執行的話通常在編譯期間執行的行為。在運行時由動態語言執行的行為包括:通過在程序執行期間添加新代碼、創建對象和定義、修改類型系統等等來對程序進行擴展。
動態編程語言通常是動態地類型化的,這意味著,類型檢查是在運行時執行的。在動態類型化時,類型與從程序的執行中得到的值相關聯。動態類型化語言包括Clojure、Groovy、JavaScript、Lisp、Objective-C、PHP、Prolog、Python、Ruby、Smalltalk、Visual?Basic中的后期綁定、IronPython和IronRuby。動態類型化沒有靜態類型化那么嚴格,但可以導致較大可能性的執行錯誤(例如由于變量的值具有不允許的類型而引起的出錯結果)。動態類型化的語言系統通常使得對源代碼的編譯時檢查較少。運行時檢查可能是更復雜的,因為除了在編譯期間存在過并且在運行時仍可用的信息之外,它們還可以使用動態(運行時)信息。運行時檢查斷言條件在程序的特定執行中成立并且對程序的每次執行重復。
綁定選擇在源代碼中時應用句法操作時使用哪個實際操作。綁定可以要么發生在編譯時(在該情況下被稱為“靜態綁定”)、要么動態地發生在運行時(這被稱為“動態綁定”)。動態綁定推遲對未定義的變量的解析直到程序運行。動態綁定與靜態綁定是不同的,因為其結果——例如被分配給操作的含義——取決于其所操作的實際值的運行時類型,而不是源代碼中的變量的編譯時類型。通常,靜態類型化的編程語言執行靜態綁定,而動態類型化的編程語言執行動態綁定。然而,當靜態語言包含動態綁定(比如具有動態語言特性的C#4.0)或者相反時,可能具有二者的混合。
測試驅動的開發是指一種迭代軟件開發技術,其中開發者首先編寫確認所期望的改進或新功能的測試情況,然后開發者產生致使測試通過的代碼,然后是重構代碼庫以考慮到任何新的系統要求。例如,包括操縱對象的邏輯的代碼可以在編寫定義所述對象的代碼以前編寫。換言之:消費(消費性)代碼是在編寫被消費對象以前編寫的。
概述
動態編程技術和測試驅動的開發具有至少一個相互挑戰。在兩種情況下,由于底層被消費代碼還未被創建,因此依靠可用底層代碼的工具不能例如通過在用戶將代碼鍵入到源代碼編輯器中時為了自動完成而顯示可能的選擇來輔助開發過程。根據在此公開的主題的各方面,基于符號在整個代碼內的使用(或可能的使用)來創建諸如包括所推斷的節點的句法樹或語義樹和/或包括所推斷的符號的符號表之類的數據結構。所推斷的節點和/或所推斷的符號可以通過學習算法來生成。工具可以使用這樣創建的句法樹等等來提供關于還未被創建或還未被綁定的符號的信息以供用在動態編程和測試驅動的開發中。
表示源代碼的數據結構可以由后臺編譯器在交互式程序開發期間生成。可以基于輸入到源代碼編輯器中的源代碼將一個或多個符號添加到數據結構,其中所述符號是在沒有所述符號的在先定義的情況下基于所述符號的使用從源代碼中推斷出的??梢曰趯⒁唤M規則應用到未定義的符號來創建所推斷的符號。響應于從用戶接收到這樣做的指示,可以將所推斷的符號轉換成實符號。所推斷的符號到實符號的轉換可以由開發者的動作觸發以基于所推斷的符號自動生成源代碼。自動添加的源代碼將包括未定義的符號的定義。與所推斷的符號相關聯的信息可以響應于編程環境中的進入“建議模式”的選項的激活而顯示在軟件開發工具中。
提供本概述以便以簡化的形式介紹將在以下詳細描述中進一步描述的一些概念。本概述并不旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于限制所要求保護的主題的范圍。
附圖簡述
在附圖中:
圖1a示出了根據在此公開的主題的各方面的用于從代碼使用中創建所推斷的符號的系統100的示例;
圖1b示出了現有技術中已知的樹10的示例;
圖1c示出了根據此處所公開的主題的各方面的樹12的示例;
圖2是根據此處所公開的主題的各方面的用于從代碼使用中創建所推斷的符號的方法200的示例的流程圖;
圖3是示出了其中可以實現此處所公開的主題的各方面的計算環境的示例的框圖;以及
圖4是根據此處所公開的主題的各方面的集成開發環境的示例的框圖。
詳細描述
概覽
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于微軟公司,未經微軟公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201080060704.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:繞線系統
- 下一篇:一種裝有阻尼管阻尼器的平趟門用軌道滑動架





