language-implementation

    9熱度

    5回答

    我知道關於使用協程作爲基礎和實現玩具調度程序的基本知識。但是我認爲這是對整個異步調度器的簡單看法。我的想法中缺少一整套洞。 如何防止CPU運行閒置/等待的調度程序?有些光纖只是在睡覺,有些則等待操作系統的輸入。

    4熱度

    1回答

    我今天在IE8的DOM選擇元素的JavaScript'選項'屬性的實現中發現了一些奇怪的行爲。 考慮下面的HTML: <select id="sel"><option value="val">An option</option></select> 和JavaScript: var sel = document.getElementById('sel'); alert(sel === sel.

    5熱度

    1回答

    當您使用私有內部類編譯Java類時,由於某種原因,似乎會自動合成一個匿名類。這個類是足以重現: public class SynthesizeAnonymous { public static void method() { new InnerClass(); } private static class InnerClass {} } 在編譯時,

    17熱度

    9回答

    我一直在試圖理解java.util.HashMap和java.util.HashSet的內部實現。 以下是懷疑在我腦海中突然出現了一陣: 請告訴我是@Override public int hashcode()的一個HashMap/HashSet的重要性?這個散列碼在內部使用在哪裏? 我一般都看到HashMap的關鍵是String就像myMap<String,Object>。我可以將值映射到som

    7熱度

    1回答

    在LLVM教程和示例,編譯器輸出LLVM IR通過撥打電話這樣 return Builder.CreateAdd(L, R, "addtmp"); 但很多解釋都這樣寫的: switch (opcode) { case ADD: result = L + R; break; ... 你會如何提取這些代碼段使用LLVM創建JIT而不必重新實現LL

    20熱度

    2回答

    我想用Lisp方言實現一個Lisp解釋器,主要是作爲一種學習練習。我被拋棄的一件事就是這個區域有多少選擇。首先,我對學習一段時間左右的Lisp(比如Scheme或Common Lisp)更感興趣。我不想使用Clojure來完成這一切,因爲我已經使用過它。 :-) 原來是五味之一在分析比別人的更好嗎?你認爲在Common Lisp中實現Scheme還是個好主意(反之亦然)?或者兩者之間有足夠的差異來

    0熱度

    1回答

    我計劃實施動態鏈接到我的smalltalk方言。問題是讓消息傳遞與動態鏈接一起工作。 消息傳遞本身就像這樣簡單:帶有選擇器的消息被髮送到對象,對象從它的協議中選擇與選擇器匹配的方法,然後處理與消息捆綁在一起的數據並返回結果。 在基於圖像的實現中,可以以非常直接的方式實現消息傳遞 - 您的消息選擇器可以只是從全局符號表中翻譯的整數,您的協議可以只是具有整數和地址的哈希表。假設它全部用全局符號表編譯成

    17熱度

    2回答

    Perl數組是一種抽象數據類型。 Perl數組的內部機制是什麼?它是用動態數組還是鏈表實現的? 由於數組元素具有隨機訪問,所以我會假設一個動態數組指針,或者對標量的引用是有意義的。但是,在陣列頭部進行移位和非移位操作時,陣列是否必須將這些操作的所有元素移動?聽起來對我來說效率低下。任何想法?

    0熱度

    1回答

    是否存在一種方法來捕獲寫入寫保護頁面? 我打算做一個自我喜歡的對象系統,在其中複製對象來實例化它。 (因爲它聽起來簡單而緊湊)顯然,爲此目的創建的對象應該以某種方式被寫保護。我已經看到有一種方法可以標記ELF中程序頭部寫保護的內容。 (RE,RWE,RW-標誌) 這是否提供寫保護?我記得它應該引起段錯誤,這是真的嗎?如何將寫入寫入寫保護頁面。這是一個很好的方式來實現我想要的,有沒有更好的方法?

    7熱度

    7回答

    我已經被告知如果我在ANSI-C中編寫聲明變量將被使用的順序,聲明指針不爲空,並且索引在邊界,並在變量使用之前進行初始化。 如果我聲明一個const,我可以在斷言和代碼塊之後初始化它嗎? 在Java中,最終的初始化必須發生在聲明處,但它是否通過ANSI-C實現是一致的,我可以初始化一個const,但不一定在聲明時初始化?