第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

C語(yǔ)言中的反射支持

C語(yǔ)言中的反射支持

C
夢(mèng)里花落0921 2019-10-30 14:32:37
我知道它不受支持,但是我想知道是否有任何技巧。有小費(fèi)嗎?
查看完整描述

3 回答

?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊

通常,反射是程序分析某些代碼結(jié)構(gòu)的一種方式。此分析用于更改代碼的有效行為。

作為分析的反思通常非常薄弱;通常,它只能提供對(duì)函數(shù)和字段名稱的訪問。這種弱點(diǎn)來自于語(yǔ)言實(shí)現(xiàn)者基本上不希望在運(yùn)行時(shí)提供完整的源代碼,以及不希望從源代碼中提取所需內(nèi)容的適當(dāng)分析例程。

另一種方法是通過使用強(qiáng)大的程序分析工具來直接解決程序分析問題,例如,一種可以完全按照編譯器的方式分析源文本的工具。(通常人們建議濫用編譯器本身來執(zhí)行此操作,但這通常不起作用;編譯器機(jī)制希望成為編譯器,很難將其用于其他用途)。

需要一種工具,該工具:

  • 解析語(yǔ)言源文本

  • 構(gòu)建代表程序每個(gè)細(xì)節(jié)的抽象語(yǔ)法樹。(如果AST保留注釋和源代碼布局的其他詳細(xì)信息(例如列號(hào),文字基數(shù)值等),將很有幫助。)

  • 建立符號(hào)表,顯示每個(gè)標(biāo)識(shí)符的范圍和含義

  • 可以從功能中提取控制流

  • 可以從代碼中提取數(shù)據(jù)流

  • 可以為系統(tǒng)構(gòu)造一個(gè)調(diào)用圖

  • 可以確定每個(gè)指針指向的內(nèi)容

  • 利用上述事實(shí)來構(gòu)建自定義分析器

  • 可以根據(jù)這種自定義分析來轉(zhuǎn)換代碼(通常通過修改代表已解析代碼的AST)

  • 可以從修訂的AST重新生成源文本(包括布局和注釋)。

使用這樣的機(jī)制,可以在需要的任何細(xì)節(jié)級(jí)別上進(jìn)行分析,然后轉(zhuǎn)換代碼以實(shí)現(xiàn)運(yùn)行時(shí)反射將完成的效果。有幾個(gè)主要好處:

  • 詳細(xì)程度或分析量是一個(gè)雄心壯志(例如,它不受運(yùn)行時(shí)反射只能做什么的限制)

  • 沒有任何運(yùn)行時(shí)開銷來實(shí)現(xiàn)行為的反映變化

  • 涉及的機(jī)制可以是通用的,可以跨多種語(yǔ)言應(yīng)用,而不僅限于特定語(yǔ)言實(shí)現(xiàn)所提供的機(jī)制。

  • 這與C / C ++想法兼容,即您無需為不使用的東西付費(fèi)。如果不需要反射,則不需要這種機(jī)器。而且您的語(yǔ)言不需要內(nèi)置弱反射的智力包。

請(qǐng)參閱我們的DMS軟件再造工具包,以了解可以針對(duì)C,Java和COBOL進(jìn)行上述所有操作的系統(tǒng),以及大多數(shù)針對(duì)C ++的系統(tǒng)。


查看完整回答
反對(duì) 回復(fù) 2019-10-30
  • 3 回答
  • 0 關(guān)注
  • 930 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)