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

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

D是否適合編寫跟蹤JIT編譯器?

D是否適合編寫跟蹤JIT編譯器?

Go
素胚勾勒不出你 2021-05-12 08:17:10
我想為我正在設(shè)計(jì)的一種編程語言編寫一個(gè)解釋器并跟蹤JIT。我已經(jīng)有多年使用C ++編程的經(jīng)驗(yàn),但是我一直在想,也許新的替代方法可能更好。在我的C ++時(shí)代,我最沮喪的事情之一就是不得不使用頭文件來處理笨拙的一遍編譯器模型。問題在于,并非所有語言都同樣適合于此目的。對(duì)于我的跟蹤JIT,我需要能夠?qū)⒖蓤?zhí)行代碼寫入內(nèi)存并具有對(duì)該代碼的解釋器調(diào)用。我還將需要生成的代碼,以便能夠回調(diào)到主機(jī)函數(shù)中。我開始看Go,發(fā)現(xiàn)該語言有指針但沒有指針?biāo)阈g(shù)。這立即使我震驚,成為一個(gè)巨大的問題。我可能很想編寫自己的分配器和垃圾收集器。我將需要嚴(yán)格控制語言對(duì)象在內(nèi)存中的布局方式,并能夠獲取特定字段的地址并對(duì)其進(jìn)行寫入。除非有解決方法,否則Go似乎不足以達(dá)到我的目的。D語言似乎很有希望。它具有指針運(yùn)算法則和調(diào)用D所需的ABI的清晰輪廓。我聽說過很多關(guān)于它的好東西。它還具有垃圾回收,這對(duì)于編譯器的編寫非常有用,但是我仍然有一些不確定的地方:D是否有標(biāo)準(zhǔn)庫使我可以將內(nèi)存塊標(biāo)記為可執(zhí)行文件?如果我使用自己的GC分配了自己要管理的大量?jī)?nèi)存,并且有一堆指針插入其中,那么D的垃圾收集器會(huì)帶來問題嗎?根據(jù)您的經(jīng)驗(yàn),D與C代碼的互操作性如何?加載C動(dòng)態(tài)庫并調(diào)用它們相當(dāng)容易嗎?最后,還有整個(gè)支持方面。對(duì)于那些在linux上使用過D的人來說,工具鏈有多好?有什么問題嗎?有沒有人用D編寫過JIT編譯器,如果是的話,經(jīng)驗(yàn)如何?
查看完整描述

3 回答

?
12345678_0001

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

  1. 我相信,請(qǐng)core.memory.GC記住我是否記得正確。

  2. 不,不應(yīng)該。只需致電malloc或您需要的任何電話,并確保GC看不到它即可。

  3. 是的,與C代碼互操作非常容易。

警告:您可能也不想依賴GC,因?yàn)樗皇恰熬_的”(即,如果不幸的話,會(huì)并且確實(shí)會(huì)泄漏內(nèi)存)。但是對(duì)于小塊數(shù)據(jù),通常沒問題。


查看完整回答
反對(duì) 回復(fù) 2021-05-17
?
慕神8447489

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

Go確實(shí)允許指針?biāo)阈g(shù),但是您必須導(dǎo)入unsafe包才能這樣做(或使用C函數(shù))。指針運(yùn)算是錯(cuò)誤的常見來源,并轉(zhuǎn)到了其他機(jī)制,如片,它提供了安全的方式做一些需要在C指針運(yùn)算用同樣的活動(dòng),unsafe你可以將任何指針uintptr和背部,且uintptr是普通數(shù)字類型,可讓您進(jìn)行算術(shù)運(yùn)算。


查看完整回答
反對(duì) 回復(fù) 2021-05-17
  • 3 回答
  • 0 關(guān)注
  • 224 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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