
發(fā)布
注冊
/
登錄共享庫編譯的案例
歡迎大家進行測試:數(shù)學表達式編譯計算動態(tài)庫FORCAL 
<BR> 另外,F(xiàn)ORCAL編譯器在編譯表達式時能進行兩種形式的代碼優(yōu)化,其一是預先計算表達式中可以計算的部分,其二是采用格式4表示的數(shù)學表達式的可優(yōu)化形式。 <BR> FORCAL將最大限度地進行第一種代碼優(yōu)化,但這種自動進行的優(yōu)化并不徹底,若要獲得最優(yōu)化的代碼,您需要將表達式中可以計算的部分用括號括起來(一般情況下不需要這樣做)。 <BR> 例如:要想進行徹底的第一種代碼優(yōu)化,需要將式子: <BR> F(x,y)=x-5-7+y <BR> 寫成:F(x,y)=x-[5+7]+y或F(x,y)=x+[-5-7]+y <BR> 需要注意的是,在進行第一種代碼優(yōu)化時,只有一級函數(shù)可以進行預先計算,二級函數(shù)的計算始終只能在編譯后的表達式中進行。 <BR> FORCAL的第二種代碼優(yōu)化可以保證表達式中的任何相同部分只進行一次計算,從而最大限度地提高了計算速度。 <BR>二、FORCAL的速度: <BR> 由于編譯表達式所占的時間很少,所以這里只比較FORCAL與FORTRAN(或C/C++)的計算速度。 <BR> 1、對純數(shù)學表達式計算速度的比較 <BR> FORCAL是由FORTRAN(或C/C++)的編譯程序生成的,所以它的速度要稍慢些,約為FORTRAN(或C/C++)的編譯速度的50%左右。一般,表達式越長越復雜,F(xiàn)ORCAL與FORTRAN(或C/C++)的計算速度就越接近。 <BR> 2、綜合比較 <BR> 綜合比較是指由FORCAL生成的實用程序和由FORTRAN(或C/C++)直接生成的實用程序的速度的比較。在實用程序中,除了計算表達式外,還有很多的算法處理,這使得它們之間的速度差別在縮小,毋庸質疑,算法處理所占的時間越長,它們的速度差別就越小。
展開