国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      從外部程序環(huán)境調(diào)用后綁定函數(shù)的制作方法

      文檔序號:6568438閱讀:155來源:國知局
      專利名稱:從外部程序環(huán)境調(diào)用后綁定函數(shù)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及到應(yīng)用以及軟件組件,特別涉及從先綁定的應(yīng)用中調(diào)用后 綁定函數(shù)的方法與系統(tǒng)。
      背景技術(shù)
      在應(yīng)用中綁定函數(shù)調(diào)用需要用真實(shí)的機(jī)器地址取代對該函數(shù)的符號 地址。因此,綁定操作確定哪個(gè)函數(shù)(即實(shí)現(xiàn)該功能的代碼部分)在運(yùn)行 時(shí)執(zhí)行。當(dāng)綁定發(fā)生在編譯階段時(shí),該綁定為"先綁定"。與此相對應(yīng)地, 當(dāng)綁定發(fā)生在運(yùn)行時(shí),該綁定為"后綁定"。通??蓪⒕幊陶Z言分類為先 綁定的或后綁定的。函數(shù)調(diào)用綁定時(shí)間的選擇(即是先綁定還是后綁定)是運(yùn)行時(shí)的代碼 性能(先綁定在運(yùn)行時(shí)更快)和程序員在編程時(shí)的便易性(后綁定程序更 易于編寫)之間的一種折衷。當(dāng)前,程序員必須決定以下何種更為重要這是一種很難做出的選擇。在現(xiàn)有的系統(tǒng)中還沒有機(jī)制能有效地平衡這種 折衷。發(fā)明內(nèi)容本發(fā)明提供了一種將后綁定程序函數(shù)集成到外部程序環(huán)境之中的方 法和系統(tǒng)。該外部程序環(huán)境可以是先綁定環(huán)境,也可以是后綁定環(huán)境,或 者兩種環(huán)境的組合。根據(jù)本發(fā)明的第 一個(gè)方面,提供了 一種將后綁定應(yīng)用集成到外部程序 環(huán)境中的方法。提供后綁定程序和后綁定環(huán)境,隨后加以斥全測以確定哪些后綁定調(diào)用存在于后綁定程序和環(huán)境中而應(yīng)當(dāng)使其為外部環(huán)境可用。然后 生成一個(gè)接口 ,其中該接口允許將這些后綁定函數(shù)調(diào)用集成到該外部程序 環(huán)境中。用于實(shí)現(xiàn)本發(fā)明的外部環(huán)境可以是后綁定環(huán)境、先綁定環(huán)境或者 它們的組合。在本發(fā)明的另 一個(gè)方面中,提供了 一種用于將后綁定程序語言集成 到外部環(huán)境中的系統(tǒng),其中該系統(tǒng)包括一個(gè)外部環(huán)境, 一個(gè)后綁定程序和 程序環(huán)境。該外部環(huán)境可以是后綁定程序環(huán)境、也可以是先綁定程序環(huán)境、 或者它們的某種組合。后綁定程序環(huán)境包括一個(gè)模塊化執(zhí)行引擎和一種接 口機(jī)構(gòu),使得該接口機(jī)構(gòu)允許用外部環(huán)境兼容的格式表達(dá)后綁定語義。在本發(fā)明的又一個(gè)方面中,提供了一種將可執(zhí)行的后綁定內(nèi)容打包到 與外部程序環(huán)境一起使用的可重新發(fā)布的應(yīng)用之中的方法。該外部環(huán)境可 以是后綁定程序環(huán)境、或是先綁定程序環(huán)境或者它們的某種組合。該方法包括以下步驟首先檢查后綁定內(nèi)容,以確定后綁定內(nèi)容中的哪些文件代 表后綁定應(yīng)用。然后提供后綁定模塊化執(zhí)行引擎,其中,模塊化執(zhí)行引擎 僅包含那些支持后綁定應(yīng)用所必需的函數(shù)。而且,模塊化執(zhí)行引擎被配置 成僅執(zhí)行那些支持后綁定應(yīng)用所必需的函數(shù)。在本發(fā)明的又一個(gè)方面中,提供了一種包括客戶端與服務(wù)器的網(wǎng)絡(luò), 其中服務(wù)器端能夠執(zhí)行后綁定程序環(huán)境和外部程序環(huán)境。 一些合適的外部 環(huán)境包括(但不局限于)后綁定程序環(huán)境,先綁定程序環(huán)境或者它們的組 合??蛻舳送ㄟ^網(wǎng)絡(luò)與服務(wù)器進(jìn)行通信。所生成的接口允許后綁定程序和 程序環(huán)境與外部程序環(huán)境之間的數(shù)據(jù)交換,以使得能夠?qū)⒑蠼壎☉?yīng)用集成 到外部程序環(huán)境中。在本發(fā)明的一個(gè)可選擇的方面中,描述了 一種用于將后綁定應(yīng)用集成 到外部環(huán)境中的系統(tǒng),其中分發(fā)服務(wù)器用于向客戶端設(shè)備提供信息。此外, 還提供了 一種接口機(jī)構(gòu),其中該接口機(jī)構(gòu)允許將后綁定函數(shù)調(diào)用集成到外 部程序環(huán)境中。


      以下,結(jié)合附圖來詳細(xì)說明本發(fā)明的實(shí)施例,其中 圖1為對用于實(shí)現(xiàn)本發(fā)明的示意性實(shí)施例的電子設(shè)備進(jìn)行說明的方框 示意圖;圖2描述了一種適于實(shí)現(xiàn)本發(fā)明的示意性實(shí)施例的客戶端-服務(wù)器環(huán)境,其中后綁定函數(shù)能被合并到外部編程環(huán)境中;圖3描述了用于實(shí)現(xiàn)本發(fā)明的示意性實(shí)施例的組件;圖4是對示意性實(shí)施例中的組件交互進(jìn)行詳細(xì)說明的圖例;圖; '、口 "'''曰、'、?、圖6是用于將后綁定函數(shù)調(diào)用集成到后綁定程序環(huán)境中所必需的組件 的一個(gè)示意性實(shí)施例。
      具體實(shí)施方式
      本發(fā)明的示意性實(shí)施例提供了 一種機(jī)制,其對于存在于外部程序環(huán)境 之中的應(yīng)用調(diào)用在后綁定的語言中存在的函數(shù)。為了說明之目的,下面將 參照將后綁定函數(shù)集成到先綁定外部程序環(huán)境進(jìn)行描述。還存在一些可替 代的外部環(huán)境,包括但不局限于那些包含先綁定語言、后綁定語言、或者 它們的組合的環(huán)境。在本實(shí)施例中,將后綁定函數(shù)集成到先綁定環(huán)境之中 允許程序員選擇何時(shí)實(shí)現(xiàn)執(zhí)行時(shí)間與編碼便易性之間的折衷。因此,程序的函數(shù)則采用后綁定函數(shù)調(diào)用。將后綁定函數(shù)的調(diào)用集成到先綁定編程環(huán)境之中,除了提供前述的折 衷平衡外,還具有很多其它的優(yōu)點(diǎn)。首先,這種集成為先綁定編程環(huán)境提 供了一種利用后綁定的表達(dá)能力之優(yōu)點(diǎn)的方式。其次,這種集成使得先綁 定編程環(huán)境能夠?qū)⒁粋€(gè)先綁定函數(shù)調(diào)用與 一個(gè)或多個(gè)后綁定函數(shù)調(diào)用的 集合相綁定。再次,它為大量的遺留系統(tǒng)提供了包括進(jìn)更多現(xiàn)代編程方法 的方式,例如所發(fā)現(xiàn)的采用后綁定函數(shù)調(diào)用的方式。在替換實(shí)例中,將后綁定函數(shù)集成到后綁定程序環(huán)境中能提供大量的 優(yōu)點(diǎn),而這些優(yōu)點(diǎn)是在利用將后綁定函數(shù)集成到先綁定語言時(shí)并不容易被 認(rèn)識到的。例如,大多數(shù)后綁定程序語言專門用于在某一特殊問題領(lǐng)域中 操作。例如,LISP后綁定語言特別適用于對字符串列表中的符號處理。與 之相比,后綁定PROLOG編程語言則適用于原理的證明以及邏輯推理問 題。與之相比,后綁定MATLAB編程語言適合于在數(shù)值線性代數(shù)領(lǐng)域中 操作。上述的后綁定程序語言僅用于說明可用于本發(fā)明的可用的后綁定程 序環(huán)境中的一些實(shí)例。這里所列出的例子并不是明確的,作為本領(lǐng)域的普 通技術(shù)人員很容易理解,存在著大量的可適用于本發(fā)明的后綁定程序環(huán)境。當(dāng)將后綁定函數(shù)的調(diào)用集成到后綁定環(huán)境中時(shí),本發(fā)明允許用戶構(gòu)造 一種程序,其將對多種后綁定語言的調(diào)用組合起來,以便采用最合適的語 言來解決存在的計(jì)算問題。出于示例目的,本示意性的實(shí)施例將針對MATLAB的環(huán)境進(jìn)行詳細(xì) 的說明。雖然本示意性實(shí)施例將會針對基于MATLAB的應(yīng)用進(jìn)行說明, 但本發(fā)明可以被用來配置和發(fā)布在不同的編程和開發(fā)環(huán)境中所生成的應(yīng) 用,例如但不局限于由國家儀器公司(National Instruments,Inc)提供的 Lab view, LISP,或PROLOG 。MATLAB 是一種直觀高性能的語言和技術(shù)計(jì)算環(huán)境。MATLAB 為數(shù) 據(jù)分析、可視化以及程序的開發(fā)提供了數(shù)學(xué)和圖形工具。MATLAB "— 個(gè)易用環(huán)境集成了計(jì)算與編程,在所述的易用環(huán)境中,問題與解決方案用 人們熟悉的數(shù)學(xué)符號表達(dá)。MATLAB⑧是一種交互系統(tǒng),該系統(tǒng)中的基本 數(shù)據(jù)元素是無需定義維數(shù)的數(shù)組。這使得用戶在解決許多技術(shù)性計(jì)算問 題、特別是那些要用到矩陣和向量公式的問題時(shí),編寫程序所花費(fèi)的時(shí)間 僅是一種標(biāo)量非交互語言(例如C和FORTRAN等)所花費(fèi)時(shí)間的一,J、部 分。MATLAB⑧提供了包括MATLAB⑧編譯器在內(nèi)的應(yīng)用開發(fā)工具。用于 COM的MATLAB⑧編制器(Builder )和用于Excel工作的MATLAB②編制 器(Builder )與MATLAB⑧編譯器協(xié)同工作,以自動生成在COM和Excel 環(huán)境中執(zhí)行的對象。這些應(yīng)用開發(fā)工具使得用戶能夠創(chuàng)建并分配 MATLAB 應(yīng)用并與可能使用MATLAB 或其他環(huán)境的同事共享 MATLAB⑧成果。圖1描述了適用本發(fā)明的描述性實(shí)施例的電子設(shè)備100的一個(gè)實(shí)施 例。電子設(shè)備100代表許多不同的技術(shù),例如個(gè)人電腦(PC),膝上型電 腦,工作站,個(gè)人數(shù)字助理(PDA),因特網(wǎng)用具,蜂窩電話,以及類似 的設(shè)備。在所示的實(shí)施例中,電子設(shè)備100包括中央處理單元(CPU) 102 以及顯示設(shè)備104。顯示設(shè)備104使得電子設(shè)備100通過視覺顯示器直接 與用戶進(jìn)行通信。電子設(shè)備100還包括鍵盤106以及例如鼠標(biāo)器的輸入設(shè) 備108。其他未被描述的潛在輸入設(shè)備包括但不局限于指示筆,軌跡球, 控制桿,觸摸墊,觸摸屏,以及其他類似的設(shè)備。電子設(shè)備100包括用于 存儲數(shù)據(jù)和指令的第一存儲設(shè)備110和第二存儲設(shè)備112。存儲設(shè)備110 和112包括但不局限于如下技術(shù)軟盤驅(qū)動器,硬盤驅(qū)動器,磁帶驅(qū)動器,光盤驅(qū)動器,只讀存儲器(ROM),隨機(jī)存取存儲器(RAM),以及其他 類似的設(shè)備。如瀏覽器,JAVA虛擬機(jī)之類的應(yīng)用程序,以及其他實(shí)用程 序和應(yīng)用可以駐留在存儲設(shè)備110和112之一或二者中。電子設(shè)備100還 可以包括用于與 一個(gè)或多個(gè)在圖示的電子設(shè)備100之外的外部電子設(shè)備進(jìn) 行通信的網(wǎng)絡(luò)接口 114。調(diào)制解調(diào)器是用來實(shí)現(xiàn)與外部的電子設(shè)備或網(wǎng)絡(luò) 建立連接的網(wǎng)絡(luò)接口 114的一種形式。CPU102通過內(nèi)部或外部方式連接 到前述的一個(gè)或多個(gè)部件。除了前述的這些應(yīng)用之外,可以在電子設(shè)備100 上安裝并運(yùn)行例如MATLAB 116的建模應(yīng)用。應(yīng)當(dāng)注意的是,電子設(shè)備100僅僅代表了實(shí)現(xiàn)本發(fā)明的一種結(jié)構(gòu)。盡 管如此,本領(lǐng)域普通技術(shù)人員將會認(rèn)識到本發(fā)明并不局限于以上具體描述 的設(shè)備100??梢圆捎闷渌愋偷膶?shí)現(xiàn)方式,包括部分或整體基于嵌入代 碼的實(shí)現(xiàn)方式,在此則不需要用戶輸入或顯示設(shè)備;而且,處理器能夠與 其他處理器或設(shè)備直接進(jìn)行通信。圖2是對用于實(shí)現(xiàn)本發(fā)明的分布式網(wǎng)絡(luò)的示意性實(shí)施例。該系統(tǒng)包括 與網(wǎng)絡(luò)200相連的客戶端設(shè)備202。網(wǎng)絡(luò)上還連接有服務(wù)器設(shè)備204、接 口機(jī)構(gòu)210和存儲設(shè)備206 。接口機(jī)構(gòu)210能夠?qū)⒑蠼壎ê瘮?shù)調(diào)用集成到 先綁定程序環(huán)境之中。當(dāng)在面向?qū)ο蟮沫h(huán)境中進(jìn)行編程時(shí),采用后綁定函數(shù)調(diào)用的優(yōu)點(diǎn)之一 在于,能夠使得開發(fā)者在編寫代碼時(shí)無需就所要操作的對象的確切對象類 型而作特殊的考慮。換句話說,后綁定函數(shù)調(diào)用可以支持多態(tài)。利用本發(fā)明的接口機(jī)構(gòu)210,當(dāng)先綁定編譯器在編譯時(shí)遇到存在于后 綁定環(huán)境中的后綁定函數(shù)時(shí),,利用該接口機(jī)構(gòu)210, 先綁定環(huán)境中的編 譯器允許在運(yùn)行時(shí)執(zhí)行存在于后綁定環(huán)境中的后綁定函數(shù)。接口機(jī)構(gòu)210 作為一組后綁定函數(shù)的代理,該后綁定函數(shù)組中的某一個(gè)(根據(jù)在運(yùn)行時(shí) 輸入的類型)將在運(yùn)行時(shí)被調(diào)用。此外,為了舉例說明的目的,在本實(shí)施例中的接口機(jī)構(gòu)是與網(wǎng)絡(luò)200 相連接的;但本領(lǐng)域的普通技術(shù)人員4艮容易理解,該接口機(jī)構(gòu)210還能夠 連接到客戶端設(shè)備202、服務(wù)器204或者它們的組合。本領(lǐng)域的普通技術(shù) 人員還可以認(rèn)識到,本實(shí)施例中的網(wǎng)絡(luò)只是一個(gè)示例性的實(shí)例,它的功能 可以以任意的方式分到整個(gè)網(wǎng)絡(luò)中。例如,多個(gè)客戶端可以與一個(gè)服務(wù)器 連接, 一個(gè)客戶端也可以連接到多個(gè)服務(wù)器上,或者上述情況的一些組合。圖3描述了應(yīng)用于本發(fā)明的示意性實(shí)施例中的組件。在圖示實(shí)施例中所描述的組件用于將后綁定函數(shù)集成到先綁定環(huán)境300之中。在一個(gè)示例 中,先綁定程序環(huán)境為由位于美國華盛頓州雷德蒙德市(Redmond)的微 軟公司所提供的Visual Studk^程序環(huán)境,后綁定函數(shù)為MATLAB⑧函數(shù)。 選擇MATLAB⑧和Visual Studio 只是出于舉例說明的目的。對多種其它在 先和后綁定語言的選擇都可用于實(shí)現(xiàn)本發(fā)明。在圖示的實(shí)例中,當(dāng)后綁定函數(shù)為MATLAB②函數(shù)時(shí),MATLAB㊣編譯 器生成后綁定接口函數(shù)304和306,后者是位于先綁定環(huán)境300中的先綁 定函數(shù)。這些接口函數(shù)304和306的名稱與功能完全在編譯時(shí)得到確定。 在運(yùn)行時(shí)內(nèi),這些接口函數(shù)304和306調(diào)用后綁定函數(shù)。具體的,后綁定 接口函數(shù)304通過一個(gè)模塊化后綁定執(zhí)行引擎302(下文中將作詳細(xì)說明) 調(diào)用包含有一個(gè)或多個(gè)后綁定函數(shù)的集合308。類似的,后綁定接口函數(shù) 306通過此模塊化后綁定執(zhí)行引擎302調(diào)用包含有一個(gè)或多個(gè)后綁定函數(shù) 的集合310。從而,提供了一種使得先綁定環(huán)境300能夠?qū)⒑瘮?shù)的綁定延 遲到所選定函數(shù)的運(yùn)行時(shí)的機(jī)制。正如圖3所示,后綁定接口函數(shù)304和306可能會引起多于一個(gè)后綁 定函數(shù)要被執(zhí)行(參見308和310)。也可能存在這樣的情況, 一個(gè)后綁定 接口函數(shù)與一個(gè)單獨(dú)的后綁定函數(shù)相關(guān)聯(lián),也可能存在其他情況,多個(gè)后 綁定函數(shù)與一個(gè)單獨(dú)的后綁定接口函數(shù)相關(guān)聯(lián)。此外,根據(jù)提供給接口函 數(shù)的輸入類型,每次調(diào)用會導(dǎo)致對所關(guān)聯(lián)的集合中一個(gè)不同的后綁定函數(shù) 的調(diào)用。在一個(gè)實(shí)施例中,接口機(jī)構(gòu)可通過應(yīng)用程序4妄口 (API)實(shí)現(xiàn),該"l妄 口具有可以從先綁定應(yīng)用調(diào)用的函數(shù)。API可被用于啟動對在后綁定環(huán)境 中的函數(shù)的調(diào)用。例如,在C程序環(huán)境下運(yùn)行的API能夠調(diào)用在MATLAB 后綁定環(huán)境中的函數(shù)??蛇x擇地,API可以是不需要其他輔助程序操作的 獨(dú)立可執(zhí)行程序。從以先綁定C語言運(yùn)行的應(yīng)用程序的角度看,在后綁定 MATLAB 應(yīng)用中所調(diào)用的函數(shù),表現(xiàn)為例如是一種傳統(tǒng)的函數(shù)調(diào)用,其 中函數(shù)及其參數(shù)是不言自明的,其輸出以與任何現(xiàn)有函數(shù)相類似的方式傳 遞。盡管將API作為接口機(jī)構(gòu)的實(shí)例加以描述,但接口機(jī)構(gòu)并不局限于采 用API,例如還可以是運(yùn)行于先綁定或后綁定環(huán)境中的軟件或硬件組件。 接口機(jī)構(gòu)能夠以先綁定編程環(huán)境在運(yùn)行時(shí)易于識別的格式,自動表達(dá)后綁 定編程環(huán)境的語義,并且如前面已經(jīng)提出的,可以采用適當(dāng)形式來表達(dá)所模塊化后綁定執(zhí)行引擎302提供用于執(zhí)行存在于后綁定環(huán)境中的函數(shù)的機(jī)制。由于這些函數(shù)是后綁定函數(shù),它們在運(yùn)行時(shí)被綁定在后綁定環(huán)境中。在后綁定環(huán)境為]\4^1!^3@環(huán)境的情況下,模塊化后綁定執(zhí)行引擎可 以是MATLAB②組件運(yùn)行引擎(runtime engine )。 MATLAB⑧組件運(yùn)行引擎 是一種獨(dú)立的共享庫的集合,所述的共享庫能夠執(zhí)行M-文件,MEX-文件 以及其它類型的MATLAB⑧可執(zhí)行內(nèi)容。采用MATLAB⑧組件運(yùn)行引擎作 為模塊化執(zhí)行引擎,當(dāng)在后綁定環(huán)境中執(zhí)行函數(shù)時(shí),無需在一個(gè)新的用戶 可視窗口中打開]^八11^8*組件運(yùn)行引擎;而是由組件運(yùn)行引擎以一種對 用戶不可見的方式在后臺執(zhí)行。本發(fā)明并不僅僅局限于MATLAB⑧應(yīng)用以及MATLAB②組件運(yùn)行引擎, 還可以用各種替代后綁定環(huán)境以及執(zhí)行引擎來實(shí)現(xiàn)。模塊后綁定模塊化后綁定執(zhí)行引擎302跟隨先綁定環(huán)境300中的后綁 定接口函數(shù)調(diào)用304或306的執(zhí)行,模塊后綁定模塊化后綁定執(zhí)行引擎302 既可以保持運(yùn)行,也可以終止。允許模塊后綁定模塊化后綁定執(zhí)行引擎302 保持運(yùn)行,可以使得從先綁定環(huán)境300中調(diào)用的后續(xù)的函數(shù)在后綁定環(huán)境 中執(zhí)行得更快,并且不再需要啟動模塊后綁定模塊化后綁定執(zhí)行引擎302。 可選擇地,在執(zhí)行后綁定函數(shù)之后終止在先綁定環(huán)境300中受到控制的模 塊化后綁定執(zhí)行引擎302,可以減少對處理器的需要和資源的分配,并且 在模塊化執(zhí)行引擎300終止時(shí),與模塊后綁定模塊化后綁定執(zhí)行引擎302相關(guān)聯(lián)的資源得以釋放。一個(gè)具體的實(shí)例有助于說明圖示示意性實(shí)施例的操作。該實(shí)例是 一 個(gè)來自于后綁定程序環(huán)境(例如MATLAB )之中的MTALAB⑧函數(shù),該函 數(shù)用于為任何的輸入lt字加10。該函數(shù)被稱為plus 10并定義如下function s = pluslO(x) s = x+10;disp([num2str(x)' + 10 =' num2str(s)]);以下所描述的是由MATLAB②編譯器從包含函數(shù)plus 10的M類型的 文件plus 10.m自動生成的C函lt庫的源文件。下面所列舉的第一個(gè)文件 是頭文件libplus.h。該頭文件之后跟隨文件libplus.c。函數(shù)mlfflus10是一個(gè)接口函lt的實(shí)例,該接口函數(shù)是存取由plus 10函數(shù)提供的MATLAB 功能的C程序調(diào)用。 以下為頭文件#ifndef_libplus—h #defme—libplus—h 1#include "mclmcr.h" #ifdef_cplusplus extern "C"{ #endifextern bool libplusInitializeWithHandlers(mclOutputHandlerFcn error—handler,mclOutputHandlerFcn print—handler); extern bool libpluslnitialize(void); extern void libplusTerminate(void);extern void mlxPlusl0(int函s, mxArray *plhs[], kit nrhs, mxArray *prhs[〗;extern void mlfPluslO(int nargout, mxArray **s, mxArray *x);#ifdef —cplusplus#endif#endif以下為libplus.c文件#include <stdio.h> #include"mclmcr.h" #include "libplus.h""C" { #endifextern const unsigned char —MCC COMPONENT_public_data[]; extern const char *—MCC—COMPONENT—name—data; extern const char *_MCC—COMPONENT—root—data; extern const unsigned char 一MCC—COMPONENT—session一data[]; extern const char *—MCC—COMPONENT—matlabpath—data[]; extern const int 一MCC_COMPONENT_matIabpath—data—count; extern const char *MCC—COMPONENT—mcr—runtime—options[]; extern const int 一MCC—COMPONENT_mcr—runtime—option—count; extern const char *一MCC—COMPONENT—mcr—application—options[]; extern const int 一MCC_COMPONENT_mcr—application_option_count; #ifdef —cplusplus }#endifstatic HMC腿STANCE —mcr—inst =麗LL; static int mclDefaultErrorHandler(const char *s)return fprintf(stderr, s); static int mclDefaultPrintHandler(const char *s)return fprintf(stdout, s);bool libpluslnitializeWithHandlers(mdOutputHandlerFcn error—handler, mclOutputHandlerFcn print—handlerreturn (—mcr—inst == NULL mcllnitializeComponentlnstance(&—mcr—inst,—MCC—COMPONENT_public_data, _MCC_COMPONENT_name_data, —MCC—COMPONENT—root—data, __MCC_COMPONENT_session—data, —MCC_COMPONENT—matlabpath_data, —MCC_COMPONENT—matlabpath_data_count, —MCC_COMPONENT—mcr—mntime_options, —MCC—COMPONENT—mcr—runtime—option—count, true, NoObjectType, LibTarget, NULL, error—handler, print—handler):true》bool libpluslnitialize(void)return libpluslnitializeWithHandlers(mclDefaultErrorHandler, mclD efaultP rintH andler);void libplusTerminate(void)if (—mcr一inst !=NULL)mclTerminatelnstance(&_mcr—inst);void mlxPluslO(int nlhs, mxArray *plhs[], int nrhs, mxArray*prhs[])mclFeva1(—mcr—inst, "plusl0", nlhs, plhs, nrhs, prhs); void mlfPluslO(int nargout, mxArray **s, mxArray *x)mclMlfFeval(_mcr—inst, "plusiO", nargout, 1, 1, s, x);從一個(gè)先綁定編程環(huán)境(如C)之中調(diào)用前述接口函數(shù)mlxPluslO, 在以下代碼中描述#include <stdio.h> 弁include "matrix, h" #include ',libplus,h"void usage(char *name)printf("Usage: %s integer\n", name); printf("VtAdds 10 to the given integer\n',); exit(-l);int main(int ac, char *av[DmxArray *input = mxCreateDoubleScalar(atoi(av[l])); mx Array * output = double result;if (ac != 2) usage(av[O]);mcllnitializeApplication(NULX, 0);libpluslnitialize();mlxPluslO(l, &output, 1, &input);libplusTerminate();result = mxGetScalar(output);printf("%s + 10 = %.0f\n", av[l], result);mclTerminateApplication();return 0;前述的代碼是用C編程語言編寫的,但本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理 解可選用各種其它先綁定環(huán)境實(shí)現(xiàn)本發(fā)明。正如通過前述調(diào)用后綁定函數(shù)的方法所證明的,該處理被流水化, 并同時(shí)提供了用最小的用戶交互來實(shí)現(xiàn)將后綁定函數(shù)集成到先綁定環(huán)境 中的這樣一種合適的機(jī)制。對原始后綁定函數(shù)(plusl0.m)的調(diào)用與對先 綁定環(huán)境中的其它普通函數(shù)的調(diào)用看起來是類似的。此外,先綁定環(huán)境與 往常一樣繼續(xù)處理先綁定函數(shù),因而提供了更快的函數(shù)執(zhí)行速度。圖4對在示意性實(shí)施例中組件的具體交互過程進(jìn)行了詳細(xì)說明。首先, 用戶采用后綁定環(huán)境400開發(fā)一個(gè)后綁定應(yīng)用或組件。在圖4中,這一后 綁定應(yīng)用或組件表示為用戶編寫的后綁定函^:套件(function suite ) 402, 其包括后綁定函數(shù)404A和404B。為了說明的目的,假設(shè)后綁定環(huán)境400 是MATLAB ,而后綁定函數(shù)是MATLAB②函數(shù)。然后,用戶調(diào)用MATLAB 編譯器406以生成其應(yīng)用或組件的可調(diào)度形式。MATLAB⑧編譯器406檢 查輸入文件以決定將要生成的用以調(diào)用后綁定函數(shù)404A和404B的先綁定 接口文件的適當(dāng)形式。進(jìn)一步的,對先綁定環(huán)境的選擇也會影響所生成的 先綁定接口的形式。MATLAB 編譯器檢查輸入文件以確定在后綁定環(huán)境 400中對其它后綁定函數(shù)的依賴性。MATLAB 編譯器然后將所有必需的后 綁定函數(shù)打包到組件技術(shù)文件(CTF)檔案410之中,并生成合適的先綁 定接口函數(shù)408。 CTF檔案被用來包含與某一組件相關(guān)的所有可執(zhí)行內(nèi)容 (即,M-文件或Mex-文件)。CTF檔案也包含應(yīng)用程序所必需的所有^:據(jù) 文件,以生成對程序執(zhí)行所需的所有信息的快照。CTF檔案的內(nèi)容是經(jīng)過 加密的。圖5是用來描述確定對其它后綁定函數(shù)的依賴性所執(zhí)行步驟的流程 圖。在一個(gè)實(shí)施例中,圖5中所描述的步驟可用于計(jì)算函數(shù)調(diào)用樹的傳遞 閉包。這一過程起始于用戶提供一個(gè)輸入文件集合,該集合中的每個(gè)輸入 文件都包含一個(gè)或多個(gè)后綁定函數(shù)(步驟500)。 MATLAB②編譯器檢查步 驟500所提供的輸入文件集合中的每個(gè)后綁定函數(shù),以確定哪些其它函數(shù)被該后綁定函數(shù)所調(diào)用(步驟502 )。編譯器查看在編譯過程中所生成的函 數(shù)調(diào)用樹。在步驟502中所識別的每個(gè)函數(shù)可能包含有被明確記載在依賴 數(shù)據(jù)庫中的依賴關(guān)系。例如,該數(shù)據(jù)庫可以指出某一特定函數(shù)為了正確運(yùn) 行需要的一個(gè)或多個(gè)其它函數(shù)。依賴性分析器將這些函數(shù)添加到必要函數(shù) 清單中(步驟504)。步驟502和504重復(fù)執(zhí)行直到?jīng)]有其它的函數(shù)被添加 到清單中(步驟506 )為止。在步驟508中,某些函數(shù)或函數(shù)組被明確排 除在清單之外。對函數(shù)的排除行為會由于諸多原因而被激發(fā)。例如,函數(shù) 排除行為可基于預(yù)先確定的商業(yè)原因而發(fā)生,其中,特定文件或函數(shù)由于 安全考慮或知識產(chǎn)權(quán)保護(hù)而不會伴隨最終部署的文件而分發(fā)。此外,函數(shù) 可能會因?yàn)榉乐箤σ阎姆潜匾瘮?shù)的無意包含而被加以排除。這些函數(shù) 偶爾會因?yàn)?一些依賴確定機(jī)制的內(nèi)在不嚴(yán)密性而不經(jīng)意間被包含到必要 函數(shù)清單中(步驟504)。最后,"后綁定模塊化執(zhí)行引擎"典型地包含一 個(gè)與模塊化后綁定執(zhí)行引擎相關(guān)的后綁定函數(shù)的固定的基本集合。準(zhǔn)確地 說,這些函數(shù)的基本集合在安裝執(zhí)行引擎的任何地方都是可用的,因此, 在已部署的應(yīng)用中并不需要包含這些函數(shù)。釆用當(dāng)前的排除機(jī)制,最終部 署的應(yīng)用在大小上會顯著降低,并更容易被用戶掌握。用戶可以在步驟504 和508提供輸入,在上述步驟中用戶明確地聲明依賴性并明確地聲明排除。 此外,可由用戶實(shí)現(xiàn)對必要函數(shù)列表的全部或局部控制。依賴性分析器的輸出是包含有該應(yīng)用的后綁定函數(shù)的最終清單。這些 函數(shù)由編譯器結(jié)合用戶定義的數(shù)據(jù)(如輸入數(shù)據(jù)和分路選擇)一起使用,以確定應(yīng)當(dāng)生成哪些接口函數(shù)以及所生成的函數(shù)的形式。所生成的先綁定接口函數(shù)408 (圖4)與可選的用戶編寫的先綁定語 言代碼416以及數(shù)據(jù)類型創(chuàng)建API418結(jié)合在一起,以生成先綁定應(yīng)用或 組件414。在運(yùn)行時(shí)最終用戶應(yīng)用或組件414調(diào)用數(shù)據(jù)類型創(chuàng)建API418以創(chuàng)建 數(shù)據(jù),所創(chuàng)建的數(shù)據(jù)與包含在外部環(huán)境中的數(shù)據(jù)是后綁定環(huán)境兼容的。在 本實(shí)施例中,所述的外部環(huán)境是一種先綁定編程環(huán)境。數(shù)據(jù)類型創(chuàng)建API 418然后向最終用戶應(yīng)用或組件414標(biāo)識這一新創(chuàng)建的數(shù)據(jù)。這一數(shù)據(jù)標(biāo) 識可以采用本領(lǐng)域普通對支術(shù)人員所知的"句柄(handle)"或"代理"來實(shí) 現(xiàn)。最終用戶應(yīng)用程序或組件414然后調(diào)用先綁定4妄口函數(shù)408,該函數(shù) 依次調(diào)用模塊化后綁定執(zhí)行引擎420。然后,從外部環(huán)境數(shù)據(jù)所創(chuàng)建的兼容數(shù)據(jù)、以及先綁定接口函數(shù)408的名稱被傳遞到才莫塊化執(zhí)行引擎420, 使得模塊化執(zhí)行引擎能夠?qū)⒃摂?shù)據(jù)和函數(shù)名稱結(jié)合起來(即后綁定),以 使得從包含在CTF檔案410中的集合中選擇合適的函數(shù)。模塊化后綁定執(zhí) 行引擎420的結(jié)果然后^皮送回到最終用戶應(yīng)用或組件414。本發(fā)明的示意性實(shí)施例提供了使得后綁定函數(shù)能夠從先綁定環(huán)境中 被調(diào)用的數(shù)據(jù)類型。這些數(shù)據(jù)類型允許先綁定語言來表示用后綁定語言表 示的數(shù)據(jù)類型。這些數(shù)據(jù)類型可以成為提供給用戶的接口庫中的一部分。與編譯器406的每次調(diào)用相關(guān)的還包括加密/解密模式。在一個(gè)實(shí)施例 中,在調(diào)用編譯器時(shí),生成唯一的編密/解密密鑰。該密鑰可以釆用公鑰加 密的方法進(jìn)行保護(hù),如美國政府所采用的高級加密標(biāo)準(zhǔn)(AES)。本領(lǐng)域的 普通技術(shù)人員很容易理解到,現(xiàn)有的其它各種加密/解密方法可用于本發(fā) 明。在運(yùn)行時(shí),該唯一的密鑰被解密并用于對CTF檔案中所需要的文件進(jìn) 行解密。在一個(gè)實(shí)施例中,對文件的解密僅僅發(fā)生在該文件被需要的時(shí)候, 從而防止將已解密信息存儲在f茲盤上。諸如上述的加密/解密模式的使用,為由那些創(chuàng)建應(yīng)用所開發(fā)的代碼提 供了保護(hù)。由于在CTF檔案中所使用的文件是加密的,因此這些文件在被 共享和分配的同時(shí)也能對包含在其中的內(nèi)容提供保護(hù)。例如, 一個(gè)包含有 公司商業(yè)秘密的文件可以以加密的方式被分發(fā),使得這一交易秘密不會披 露給用戶。此外,由于在應(yīng)用中所使用的文件被加密,因此終端客戶無法 輕易地對文件進(jìn)行修改從而影響程序的執(zhí)行。進(jìn)一步的,由于文件的加密 和解密是基于編譯器所生成的唯一密鑰,因此用于一個(gè)應(yīng)用中的文件無法 被用到另一個(gè)應(yīng)用之中。最后,利用當(dāng)前加密/解密^/L制可實(shí)現(xiàn)對盜版軟件 的追蹤,因?yàn)槟軌蚍治雒總€(gè)生成的應(yīng)用程序而確定該應(yīng)用是由哪個(gè)編譯器 許可證密鑰所生成的。因此, 一旦知道編譯器許可證密鑰,就有可能在許 可證清單中將該許可證密鑰與被許可人清單進(jìn)行對照參考,從而確定盜版 軟件的來源。圖6是一個(gè)將后綁定函數(shù)調(diào)用集成到后綁定程序環(huán)境600中所需的組 件的示意性實(shí)施例。在一個(gè)實(shí)例中,后綁定程序環(huán)境為LISP程序環(huán)境, 而后綁定函數(shù)為MATLAB⑧函數(shù)。上述對后綁定函數(shù)和語言的選擇僅僅作 為描述的目的,因?yàn)楸绢I(lǐng)域的普通技術(shù)人員很容易理解,可選用各種替代 的現(xiàn)存的后綁定函數(shù)及語言。在此示意性實(shí)例中,當(dāng)后綁定函數(shù)為MATLAB⑧函數(shù)時(shí),MATLAB 編譯器生成后綁定接口函數(shù)604和606,這些函數(shù)是存在于后綁定環(huán)境600 中的后綁定函數(shù)。在運(yùn)4亍時(shí),這些接口函數(shù)604和606被應(yīng)用于利用才莫塊 化后綁定執(zhí)行引擎602調(diào)用后綁定函數(shù)。正如圖6中所進(jìn)一步描述的,后 綁定接口函數(shù)604和606可能會引發(fā)執(zhí)行多于 一個(gè)的后綁定函數(shù)(參見608 和610)??赡艽嬖谶@樣一些情況,其中一個(gè)后綁定接口函數(shù)與一個(gè)單獨(dú)的 后綁定函數(shù)相關(guān)聯(lián),而且也可能存在其它情況,即多個(gè)后綁定函數(shù)與一個(gè) 單獨(dú)的后綁定接口函數(shù)相關(guān)聯(lián)。此外,根據(jù)提供給接口函數(shù)的輸入類型, 每一調(diào)用操作可導(dǎo)致對相關(guān)集合中不同的后綁定函數(shù)的調(diào)用。在一個(gè)實(shí)施例中,所述的接口機(jī)構(gòu)可以是應(yīng)用程序4妄口 (API),該 API具有可以從后綁定應(yīng)用調(diào)用的函數(shù)。可選擇地,該API可以是不需要 輔助程序即可執(zhí)行的獨(dú)立可執(zhí)行程序。此外,接口函數(shù)可以是軟件或硬件 組件。模塊化后綁定執(zhí)行引擎602提供在運(yùn)行時(shí)執(zhí)行函數(shù)的機(jī)制,其中所述 函數(shù)存在于后綁定環(huán)境中。在一個(gè)MATLAB 環(huán)境中,模塊化后綁定執(zhí)行 引擎可以是MATLAB戀組件運(yùn)行引擎,該引擎能夠執(zhí)行M-文件、MEX-文 件以及其它MATLAB②可執(zhí)行內(nèi)容。本發(fā)明并不僅僅局限于MATLAB②應(yīng) 用以及MATLAB 組件運(yùn)行引擎,也可以用很多替代的后綁定環(huán)境和執(zhí)行 引擎來實(shí)現(xiàn)。模塊化后綁定執(zhí)行引擎602跟隨后綁定環(huán)境600中的后綁定接口函數(shù) 調(diào)用604或606的執(zhí)行,模塊化后綁定執(zhí)行引擎602既可以保持運(yùn)行以使 得后續(xù)函數(shù)在后綁定環(huán)境中的執(zhí)行隨時(shí)發(fā)生,但也可以終止。本發(fā)明已通過舉例的方式加以說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解, 在不脫離本發(fā)明技術(shù)方案的精神的前提下,可以對所描述的實(shí)施例進(jìn)行修改 和變動。上述實(shí)施例的各個(gè)方面與特征可以合并使用。所描述的實(shí)施例僅用 于示意而不應(yīng)被理解為限制性的。本發(fā)明的范圍應(yīng)當(dāng)由附屬的權(quán)利要求進(jìn)行 限定,而不是由前述的說明,對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換, 均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
      權(quán)利要求
      1、一種在電子設(shè)備中將后綁定函數(shù)集成到外部程序環(huán)境中的方法,該方法包含以下步驟提供將在外部程序環(huán)境中執(zhí)行的后綁定環(huán)境中的后綁定函數(shù)調(diào)用;自動地檢查后綁定程序以標(biāo)識由所提供的后綁定函數(shù)調(diào)用所需的相關(guān)后綁定函數(shù)的集合;以及自動地生成所述后綁定函數(shù)集合與所述外部程序環(huán)境之間的接口。
      2、 根據(jù)權(quán)利要求1所述的方法,其中所述的外部程序環(huán)境為先綁定 編程環(huán)境。
      3、 根據(jù)權(quán)利要求2所述的方法,其中還包括利用所述接口在所述的 先綁定外部編程環(huán)境中執(zhí)行后綁定函數(shù)調(diào)用的步驟。
      4、 根據(jù)權(quán)利要求1所述的方法,其中所述的外部程序環(huán)境為后綁定 編程環(huán)境。
      5、 根據(jù)權(quán)利要求4所述的方法,其中還包括利用所述接口在所述的 后綁定外部編程環(huán)境中執(zhí)行后綁定函數(shù)調(diào)用的步驟。
      6、 根據(jù)權(quán)利要求1所述的方法,其中所述的電子設(shè)備還包括后綁定 執(zhí)行引擎,所述的后綁定執(zhí)行引擎執(zhí)行后綁定函數(shù)。
      7、 根據(jù)權(quán)利要求6所述的方法,其中所述后綁定函數(shù)的內(nèi)容是加密的。
      8、 根據(jù)權(quán)利要求7所述的方法,其中所述后綁定函數(shù)的內(nèi)容采用公 共密鑰加密裝置進(jìn)行加密。
      9、 根據(jù)權(quán)利要求7所述的方法,其中所述的公共密鑰加密裝置是高 級加密標(biāo)準(zhǔn)(AES)的^^開密鑰加密裝置。
      10、 根據(jù)權(quán)利要求6所述的方法,其中所述后綁定執(zhí)行引擎為了執(zhí)行 后綁定函數(shù)中的內(nèi)容而對其進(jìn)行解密。
      11、 根據(jù)權(quán)利要求10所述的方法,其中所述后綁定函數(shù)內(nèi)容只有在 運(yùn)行時(shí)有需要時(shí)才進(jìn)行解密。
      12、 根據(jù)權(quán)利要求6所述的方法,其中提供了一種加密/解密模式,用 于在多個(gè)用戶間進(jìn)行文件的安全共享。
      13、 根據(jù)權(quán)利要求6所述的方法,其中所述加密/解密模式采用了由在 執(zhí)行后綁定函數(shù)中使用的由編譯器所生成的唯 一 密鑰。
      14、 根據(jù)權(quán)利要求13所述的方法,其中所述加密/解密模式通過采用 在執(zhí)行后綁定函數(shù)中使用的由編譯器所生成的唯一 密鑰,提供對盜版軟件 的追蹤。
      15、 根據(jù)權(quán)利要求6所述的方法,其中還包括在后綁定環(huán)境中執(zhí)行后 綁定函數(shù)調(diào)用后,終止后綁定執(zhí)行引擎的步驟。
      16、 根據(jù)權(quán)利要求2所述的方法,其中,所述先綁定環(huán)境為C編程環(huán)境。
      17、 根據(jù)權(quán)利要求2所述的方法,其中所述先綁定環(huán)境為C十+編程環(huán)境。
      18、 根據(jù)權(quán)利要求2所述的方法,其中所述先綁定環(huán)境為FORTRAN 編程環(huán)境。
      19、 根據(jù)權(quán)利要求4所述的方法,其中所述后綁定環(huán)境為LISP編程 環(huán)境。
      20、 根據(jù)權(quán)利要求4所述的方法,其中所述后綁定環(huán)境為Prolog編程 環(huán)境。
      21、 根據(jù)權(quán)利要求4所述的方法,其中所述后綁定環(huán)境為MATLAB 編程環(huán)境。
      22、 根據(jù)權(quán)利要求1所述的方法,其中所述接口為可用于外部程序環(huán) 境的應(yīng)用程序接口 (API)。
      23、 根據(jù)權(quán)利要求22所述的方法,其中所述應(yīng)用程序接口 (API)用 于在外部程序環(huán)境中調(diào)用后綁定環(huán)境中的函數(shù)。
      24、 根據(jù)權(quán)利要求1所述的方法,其中所述接口為在外部程序環(huán)境中 可執(zhí)行的軟件組件。
      25、 根據(jù)權(quán)利要求1所述的方法,其中所述接口為在外部程序環(huán)境中 可執(zhí)行的軟件應(yīng)用。
      26、 根據(jù)權(quán)利要求1所述的方法,其中還包括在運(yùn)行時(shí)在外部程序環(huán) 境內(nèi)執(zhí)行后綁定函數(shù)調(diào)用的步驟。
      27、 一種用于將后綁定語言集成到外部程序環(huán)境中的系統(tǒng),包括 外部程序環(huán)境;后綁定程序環(huán)境,其中所述的后綁定程序環(huán)境能夠執(zhí)行在該后綁定環(huán) 境中的函數(shù);以及接口,其中所述接口機(jī)構(gòu)自動地以與外部程序環(huán)境相兼容的格式表達(dá)后綁定程序環(huán)境的語義。
      28、 根據(jù)權(quán)利要求27所述的系統(tǒng),其中所述外部程序環(huán)境為先綁定 編程環(huán)境。
      29、 根據(jù)權(quán)利要求27所述的系統(tǒng),其中所述外部程序環(huán)境為后綁定 編程環(huán)境。
      30、 根據(jù)權(quán)利要求27所述的系統(tǒng),其中所述的后綁定程序環(huán)境包含 模塊化執(zhí)行引擎。
      31、 根據(jù)權(quán)利要求30所述的系統(tǒng),其中所述后綁定執(zhí)行引擎在外部 程序環(huán)境中執(zhí)行位于后綁定程序環(huán)境中的函數(shù)調(diào)用。
      32、 根據(jù)權(quán)利要求31所述的系統(tǒng),其中在后綁定程序環(huán)境中的后綁 定函數(shù)調(diào)用執(zhí)行完畢后所述后綁定執(zhí)行?j擎被終止。
      33、 根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述先綁定程序環(huán)境為C編 程環(huán)境。
      34、 根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述先綁定程序環(huán)境為C++ 編程環(huán)境。
      35、 根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述先綁定程序環(huán)境為 FORTRAN編程環(huán)境。
      36、 根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述先綁定程序環(huán)境為Visual Basic編程環(huán)境。
      37、 根據(jù)權(quán)利要求29所述的系統(tǒng),其中所述后綁定環(huán)境為LISP編程 環(huán)境。
      38、 根據(jù)權(quán)利要求29所述的系統(tǒng),其中所述后綁定環(huán)境為Prolog編 程環(huán)境。
      39、 根據(jù)權(quán)利要求29所述的系統(tǒng),其中所述后綁定環(huán)境為MATLAB 編程環(huán)境。
      40、 根據(jù)權(quán)利要求27所述的系統(tǒng),其中所述接口機(jī)構(gòu)為在先綁定程 序環(huán)境中運(yùn)行的應(yīng)用程序接口(API)。
      41、 根據(jù)權(quán)利要求40所述的系統(tǒng),其中所述應(yīng)用程序接口 (API)用 于在外部程序環(huán)境中調(diào)用后綁定程序環(huán)境中的函數(shù)。
      42、 根據(jù)權(quán)利要求27所述的系統(tǒng),其中所述接口為在外部程序環(huán)境 中可執(zhí)行的軟件組件。
      43、 根據(jù)權(quán)利要求27所述的系統(tǒng),其中所述接口在運(yùn)行時(shí)在外部程序環(huán)境中表達(dá)后綁定程序環(huán)境的語義。
      44、 一種用于將可執(zhí)行的后綁定內(nèi)容打包到在外部程序環(huán)境中使用的 可重分配應(yīng)用中的方法,該方法包括以下步驟檢查后綁定內(nèi)容;提供后綁定模塊化執(zhí)行引擎,其中的模塊化執(zhí)行引擎僅僅執(zhí)行那些支 持后綁定應(yīng)用程序所需要的函數(shù);以及配置模塊化執(zhí)行引擎,以僅執(zhí)行那些支持后綁定應(yīng)用所需要的函數(shù)。
      45、 根據(jù)權(quán)利要求44所述的方法,其中所述后綁定內(nèi)容在打包成可 重分配的格式之前纟皮加密。
      46、 根據(jù)權(quán)利要求45所述的方法,其中所述后綁定內(nèi)容在打包成可 重分配的格式之后被解密。
      47、 根據(jù)權(quán)利要求44所述的方法,還包括將模塊化執(zhí)行引擎所執(zhí)行 的函數(shù)執(zhí)行結(jié)果傳送到外部程序環(huán)境的步驟。
      48、 根據(jù)權(quán)利要求47所述的方法,其中所述由模塊化執(zhí)行引擎所執(zhí) 行的函數(shù)結(jié)果為用于外部程序環(huán)境的后綁定調(diào)試指令。
      49、 根據(jù)權(quán)利要求47所述的方法,還包括釆用在外部程序環(huán)境中所 設(shè)計(jì)的用戶接口對由模塊化執(zhí)行引擎所執(zhí)行的函數(shù)輸出結(jié)果用圖像的方 式進(jìn)行顯示的步驟。
      50、 根據(jù)權(quán)利要求47所述的方法,還包括以下步驟采用在外部程 序環(huán)境中所設(shè)計(jì)的用戶接口對由模塊化執(zhí)行引擎所執(zhí)行的函數(shù)輸出結(jié)果 用文本的方式進(jìn)行顯示的步驟。
      51、 一種用于計(jì)算函數(shù)調(diào)用樹的傳遞閉包的方法,包括以下步驟 提供包括一個(gè)或多個(gè)后綁定函數(shù)的輸入文件集合;自動地從依賴性數(shù)據(jù)庫添加其它的函數(shù)調(diào)用依賴性;自動地從函數(shù)調(diào)用樹中去除 一 個(gè)預(yù)先確定的函數(shù)子集;其中所述預(yù)先定義的函數(shù)子集被存儲在一個(gè)單獨(dú)的數(shù)據(jù)庫中。
      全文摘要
      本發(fā)明旨在將后綁定程序語言自動地集成到外部程序環(huán)境之中。外部程序環(huán)境可以是先綁定環(huán)境、后綁定環(huán)境或它們的組合。與后綁定程序環(huán)境相關(guān)的是模塊化執(zhí)行引擎和接口機(jī)構(gòu),其中的接口機(jī)構(gòu)能夠以與外部環(huán)境兼容的格式表達(dá)后綁定語義。
      文檔編號G06F9/44GK101233485SQ200680028333
      公開日2008年7月30日 申請日期2006年6月2日 優(yōu)先權(quán)日2005年6月2日
      發(fā)明者B·西蒙, C·G·尼蘭德, J·米克, M·厄爾曼, P·H·韋布 申請人:數(shù)學(xué)工程公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1