System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 亚洲一区二区三区AV无码,亚洲成av人片在线观看天堂无码 ,无码射肉在线播放视频
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    源代碼到接口描述語言的轉換方法及裝置制造方法及圖紙

    技術編號:44531851 閱讀:5 留言:0更新日期:2025-03-07 13:21
    本申請公開了一種源代碼到接口描述語言的轉換方法及裝置。其中,該方法包括:獲取待轉換的源代碼;對源代碼進行語法樹解析,得到第一JSON模型;對第一JSON模型進行模型重構,得到第二JSON模型,其中,模型重構至少包括:將第一JSON模型中的匿名數據結構轉換為有名稱數據結構;利用模板引擎將第二JSON模型轉換為接口描述語言。本申請解決了人工將源代碼逆向轉換為接口描述語言效率較低、準確性較差的技術問題。

    【技術實現步驟摘要】

    本申請涉及計算機,具體而言,涉及一種源代碼到接口描述語言的轉換方法及裝置


    技術介紹

    1、接口描述語言(interface?description?language,idl),是一種用來描述軟件組件接口的計算機語言,idl通過一種獨立于編程語言的方式來描述接口,使得在不同平臺上運行的對象和用不同語言編寫的程序可以相互通信交流。通常情況下,基于idl描述語言的代碼是用戶手動編寫完成的。

    2、在不同的系統平臺或者技術棧平臺上,針對實際程序應用的單元組件功能,程序員在編碼或者平臺遷移時可能基于不同的編程語言,為了實現不同的編程語言的自動化生成與動態切換,往往會采用代碼生成器,通過解析idl描述語言來自動生成相應編程語言的代碼。

    3、然而,在實際項目中,基于現有代碼反方向解讀或抽象idl輸入的工作也是非常常見的。比如在歷史軟件開發過程中沒有采用idl的方式去抽象定義軟件代碼,也沒有使用代碼引擎自動化生成多平臺適用的編程語言代碼,此時如果需要對開發過程規范方法論,或者切換新的技術棧和多平臺編程語言支持,那么針對新的項目需求,就需要研究如何將項目舊有代碼反向抽象為idl描述語言方式。針對此項反向工作,如果人工做抽象轉換工作,工作量將會很大,效率非常低,而且難以避免引入人工錯誤。

    4、針對上述的問題,目前尚未提出有效的解決方案。


    技術實現思路

    1、本申請實施例提供了一種源代碼到接口描述語言的轉換方法及裝置,以至少解決人工將源代碼逆向轉換為接口描述語言效率較低、準確性較差的技術問題。

    2、根據本申請實施例的一個方面,提供了一種源代碼到接口描述語言的轉換方法,包括:獲取待轉換的源代碼;對源代碼進行語法樹解析,得到第一json模型;對第一json模型進行模型重構,得到第二json模型,其中,模型重構至少包括:將第一json模型中的匿名數據結構轉換為有名稱數據結構;利用模板引擎將第二json模型轉換為接口描述語言。

    3、可選地,對源代碼進行語法樹解析,得到第一json模型,包括:調用目標編譯器對源代碼進行語法樹解析,得到第一json模型,其中,目標編譯器包括:clang編譯器,第一json模型中包括與源代碼定義的數據類型對應的多種數據結構,多種數據結構包括以下至少之一:數據類、數據名稱、數據包、數據元素、數據類別。

    4、可選地,對第一json模型進行模型重構,包括:遍歷第一json模型中的各個數據結構,對于每個數據結構,遍歷數據結構中的各個數據元素,若存在數據類是匿名的數據類型,確定數據結構為匿名數據結構;確定數據類型的目標名稱,并依據目標名稱生成目標數據結構;利用目標數據結構替換匿名數據結構。

    5、可選地,確定數據類型的目標名稱,包括:依據數據類型在第一json模型中的上下文信息,確定與數據類型對應的全局唯一的目標名稱。

    6、可選地,依據先聲明后使用原則,對第二json模型中所有用于替換匿名數據結構的目標數據結構進行重新排序。

    7、可選地,利用模板引擎將第二json模型轉換為接口描述語言,包括:將第二json模型輸入目標模板引擎,得到目標模板引擎輸出的接口描述語言,其中,目標模板引擎包括:mako模板引擎。

    8、可選地,源代碼的類型為c++源代碼。

    9、根據本申請實施例的另一方面,還提供了一種源代碼到接口描述語言的轉換裝置,包括:獲取模塊,用于獲取待轉換的源代碼;解析模塊,用于對源代碼進行語法樹解析,得到第一json模型;重構模塊,用于對第一json模型進行模型重構,得到第二json模型,其中,模型重構至少包括:將第一json模型中的匿名數據結構轉換為有名稱數據結構;轉換模塊,用于利用模板引擎將第二json模型轉換為接口描述語言。

    10、根據本申請實施例的另一方面,還提供了一種非易失性存儲介質,該非易失性存儲介質包括存儲的計算機程序,其中,非易失性存儲介質所在設備通過運行該計算機程序執行上述的源代碼到接口描述語言的轉換方法。

    11、根據本申請實施例的另一方面,還提供了一種電子設備,該電子設備包括:存儲器和處理器,其中,存儲器中存儲有計算機程序,處理器被配置為通過計算機程序執行上述的源代碼到接口描述語言的轉換方法。

    12、在本申請實施例中,首先獲取待轉換的源代碼;然后對源代碼進行語法樹解析,得到第一json模型;再對第一json模型進行模型重構,得到第二json模型,其中,模型重構至少包括:將第一json模型中的匿名數據結構轉換為有名稱數據結構;最后利用模板引擎將第二json模型轉換為接口描述語言。本方案完全實現了從源代碼到接口描述語言的自動化轉換過程,并且通過中間json模型作為橋梁,還能夠實現對源代碼數據類型進行重構操作,提高轉換結果的準確率,相比于目前的手工編寫接口描述語言,質量和效率均大幅提高,即本方案有效解決了人工將源代碼逆向轉換為接口描述語言效率較低、準確性較差的技術問題。

    本文檔來自技高網...

    【技術保護點】

    1.一種源代碼到接口描述語言的轉換方法,其特征在于,包括:

    2.根據權利要求1所述的方法,其特征在于,對所述源代碼進行語法樹解析,得到第一JSON模型,包括:

    3.根據權利要求1所述的方法,其特征在于,對所述第一JSON模型進行模型重構,包括:

    4.根據權利要求3所述的方法,其特征在于,確定所述數據類型的目標名稱,包括:

    5.根據權利要求3所述的方法,其特征在于,所述方法還包括:

    6.根據權利要求1所述的方法,其特征在于,利用模板引擎將所述第二JSON模型轉換為接口描述語言,包括:

    7.根據權利要求1至6中任意一項所述的方法,其特征在于,所述源代碼的類型為C++源代碼。

    8.一種源代碼到接口描述語言的轉換裝置,其特征在于,包括:

    9.一種非易失性存儲介質,其特征在于,所述非易失性存儲介質包括存儲的計算機程序,其中,所述非易失性存儲介質所在設備通過運行所述計算機程序執行權利要求1至7中任意一項所述的源代碼到接口描述語言的轉換方法。

    10.一種電子設備,其特征在于,包括:存儲器和處理器,其中,所述存儲器中存儲有計算機程序,所述處理器被配置為通過所述計算機程序執行權利要求1至7中任意一項所述的源代碼到接口描述語言的轉換方法。

    ...

    【技術特征摘要】

    1.一種源代碼到接口描述語言的轉換方法,其特征在于,包括:

    2.根據權利要求1所述的方法,其特征在于,對所述源代碼進行語法樹解析,得到第一json模型,包括:

    3.根據權利要求1所述的方法,其特征在于,對所述第一json模型進行模型重構,包括:

    4.根據權利要求3所述的方法,其特征在于,確定所述數據類型的目標名稱,包括:

    5.根據權利要求3所述的方法,其特征在于,所述方法還包括:

    6.根據權利要求1所述的方法,其特征在于,利用模板引擎將所述第二json模型轉換為接口描述語言,包括:

    7.根據權利...

    【專利技術屬性】
    技術研發人員:單威強董慶運李東軍
    申請(專利權)人:蘇州摯途科技有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 久久久久亚洲AV无码观看 | 无码国产69精品久久久久孕妇| 免费无遮挡无码永久在线观看视频| 加勒比无码一区二区三区| 国产亚洲大尺度无码无码专线| 无码日韩精品一区二区免费暖暖| 亚洲AV无码男人的天堂| 国产V亚洲V天堂无码久久久| 亚洲精品一级无码中文字幕| 人妻丰满熟妇岳AV无码区HD| 亚洲AV无码久久精品成人| 熟妇人妻无码xxx视频| 亚洲精品无码不卡在线播HE| 国产精品亚洲а∨无码播放| 免费无码又爽又刺激高潮 | 熟妇人妻中文av无码| 亚洲成A∨人片天堂网无码| 亚洲综合无码一区二区| 精品无码一区二区三区爱欲九九 | 国产在线无码制服丝袜无码| 亚洲Av综合色区无码专区桃色| 国产精品无码av片在线观看播| 久久久久亚洲AV无码专区体验| 亚洲中文字幕无码一久久区| yy111111少妇影院里无码| 国产啪亚洲国产精品无码| WWW久久无码天堂MV| 无码熟妇人妻AV影音先锋| 亚洲a∨无码男人的天堂| 少妇人妻偷人精品无码视频| 亚洲AV无码精品色午夜果冻不卡 | 国产成人精品无码播放| 日韩精品无码免费专区网站| julia无码人妻中文字幕在线| 在线观看无码的免费网站| 亚洲成a人无码亚洲成av无码| AV无码精品一区二区三区| 无码不卡亚洲成?人片| 中文字幕在线无码一区二区三区| 免费看无码自慰一区二区| 无码精品久久一区二区三区|