forcal

Forcal是一個可以對字元型表達式進行編譯計算的動態庫,表達式中可以使用的運算符有+、-、*、/、^、>、>=、<、<=、==、!=、&、|、!、++、--等等,Forcal具有數值計算、邏輯運算、關係運算、字元數據處理、流程控制、函式調用等許多的可程式功能。Forcal支持整數、實數和複數三種類型的表達式,你可以使用這些表達式在Forcal中設計自定義的函Forcal在調用函式時,既支持傳值調用,也支持傳址調用(引用調用),當採用後一種方式時,可以從函式返回更多的值。

Forcal對代碼進行儘可能的最佳化,因而運行速度也非常地出色,一級函式的計算速度約為(C/C++)或FORTRAN速度的50%左右,二級函式的速度稍有降低。
Forcal編譯系統支持模組化編譯,對設計複雜的軟體項目很有幫助。
Forcal編譯系統可以對編譯時出錯的位置進行準確定位,排除錯誤非常方便。
Forcal用Win32標準函式調用方式(stdcall調用協定)輸出了動態庫函式,可供C/C++、VB、delphi、FORTRAN等程式使用。
很容易對Forcal進行功能擴展, Forcal擴展動態庫中僅有一個輸出函式 ForcalDll(...),設計和套用都很方便。可用C/C++、delphi、FORTRAN等語言設計Forcal擴展動態庫。

Forcal運行要求

Forcal32.dll V8.0 用VS 2008編譯生成,動態庫版本需要MSVC運行庫的支持,靜態庫版本不需要。軟體包中提供了Forcal的兩種版本。Forcal動態庫版本檔案小於100K,靜態庫版本約200K~300K。 使用Forcal動態庫時若程式不能正常運行,需要用戶自行安裝所需的MSVC運行庫,安裝方法從網上可以查到,本軟體包中不再提供。強烈建議使用Forcal的動態庫版本。
由於VS 2008的編譯機制所限制,Forcal32.dll V8.0不能在Windows98中運行。

從Forcal V7.0進行升級

與Forcal V7.0相比,Forcal V8.0的性能有了很大提升,使用方法也有所不同,如下所示:
軟體用戶:
1.標識符區分大小寫。這是與Forcal V7.0的最大不同。
2.增加了冒號運算符,與逗號運算符完全相同。
3.增加了自動靜態變數free,用以支持表達式銷毀前的釋放工作。
4.可以用const函式定義永久性常量和暫時性常量。
5.整數表達式中增加了求模運算符“%”,取消了乘方運算符“^”,乘方運算用函式pow實現,取消了求模函式mod。
6.單目運算符-(負)與雙目運算符^(乘方)需用括弧區分計算的先後順序。如:(-2)^2或-(2^2)。
7.取消了內置數組,由FcData中的數組代替。
8.增加了轉義字元\xNN,支持16進制輸入。
9.增加了函式GetCalByte,可以獲得調用其他類型表達式或其他類型二級函式時計算結果的按位元組拷貝值。
10.增加了類成員運算符(函式參數運算符)。
11.增加模組命名空間。
編程用戶:
1.獲得和設定FORCAL運行錯誤的函式GetRunErr和SetRunErr有變化,以支持更詳細的出錯信息。
2.增加模組加鎖函式LockModule,支持更健壯的大型程式設計。
3.編譯表達式函式RealCom、RealCom和ComplexCom的第二個參數的意義有變化,與增加模組加鎖功能有關。
4.刪除表達式函式DeleteFor的功能有變化,與自動靜態變數free配合,支持表達式銷毀前的釋放工作。
5.取消了獲得數組信息函式GetArray,由FcData中的數組代替。
6.鍵樹操作函式InsertKey、SearchKey、DeleteKey和DeletePrivateKey的第二個參數意義有變化,可支持含NULL字元的數據存儲查詢操作。函式EnumKeyTypeValue的最後一個參數回調函式的參數有變化,可以返回含NULL字元的數據。
7.信息交換函式ExMsgWithForcal的參數意義有變化。
8.增強了獲得表達式信息函式GetFor的功能。

Forcal 後續版本計畫

1.Forcal V9.0:與Forcal V8.0功能基本相同,但為Unicode版本,很可能增加支持漢字等多國語言的標識符。預計在2009年夏天完成該版本。
2.Forcal V10.0:與Forcal V8.0功能基本相同,仍是ANSI版本,但升級為Forcal V8.0的64位版本。預計將在更晚些時候完成。
3.Forcal V11.0:與Forcal V8.0功能基本相同,但為Unicode版本,且升級為Forcal V8.0的64位版本,很可能增加支持漢字等多國語言的標識符。預計將在更晚些時候完成。
4.Forcal的Linux版本,預計將在更晚些時候完成。

相關詞條

相關搜尋

熱門詞條

聯絡我們