2009-05-06 66 views
0
  1. 你如何準確地執行「共同」?
  2. Kleene不動點定理如何幫助優化?
  3. 在非功能語言編寫的程序中,如何消除局部函數定義中的自由變量?

編輯:這些不是我的家庭作業問題。我正在休息。編輯2:嗯,我只是開始研究編譯器優化,並沒有我想要優化的特定代碼。你能告訴我什麼是你可以使用上述三種優化技術的一般方法,或者至少告訴我正確解釋它們的資源?困惑三種優化技術

+3

你對此有什麼特別的困惑? – 2009-05-06 19:45:43

回答

0

這些是我在網上找到的,如果有人可以訪問更多信息,請回復。

威廉·克林格提出兩種上述技術,並期待到班上更有趣的: http://www.ccis.neu.edu/home/will/csg262_fall2004/syllabus.html

這些人使用的是克林代數的數據流分析。我認爲我們可以在優化編譯器中使用它: http://ieeexplore.ieee.org/Xplore/login.jsp?url=http://ieeexplore.ieee.org/iel5/4159639/4159640/04159673.pdf%3Fisnumber%3D4159640%26prod%3DCNF%26arnumber%3D4159673%26arSt%3D201%26ared%3D210%26arAuthor%3DFernandes%252C%2BT.&authDecision=-203

不幸的是,上述論文需要登錄。

這是我發現了大約共用(但沒有幫助太多): http://www.patentsurf.net/7,516,448

2
  1. 共用由底向上的散列完成。
  2. Kleene定理允許編譯器實現遞歸方程的迭代解,該方程給出有關程序的事實。一個事實的簡單例子是,在某個點上,變量i總是等於0.
  3. 如果在封閉函數中有一個帶有自由變量的let-bound或lambda-bound的本地函數,則根據定義你正在處理一種具有一流功能的語言。自由變量通常通過閉包轉換來處理,儘管一些編譯器使用lambda提升。

推薦搜索詞:

  • 自下而上散列
  • 共子表達式消除
  • 迭代數據流分析
  • 數據流優化變得簡單
  • 延續傳遞,封扯皮風格
  • 關閉轉換
  • Lambda起重機
0

來自諾曼的好答案。(我只是希望你的教授不會混淆編譯器可能做的優化和軟件編程人員可能做的優化,後者不是一個技術主題,所以沒有多少關於它的說法,但在實際應用中它是數量級更加顯着。)