[發明專利]跨平臺的字節序處理方法、裝置和字節碼運行平臺無效
| 申請號: | 200910161947.X | 申請日: | 2009-09-07 |
| 公開(公告)號: | CN101645017A | 公開(公告)日: | 2010-02-10 |
| 發明(設計)人: | 徐佳宏;程伯欽;朱呂亮 | 申請(專利權)人: | 深圳市茁壯網絡股份有限公司 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 深圳市深佳知識產權代理事務所(普通合伙) | 代理人: | 彭愿潔;李文紅 |
| 地址: | 518002廣東省深圳市羅湖區沿河*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 平臺 字節 處理 方法 裝置 運行 | ||
技術領域
本發明涉及計算機網絡領域,尤其涉及跨平臺的字節序處理方法、裝置和字節碼運行平臺。
背景技術
字節碼(bytecode)不同于通常情況下經過編譯器編譯后輸出的目標代碼,它是一種經過編譯但仍然不可以讓目標機器直接執行的中間代碼。“中間代碼”意味著在一個平臺生成的字節碼可能在與生成該字節碼的平臺不同的平臺上運行,例如,對于嵌入式環境,為了節省嵌入式客戶端執行解析、編譯的時間和所需的內存空間,一種做法是將解析、編譯從處理字節碼的過程中抽離出來,即,服務器預先對源代碼進行解析和編譯(稱為“預編譯”),客戶端直接運行服務器生成的字節碼即可。由于服務器所在的平臺可能與客戶端所在的平臺并不相同,??跨平臺的字節碼在處理過程中不可避免會遇到字節序(endianness)的問題。
所謂字節序,是專門針對多個字節的數據類型而言,通俗的定義是大于一個字節的數據類型在內存中的存放順序。按照數據的高低字節在內存中的相對位置,可以簡單地將字節序分為大端字節序(Big?Endianness)和小端字節序(Little?Endianness)。大端字節序指的是高位字節排放在內存的低地址端,低位字節排放在內存的高地址端,小端字節序剛好與之相反,低位字節排放在內存的低地址端,高位字節排放在內存的高地址端。
在現有技術中,當生成字節碼的平臺的字節序與運行該字節碼的平臺的字節序不同時,例如,生成字節碼的平臺的字節序為大端字節序,運行該字節碼的平臺的字節序為小端字節序,或者,生成字節碼的平臺的字節序為小端字節序,運行該字節碼的平臺的字節序為大端字節序,如果生成的字節碼直接在與生成該字節碼的平臺不同的平臺上運行,那么,這種處理方法顯然只能得到一個錯誤的運行結果。
發明內容
本發明實施例提供跨平臺的字節序處理方法和裝置,解決現有技術處理表示多字節數據的字節碼時,在字節序不同的平臺上直接運行字節碼而導致結果錯誤的問題。
本發明實施例提供的一種跨平臺的字節序處理方法,包括:
對表示多字節數據的字節碼進行預處理,所述多字節數據包括第一類型數據和第二類型數據,所述第一類型數據為16位整型數據或32位整型數據,所述第二類型數據為64位整型數據、單精度浮點數據或雙精度浮點數據;
若所述表示多字節數據的字節碼經過預處理后轉換成表示單字節數據的字節碼,則運行所述表示單字節數據的字節碼,否則,按照預處理平臺的字節序和運行平臺的字節序相同與否調整所述多字節數據的字節序以還原所述多字節數據。
本發明實施例提供的一種跨平臺的字節序處理裝置,包括編譯平臺和運行平臺,所述編譯平臺和運行平臺分立,其中,
所述編譯平臺包括預處理模塊,用于對表示多字節數據的字節碼進行預處理,所述多字節數據包括第一類型數據和第二類型數據,第一類型數據為16位整型數據或32位整型數據,所述第二類型數據為64位整型數據、單精度浮點數據或雙精度浮點數據;
所述運行平臺包括執行模塊,用于若所述表示多字節數據的字節碼經過所述預處理模塊預處理后轉換成表示單字節數據的字節碼時,直接運行所述表示單字節數據的字節碼,否則,按照預處理平臺的字節序和運行平臺的字節序相同與否調整所述多字節數據的字節序以還原所述多字節數據。
本發明實施例提供的一種跨平臺的字節序處理方法,包括:
對表示多字節數據的字節碼進行預處理以得到表示單字節數據的字節碼,所述多字節數包括16位整型數據、32位整型數據、64位整形數據、單精度浮點數據或雙精度浮點數據;
運行所述表示單字節數據的字節碼。
本發明實施例提供一種跨平臺的字節序處理裝置,包括編譯平臺和運行平臺,所述編譯平臺和運行平臺分立,其中,
所述編譯平臺包括預處理模塊,用于對表示多字節數據的字節碼進行預處理以得到表示單字節數據的字節碼,所述多字節數據包括16位整型數據、32位整型數據、64位整形數據、單精度浮點數據或雙精度浮點數據;
所述運行平臺包括運行模塊,用于運行經過所述預處理模塊處理后得到的表示單字節數據的字節碼。
本發明實施例提供的一種跨平臺的字節序處理方法,包括:對表示多字節數據的字節碼進行預處理以使所述表示多字節數據的字節碼中包含預處理平臺的字節序,所述多字節數包括16位整型數據、32位整型數據、64位整形數據、單精度浮點數據或雙精度浮點數據;
按照預處理平臺的字節序和運行平臺的字節序相同與否調整所述多字節數據的字節序以還原所述多字節數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市茁壯網絡股份有限公司,未經深圳市茁壯網絡股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910161947.X/2.html,轉載請聲明來源鉆瓜專利網。





