1
A
回答
1
不,但我做。
現在,我沒有手動展開循環,因爲循環是一個更容易的概念,一旦你熟悉編程。因爲你可以用序列命令做任何事情,循環清楚地表明你正在重複一個任務。
但是無論語言的實現如何,CSE都可以提高代碼的效率。所以我這樣做。它不會使代碼成爲巴洛克式的,並且它在沒有自動包含的語言中起作用。
Perl提供了壓縮的語法,所以通常有更少的子表達式必須被手工消除。
1
不,也不可能這樣做,除非是非常簡單的情況。
爲了消除常見的子表達式,您必須知道它們之間沒有改變它們的值。但是因爲在兩個表情之間可能會發生很多行,所以幾乎不可能分辨出是否仍然是常見的。
您將能夠消除的唯一事情是可證明純的表達式,如「7 + 5
」。但是證明像函數調用這樣的東西是安全的,不會發生。爲了做到這一點,你需要功能強大且保守的靜態分析,這是Perl沒有的,而且不太可能獲得(在C/C++中,你需要的功能不那麼強大,因爲語言動態性較差,但你仍然需要一些東西)。
相關問題
- 1. MATLAB是否執行常見的子表達式消除?
- 2. 「clang」執行常見的子表達式消除嗎?
- 3. 常見的子表達式消除使用sympy
- 4. 編譯器常見子表達式消除有效嗎?
- 5. 條件屬性是否也消除子表達式?
- 6. 執行正則表達式替換Perl
- 7. 如何判斷在GHC中是否發生共同的子表達式消除?
- 8. 很常見的表達式求值
- 9. 消除非可見字符perl的
- 10. 消除.net lambda表達式
- 11. DISTINCT是否使用多個表達式執行全表掃描?
- 12. 如何優化常見的子表達式?
- 13. 是否安全執行用戶輸入的表達式IronPython
- 14. 表達式樹的執行
- 15. Mathematica:使用簡化去做常見的子表達式消除和減少力度
- 16. 所有語言是否支持任何常見的正則表達式語法?
- 17. 對perl中的50GB文件執行一些正則表達式
- 18. SQL Server是否執行CTE表達式(如果未使用)?
- 19. 當在LINQ中執行時,表達式是否枚舉參數?
- 20. 是否可以在正則表達式中執行加法?
- 21. 正則表達式;消除除
- 22. 否定一個perl正則表達式
- 23. Perl正則表達式否定
- 24. 除了子表達式
- 25. 執行表達式Rscript.exe
- 26. 在PERL PDL變量上執行正則表達式
- 27. LIKE算子在SSRS行的可見性表達式
- 28. 是否有某種常見的WPF樣式表?
- 29. 表達式不是常量
- 30. 如何消除DATEDIFF中的重複子查詢/表達式?
它沒有。唯一的優化是窺孔分析階段。 – jrockway 2009-09-30 08:51:01
如果有些指針可用,我會爲它寫一個模塊:)是否需要B :: *命名空間中的某些模塊? – xxxxxxx 2009-09-30 09:19:41
它提供了Trie優化,自5.10.0 http://perldoc.perl.org/perl5100delta.html – 2009-09-30 15:32:50