[發明專利]生成無運算符代碼的編譯器有效
| 申請號: | 201380058354.5 | 申請日: | 2013-10-30 |
| 公開(公告)號: | CN104823161B | 公開(公告)日: | 2018-10-09 |
| 發明(設計)人: | P.M.H.M.A.戈里斯森;L.M.G.M.托休伊澤恩;M.鄧;W.P.A.J.米奇伊斯;W.I.J.吉斯彭;C.P.M.J.巴格根 | 申請(專利權)人: | 皇家飛利浦有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F21/14 |
| 代理公司: | 中國專利代理(香港)有限公司 72001 | 代理人: | 劉紅;景軍平 |
| 地址: | 荷蘭艾*** | 國省代碼: | 荷蘭;NL |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 生成 運算 代碼 編譯器 | ||
1.一種用于將利用第一計算機編程語言編寫的第一計算機程序編譯成第二計算機程序的編譯器,
所述編譯器包括代碼生成器,用于通過生成表格和機器語言代碼來生成第二計算機程序,所生成的表格和所生成的機器語言代碼一起形成第二計算機程序,所生成的機器語言代碼引用所述表格,其中
所述編譯器被配置成在第一計算機程序中識別算術或邏輯表達式,所述表達式取決于至少一個變量,并且所述代碼生成器被配置成:生成代表所識別的表達式針對所述變量的多個值的預先計算的結果的一個或多個表格,和生成機器語言代碼,以便通過訪問所生成的代表預先計算的結果的一個或多個表格而在第二計算機程序中實施所識別的表達式,以及其中
為了實施所識別的表達式而生成的機器語言代碼:
- 不包含算術或邏輯機器指令,和/或
- 不包含條件機器指令。
2.根據權利要求1所述的編譯器,其中所述編譯器被配置成在第一計算機程序中識別取決于條件的條件表達式,并且所述代碼生成器被配置成:針對所述條件的多個值為所識別的表達式生成一個或多個預先計算的分表,和生成機器語言代碼,以便通過訪問所生成的一個或多個分表而在第二計算機程序中實施所識別的表達式。
3.根據權利要求1所述的編譯器,其中為了實施所述表達式而生成的機器語言代碼是無運算符的,其中無運算符的機器語言代碼只包括:
- 用于在寄存器與存儲器之間傳送數據的加載和存儲操作,和
- 跳轉操作。
4.根據權利要求3所述的編譯器,其中加載操作用于利用常數、存儲在存儲器地址上的值和另一寄存器之一來加載寄存器;其中所述存儲器地址利用一個或多個寄存器和/或常數來指示。
5.根據權利要求3和4之中任一權利要求所述的編譯器,其中存儲操作用于將一個或多個寄存器和/或常數存儲在一個或多個存儲器地址上,其中所述存儲器地址利用一個或多個寄存器和/或常數來指示。
6.根據權利要求3和4之中任一權利要求所述的編譯器,其中跳轉操作用于跳轉至存儲器地址,其中所述存儲器地址利用一個或多個寄存器和/或常數來指示,或者從進一步存儲器地址中檢索存儲器地址。
7.根據權利要求1至4之中任一權利要求所述的編譯器,其中所述機器語言作用于寄存器,所述寄存器的子集形成用于包含存儲器地址的地址寄存器。
8.根據權利要求1至4之中任一權利要求所述的編譯器,其中所述編譯器被配置成在第一計算機程序中識別作用于一個或多個數據項的表達式,所述代碼生成器被配置成產生機器語言代碼,用于:
- 在相同的地址寄存器的相應寄存器中加載所述數據項之中的每一個,
- 在所述地址寄存器的其他寄存器中加載數據,以致所述地址寄存器指示表格條目,
- 將運算符作用于所述數據項的結果從利用所述地址寄存器所指示的存儲器地址加載到寄存器。
9.根據權利要求1至4之中任一權利要求所述的編譯器,其中所述編譯器被配置成在第一計算機程序中識別條件跳轉,所述代碼生成器被配置成產生機器代碼,用于:
- 在地址寄存器的寄存器中加載保持指示所述條件的值的寄存器,
- 在所述地址寄存器的其他寄存器中加載數據,以致所述地址寄存器指示表格條目,
- 跳轉至在存儲器中在利用所述地址寄存器所指示的存儲器地址上存儲的存儲器地址。
10.一種計算機,包括根據任一前述權利要求所述的編譯器。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于皇家飛利浦有限公司,未經皇家飛利浦有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201380058354.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:基于特征的候選選擇
- 下一篇:使用視線追蹤實現擴增實境





