程序碼的動態(tài)產(chǎn)生系統(tǒng)及其方法
【專利摘要】本發(fā)明公開了一種程序碼的動態(tài)產(chǎn)生系統(tǒng)及其方法,該程序碼的動態(tài)產(chǎn)生系統(tǒng),包含一程序碼轉(zhuǎn)換模塊及一連結(jié)(Linker)器。該程序碼轉(zhuǎn)換模塊,經(jīng)建構(gòu)以將至少一原始碼轉(zhuǎn)換成多個第一候選指令集并存儲于至少一物件文件,其中所述多個第一候選指令集各相對應于一第一硬件條件及一原始碼相對應于一物件文件。該連接器另包含一選擇單元,經(jīng)建構(gòu)依據(jù)一第二硬件條件以從所述多個第一候選指令集中選出至少一第二候選指令集,其中,該第二硬件條件包含第一硬件條件,其中,該連接器經(jīng)建構(gòu)以連接所述多個至少一第二候選指令集以產(chǎn)生一最終程序碼。本發(fā)明可解決編譯期間硬件條件尚不明確時僅能產(chǎn)生無效率的程序碼的問題。
【專利說明】程序碼的動態(tài)產(chǎn)生系統(tǒng)及其方法
【技術領域】
[0001]本發(fā)明涉及一種程序碼的動態(tài)產(chǎn)生系統(tǒng)及其方法,特別是一種產(chǎn)生多個候選指令集并通過條件判斷以輸出最終程序碼的系統(tǒng)及其方法。
【背景技術】
[0002]圖1為現(xiàn)有一種程序碼產(chǎn)生流程示意圖。如圖1所示,現(xiàn)有程序碼開發(fā)方式為將一原始碼通過電腦處理以匯編成一個固定結(jié)果的物件文件,意即該物件文件僅具有一指令集,再輸出一最終程序碼。然而,該現(xiàn)有程序碼開發(fā)方式無法對硬件架構(gòu)的更動即時做出反應以及當前的硬件架構(gòu)選擇適用的指令集。因此,本發(fā)明提供一種程序碼的動態(tài)產(chǎn)生系統(tǒng)及其方法。
【發(fā)明內(nèi)容】
[0003]鑒于上述問題,本發(fā)明的目的在于提供的一種程序碼的動態(tài)產(chǎn)生系統(tǒng)及其方法以解決編譯期間硬件條件尚不明確時,而僅能產(chǎn)生無效率的程序碼的問題。
[0004]本發(fā)明的一種程序碼的動態(tài)產(chǎn)生系統(tǒng)的一實施例包含一程序碼轉(zhuǎn)換模塊及一連接器。該程序碼轉(zhuǎn)換模塊,經(jīng)建構(gòu)以將至少一原始碼轉(zhuǎn)換成多個第一候選指令集并存儲于至少一物件文件,其中所述多個第一候選指令集各相對應于一第一硬件條件。
[0005]另,一原始碼相對應于一物件文件,該連接器另包含一選擇單元,經(jīng)建構(gòu)依據(jù)一第二硬件條件以從所述多個第一候選指令集中選出至少一第二候選指令集,該第二硬件條件包含第一硬件條件,該連接器經(jīng)建構(gòu)以連接所述多個至少一第二候選指令集以產(chǎn)生一最終程序碼。
[0006]本發(fā)明的一種程序碼的動態(tài)產(chǎn)生系統(tǒng)的一實施例,其中所述多個至少一物件文件各包含一硬件條件碼,該硬件條件碼代表一物件文件適用的該第二硬件條件。
[0007]本發(fā)明的一種程序碼的動態(tài)產(chǎn)生系統(tǒng)的一實施例,其中所述多個第一候選指令集另各包含至少一參數(shù),其中該至少一參數(shù)代表該第一硬件條件。
[0008]本發(fā)明的一種程序碼的動態(tài)產(chǎn)生系統(tǒng)的一實施例,其中該第一硬件條件包含存儲器地址、寄存器內(nèi)存值及其大小。
[0009]本發(fā)明的一種程序碼的動態(tài)產(chǎn)生系統(tǒng)的一實施例,其中該程序碼轉(zhuǎn)換模塊包含一組譯器。
[0010]本發(fā)明的一種程序碼的動態(tài)產(chǎn)生系統(tǒng)的一實施例,其中該選擇單元包含一多工器。
[0011]本發(fā)明的一種程序碼的動態(tài)產(chǎn)生系統(tǒng)的一實施例,其中該最終程序碼包含一執(zhí)行文件。
[0012]本發(fā)明的一種程序碼的動態(tài)產(chǎn)生方法的一實施例,其步驟包含:轉(zhuǎn)換至少一原始碼成多個第一候選指令集并存儲所述多個第一候選指令集于至少一物件文件;其中所述多個第一候選指令集各相對應于一第一硬件條件及一原始碼相對應于一物件文件以及依據(jù)一第二硬件條件以從所述多個第一候選指令集中選擇至少一第二候選指令集,其中,該第二硬件條件包含第一硬件條件;連接所述多個至少一第二候選指令集以產(chǎn)生一最終程序碼。
[0013]本發(fā)明的一種程序碼的動態(tài)產(chǎn)生方法的一實施例,其中該轉(zhuǎn)換至少一原始碼成多個第一候選指令集并存儲所述多個第一候選指令集于至少一物件文件的步驟另包含接收該至少一原始碼。
[0014]本發(fā)明的一種程序碼的動態(tài)產(chǎn)生方法的一實施例,其中該依據(jù)一第二硬件條件以從所述多個第一候選指令集中選出至少一第二候選指令集的步驟另包含呼叫符合該第二硬件條件的一物件文件。
[0015]本發(fā)明的有益效果在于,本發(fā)明提供的程序碼的動態(tài)產(chǎn)生系統(tǒng)及其方法可以解決編譯期間硬件條件尚不明確時僅能產(chǎn)生無效率的程序碼的問題。
[0016]上文已經(jīng)概略地敘述本發(fā)明的技術特征,以使下文的本發(fā)明詳細描述得以獲得較佳了解。構(gòu)成本發(fā)明的權(quán)利要求標的的其它技術特征將描述于下文。本發(fā)明所屬【技術領域】中的技術人員應可了解,下文揭示的概念與特定實施例可作為基礎而相當輕易地予以修改或設計其它結(jié)構(gòu)或工藝而實現(xiàn)與本發(fā)明相同的目的。本發(fā)明所屬【技術領域】中的技術人員亦應可了解,這類等同的建構(gòu)并無法脫離權(quán)利要求所提出的本發(fā)明的精神和范圍。
【專利附圖】
【附圖說明】
[0017]圖1為現(xiàn) 有一種程序碼產(chǎn)生流程示意圖;
[0018]圖2為本發(fā)明一實施例的一種程序碼的動態(tài)產(chǎn)生系統(tǒng)的不意圖;
[0019]圖3為本發(fā)明的一實施例的一種程序碼的動態(tài)產(chǎn)生系統(tǒng)的不意圖;及
[0020]圖4為本發(fā)明一實施例的一種程序碼的動態(tài)產(chǎn)生方法流程圖。
[0021]其中,附圖標記說明如下:
[0022]21 程序碼轉(zhuǎn)換模塊
[0023]23連接器
[0024]25選擇單元
[0025]31 第一候選指令集
[0026]33 物件文件
[0027]35 第二硬件條件
[0028]37 最終程序碼
[0029]39原始碼
【具體實施方式】
[0030]為解決現(xiàn)有技術中編譯期間硬件條件尚不明確時僅能產(chǎn)生無效率的程序碼的問題。本發(fā)明揭示一種程序碼的動態(tài)產(chǎn)生系統(tǒng)及其方法。
[0031]圖2為本發(fā)明一實施例的一種程序碼的動態(tài)產(chǎn)生系統(tǒng)的示意圖。如圖2所示,該程序碼的動態(tài)產(chǎn)生系統(tǒng)包含一程序碼轉(zhuǎn)換模塊21及一連接器23。其中該程序碼轉(zhuǎn)換模塊21經(jīng)建構(gòu)以將至少一原始碼轉(zhuǎn)換成多個第一候選指令集并存儲于至少一物件文件,其中所述多個第一候選指令集各相對應于一第一硬件條件以及一原始碼相對應于一物件文件27。另,該程序碼轉(zhuǎn)換模塊21包含一組譯器,但不以此為限。
[0032]該連接器23另包含一選擇單元25,該選擇單元25經(jīng)建構(gòu)依據(jù)一第二硬件條件以從所述多個第一候選指令集中選出至少一第二候選指令集,其中,該第二硬件條件包含第一硬件條件。該連接器23經(jīng)建構(gòu)以連接所述多個至少一第二候選指令集以產(chǎn)生一最終程序碼。該選擇單元包含一多工器,該最終程序碼包含一執(zhí)行文件,但不以此為限。
[0033]另,所述多個物件文件27各包含一硬件條件碼,該硬件條件碼代表一物件文件適用的該第二硬件條件。所述多個第一候選指令集另各包含至少一參數(shù),其中該至少一參數(shù)代表該第一硬件條件。該第一硬件條件包含存儲器地址、寄存器內(nèi)存值及其大小,但不以此為限。
[0034]為詳細說明本發(fā)明的程序碼的動態(tài)產(chǎn)生系統(tǒng),特以下例說明,但不以此為限。
[0035]圖3為本發(fā)明的一實施例的一種程序碼的動態(tài)產(chǎn)生系統(tǒng)的示意圖。如圖3所示,一原始碼39經(jīng)由該程序碼轉(zhuǎn)換模塊21產(chǎn)生多個第一候選指令集31并存儲于一物件文件33。其中,所述多個第一候選指令集31各相對應于一第一硬件條件,該原始碼相對應于該物件文件33。該物件文件33包含一硬件條件碼,例condition codel,所述多個第一候選指令集31各包含至少一參數(shù),例:argl、arg2、arg3> arg4或arg5。
[0036]當該連接器23接收到一第二硬件條件35時,該連接器23呼叫符合該第二硬件條件35的該物件文件33,再依據(jù)該第二硬件條件35的細部內(nèi)容并通過該選擇單元25從所述多個第一候選指令集31中選擇至少一第二候選指令集,該細部內(nèi)容相對應于該第一硬件條件,該連接器23連接所述多個被選擇的至少一第二候選指令集以產(chǎn)生一最終程序碼37。
[0037]綜上所述,本發(fā)明另揭示一種程序碼的動態(tài)產(chǎn)生方法。
[0038]圖4為本發(fā)明一實施例的一種程序碼的動態(tài)產(chǎn)生方法。如圖4所示,于步驟S401,該程序轉(zhuǎn)換模塊21接收一原始碼,于步驟S403,將該原始碼轉(zhuǎn)換成多個第一候選指令集并存儲所述多個第一候選指令集于至少一物件文件。
[0039]其中所述多個第一候選指令集各相對應于一第一硬件條件,其中一原始碼相對應于一物件文件。
[0040]于步驟S405,該連接器23接收到一第二硬件條件時,依據(jù)該第二硬件條件呼叫符合該第二硬件條件的一物件文件,并通過該連接器23的該選擇單元25以選擇至少一第二候選指令集。于步驟S407,該連接器23連接所述多個至少一第二候選指令集以產(chǎn)生一最終程序碼。
[0041]本發(fā)明的技術內(nèi)容及技術特點已揭示如上,然而熟悉本項技術的人士仍可能基于本發(fā)明的教示及揭示而作種種不背離本發(fā)明精神的替換及修飾。因此,本發(fā)明的保護范圍應不限于實施例所揭示者,而應包括各種不背離本發(fā)明的替換及修飾,并為權(quán)利要求所涵
至JHL ο
【權(quán)利要求】
1.一種程序碼的動態(tài)產(chǎn)生系統(tǒng),包含: 一程序碼轉(zhuǎn)換模塊,經(jīng)建構(gòu)以將至少一原始碼轉(zhuǎn)換成多個第一候選指令集并存儲于至少一物件文件; 其中所述多個第一候選指令集各相對應于一第一硬件條件;以及 其中一原始碼相對應于一物件文件; 以及 一連接器,包含: 一選擇單元,經(jīng)建構(gòu)依據(jù)一第二硬件條件以從所述多個第一候選指令集中選出至少一第二候選指令集; 其中,該第二硬件條件包含第一硬件條件; 其中,該連接器經(jīng)建構(gòu)以連接所述多個至少一第二候選指令集以產(chǎn)生一最終程序碼。
2.如權(quán)利要求1所述的動態(tài)產(chǎn)生系統(tǒng),其中所述多個至少一物件文件各包含一硬件條件碼,該硬件條件碼代表一物件文件適用的該第二硬件條件。
3.如權(quán)利要求1所述的動態(tài)產(chǎn)生系統(tǒng),其中所述多個第一候選指令集另各包含至少一參數(shù),其中該至少一參數(shù)代表該第一硬件條件。
4.如權(quán)利要求3所述的動態(tài)產(chǎn)生系統(tǒng),其中該第一硬件條件包含存儲器地址、寄存器內(nèi)存值及其大小。
5.如權(quán)利要求1所述的動態(tài)產(chǎn)生系統(tǒng),其中該程序碼轉(zhuǎn)換模塊包含一組譯器。
6.如權(quán)利要求1所述的動態(tài)產(chǎn)生系統(tǒng),其中該選擇單元包含一多工器。
7.如權(quán)利要求1所述的動態(tài)產(chǎn)生系統(tǒng),其中該最終程序碼包含一執(zhí)行文件。
8.一種利用電腦以產(chǎn)生程序碼的方法,其步驟包含: 轉(zhuǎn)換至少一原始碼成多個第一候選指令集并存儲所述多個第一候選指令集于至少一物件文件; 其中所述多個第一候選指令集各相對應于一第一硬件條件;以及 其中一原始碼相對應于一物件文件; 以及 依據(jù)一第二硬件條件以從所述多個第一候選指令集中選擇至少一第二候選指令集,其中,該第二硬件條件包含第一硬件條件; 連接所述多個至少一第二候選指令集以產(chǎn)生一最終程序碼。
9.如權(quán)利要求8所述的方法,其中所述多個物件文件各包含一硬件條件碼,該硬件條件碼代表一物件文件適用的該第二硬件條件。
10.如權(quán)利要求8所述的方法,其中所述多個第一候選指令集另各包含至少一參數(shù),其中該至少一參數(shù)代表該第一硬件條件。
11.如權(quán)利要求10所述的方法,其中該第一硬件條件包含存儲器地址、寄存器內(nèi)存值及其大小。
12.如權(quán)利要求8所述的方法,其中該最終程序碼包含一執(zhí)行文件。
13.如權(quán)利要求8所述的方法,其中該轉(zhuǎn)換至少一原始碼成多個第一候選指令集并存儲所述多個第一候選指令集于至少一物件文件的步驟另包含接收該至少一原始碼。
14.如權(quán)利要求8所述的方法,其中該依據(jù)一第二硬件條件以從所述多個第一候選指令集中選出至少一第二候選指令集的步驟另包含呼叫符合該第二硬件條件的一物件文件。
【文檔編號】G06F9/44GK103970524SQ201310108404
【公開日】2014年8月6日 申請日期:2013年3月29日 優(yōu)先權(quán)日:2013年1月25日
【發(fā)明者】黃彥淳 申請人:凌通科技股份有限公司