intermediate-language

    0熱度

    3回答

    我在問是否有庫提供了他們需要的IR規範,並提供了將包含該IR的文件編譯成機器碼的程序。我不想使用LLVM的原因有: 我想編寫自己生成IR的代碼。 當我在不同的計算機上工作時,安裝LLVM開發庫是一件非常痛苦的事情。 我喜歡LLVM允許程序員生成IR並且不用擔心編譯到彙編,所以我仍然需要這個功能。

    -1熱度

    1回答

    我想了解使用async - await時創建的狀態機。我把一件簡單的C#代碼 using System; using System.Net; using System.Threading.Tasks; public class C { public static async Task<string> GetGoogleDotComHtml() { using

    0熱度

    1回答

    我在llvm中執行優化,要求在優化之前運行InstNamer傳遞。目前,我正在通過手動傳遞「-instnamer」來運行它。有沒有一種方法可以將InstNamer添加爲代碼中的必需傳球? 我試過 AU.addRequired(); 但是,它不會編譯,因爲它會拋出「未聲明的標識符'InstNamer'」。 有沒有一種方法可以做到這一點?

    2熱度

    1回答

    有人知道使用ldloc var CIL指令和ldloc.n是否存在一個小的差異? 在方法範圍內考慮這個局部變量表: .locals init ([0] int32 a, [1] int32 b) 是那些指令: ldloc.0 ldloc.1 更好,worste或等於比: ldloc a ldloc b

    3熱度

    1回答

    我正在研究MSIL(CIL)代碼着色器,儘管我不熟悉MSIL。 我在Common Language Infrastructure (CLI)中找到了所有關鍵字的列表。 這些關鍵字包括諸如add,.file,conv.i4和unaligned.之類的東西。 我正在努力一點點關鍵字的一部分。我非常確定需要成爲關鍵詞的一部分,因爲我不認爲像i4這樣的關鍵詞本身就是關鍵字。而且我很確定我希望某些關鍵字的開

    4熱度

    2回答

    我試圖在運行時以IL代碼的形式發出以下代碼。 class TestObject { public int Hello {get;set;} public int Test {get;set;} } static TestObject test(BinaryReader reader) { var a = new TestObject();

    1熱度

    1回答

    我想創建一個從SQL到XQuery的翻譯器。 我想解析SQL並生成一箇中間結構,然後用它來生成XQuery查詢。 (注意:我希望使用中間表示法,因爲我期待將來將SQL翻譯爲其他查詢語言) 但是我一直不清楚如何在語法定義完成後生成翻譯器。我想使用ANTLR並確實已經創建了語法。我現在用語法文件卡住了,然後繼續建立翻譯器,因爲我不知道生成一個翻譯器的下一步是什麼。

    0熱度

    1回答

    我一直在閱讀龍書,我想知道單程編譯器,所以糾正我,如果我錯了,但作爲編譯器經過分析,它會產生一個越來越精確的中間表示,或準確isn'這個詞,也許最好是一個更好的術語來使用,無論如何。單程編譯器只經歷一次每個階段,有時會將多個階段組合成一個單一階段,這是否意味着中間表示將不太理想?我確信我在思考這個問題時有什麼問題,所以請隨時糾正我所做的任何錯誤的假設(或者讓我知道這個問題有多愚蠢,無論哪種方式)。

    0熱度

    1回答

    這個符號是什麼(IL_0000等)在IL代碼中。它這是真正的內存堆地址? IL_0000: nop IL_0001: ldstr "here is something" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ldc.i4.s

    1熱度

    1回答

    我正在編寫一種現在編譯爲C的語言,當我說IL時,我的意思是在C語言中編寫代碼,然後通過另一個C編譯器生成彙編語言,例如gcc或鐺。 C代碼生成我,會是更有利的: 如果我做一些簡單的選擇傳球(常量傳播,刪除死代碼,...)將在減少工作的量C編譯器必須這麼做,還是讓它變得更加困難,因爲它不是真正的人類C代碼? 如果我要編譯來說三地址代碼或SSA或其他形式,然後將它加入到帶有函數,標籤和變量的C程序中