欢迎访问 Forcal数学软件  主站  副站

Forcal V9.0 使用说明

欢迎使用 FORCAL 开发使用说明 !
借助本说明可以了解 FORCAL V9.0 的全部详细信息。
     

目  录

关于Forcal的声明
 

    1、任何人在使用或传播Forcal时,默认完全同意该声明。
    2、任何人在传播Forcal时,必须在软件的显著位置包含本声明,并保证本声明的完整性(包括本声明中引用的网址)。
    3、免责声明:尽管作者对Forcal32W.dll作了极为严格的测试,但仍不能保证没有丝毫错误,由于这些错误或用户判断错误造成的任何后果,本人皆不承担任何法律责任,不支付任何直接和间接的经济赔偿。如果您使用本软件或注册本软件,就默认认同了该“免责声明(disclaimer)”。特此声明。
    4、您可以自由使用和传播Forcal32W.dll而不受任何限制,但您不能对Forcal32W.dll进行仿制、反汇编或逆向工程,或对Forcal32W.dll作其他任何形式的更改。
    5、作者仅对Forcal32W.dll拥有全部版权,由Forcal32W.dll支持的实用程序的版权归实用程序的开发者所有。
    6、最终用户(非商业性用户)可永久免费使用Forcal!
    7、作者仅对涉及Forcal(包括Forcal软件本身及相关资料)的商业性行为收费。注册费会根据情况进行调整,请以注册站或作者网站(http://blog.csdn.net/forcal)公布的最新费用为准。 收费以双方协商、互惠互利的方式进行,或者自动按以下规定进行。
    8、商业软件(包括共享软件)在使用Forcal时须支付费用,以年费形式缴纳。使用Forcal的年费为1套商业软件的费用,若Forcal在该商业软件中所起的作用较小,年费可少于1套商业软件的费用,但最低不少于100元/年(暂定)。若支付Forcal的年费少于1套商业软件的费用,须双方协商后确定,否则默认为1套商业软件的费用。自商业软件开始销售起三个月内,该商业软件的所有者(公司或个人)向Forcal软件的作者缴纳该费用,以后每隔12个月缴纳一次费用,直至该商业软件终止销售。
    9、盈利性网站使用Forcal时须支付年费,暂定100元/年。
    10、对于以上未提及的、或虽提及但未明确说明的涉及Forcal的商业性行为,行为人应与Forcal作者共同商定所支付的费用,若意见未达成一致,行为人应终止使用Forcal的商业性行为。
    11、向Forcal作者支付费用时,可直接支付给作者本人(支付方式见作者网站),也可以通过网路中国共享软件注册中心(www.softreg.com.cn)天空软件站-共享软件注册中心(Shareware.skycn.com)华军软件商城-共享软件注册中心(www.pcsoft.com.cn)进行注册。注册Forcal之后,可以获得更好的技术支持和服务。
    12、设计商业性Forcal扩展动态库(如工程计算模块、各种工具箱、数据库支持模块等) 是一种较好的值得推广的多方盈利模式。为使该库可借助任意已有的Forcal程序平台传播,取得最佳的效益,该库在设计时要按统一的设计规范提交验证, 详细请参考Forcal扩展动态库的设计说明。
    13、使用Forcal的共享软件作者或网站站长在创业初期,若未盈利,可免交费用,但须以邮件或其他方式与作者联系,说明情况。
    14、欢迎用户(普通的个人或知名的软件公司)与Forcal作者合作开发商业性Forcal软件并签订合同,以明确权利义务关系。
    15、为促进本软件发展,最终用户(非商业性用户)使用Forcal时,可在自愿基础上向Forcal作者提供赞助,作者在此表示感谢!您的赞助将在最大程度上鼓励作者作出更多、更好的软件供大家使用,从而促进国产软件事业的发展。同时感谢以任何形式宣传Forcal的用户(例如向朋友介绍、在论坛发帖、以各种形式发布关于介绍Forcal的文章等)!
    16、任何人不能将Forcal32W.dll用于任何非法用途。
    17、本软件受版权法和国际条约保护。任何人在使用和传播Forcal32W.dll时若违反以上条款,将在法律许可的范围内受到最大可能的起诉。

简介
 
    通常,使用各种高级语言如C/C++、VB、delphi、FORTRAN等设计的程序,不能对源代码进行动态编译,Forcal可为所有这些应用程序增加对字符串源代码的动态编译功能。Forcal可用于各类数学软件的设计,也可用作报表处理、web、组态软件、游戏等的脚本,具有很高的执行效率。
    Forcal32W.dll是Forcal的32位Unicode版本,是一个对Unicode
字符型表达式进行编译计算的动态库。表达式中可以使用的运算符有+、-、*、/、^、>、>=、<、<=、==、!=、&、|、!、++、--等等,Forcal具有数值计算、逻辑运算、关系运算、字符数据处理、流程控制、函数调用等许多的可编程功能。
    Forcal支持中文编程,可以使用中文标识符,如中文函数名、中文变量等。

    Forcal用键树保存和检索数据信息,可以用Forcal保存和检索任意类型的数据,存储效率高,且具有很高的查找效率。
    Forcal有许多内置的基本函数(一级函数和二级函数),不过可以使用(C/C++)、Delphi、FORTRAN等编译器方便地扩充这些基本函数(二级函数),你可以让这些函数完成不同凡响的功能。
    Forcal支持整数、实数和复数三种类型的表达式,可以使用这些表达式在Forcal中设计自定义的函数。
    Forcal在调用扩充的或自定义的函数时,就象调用系统内置的函数一样,没有任何分别。
    Forcal对所有的函数都支持递归调用,不管这些函数是系统内置的,扩充的,还是自定义的。
    Forcal在调用函数时,既支持传值调用,也支持传址调用(引用调用),当采用后一种方式时,可以从函数返回更多的值。
    Forcal对代码进行尽可能的优化,因而运行速度也非常地出色,一级函数的计算速度约为(C/C++)或FORTRAN速度的50%左右,二级函数的速度稍有降低。
    Forcal编译系统支持模块化编译,对设计复杂的软件项目很有帮助。
    Forcal编译系统可以对编译时出错的位置进行准确定位,排除错误非常方便。
    Forcal用Win32标准函数调用方式(stdcall调用协议)输出了动态库函数,可供C/C++、VB、delphi、FORTRAN等程序使用。
    很容易对Forcal进行功能扩展,Forcal扩展动态库中仅有一个输出函数 FcDll32W(...),设计和应用都很方便。可用C/C++、delphi、FORTRAN等语言设计Forcal扩展动态库。
    虽然Forcal32W.dll仅支持32位程序,但在32位平台上编写的Forcal代码,以后可不加修改地运行于64位平台。

关于Forcal用户
 
    Forcal用户有软件用户和编程用户两种。软件用户指使用由Forcal支持的软件的用户;编程用户指使用Forcal编程的用户。若不特别说明,Forcal用户一般指Forcal的软件用户。


Forcal新手参考
 

    概括介绍Forcal的特点与功能,使用户对Forcal有一个大致的了解。介绍学习Forcal必须掌握的基本语法知识。


Forcal用户指南
 

    从软件使用者的角度介绍Forcal的功能和用法。
    所有源代码可通过测试程序 ForcalTest.exe 和 ForcalDemo.exe 进行演示。ForcalTest是控制台程序,输出计算结果比较快。ForcalDemo是windows程序,界面更友好一些。

Forcal演示程序
 
    用程序ForcalTest和ForcalDemo演示一些使用Forcal进行计算的例子,演示Forcal的功能和用法。 无需局限于演示一些小程序,借助于本软件包中附带的Forcal扩展动态库,演示一些大型计算项目是完全可以的。
    另一个更好的演示程序是OpenFC,OpenFC全面演示了Forcal的应用。可以从作者网站、天空软件站、华军软件园等多家站点下载到该程序。

Forcal数据扩展动态库FcData
 
    该库对Forcal的数据类型进行了扩展。基本数据类型包括简单数据和数组,可以自定义类。通过FcData32W.dll的输出函数接口,可以向FcData添加任意复杂的数据类型。基本操作对象是FcData数据指针。

Forcal中的对象、函数和模块
 
    Forcal的核心库Forcal32W.dll中没有类和对象的概念,但Forcal32W.dll对功能扩展提供了很好的支持,利用Forcal32W.dll本身提供的编程功能和Forcal扩展动态库FcData及MForcal,很容易地构造出类及对象的概念。由于动态编译的特点,Forcal完全可以看作是面向对象的。

Forcal中的类模块及数据结构
 

    著名的瑞士计算机科学家沃思(N.Wirth)教授曾提出:算法+数据结构=程序。在Forcal中,算法是用函数来描述的,而模块是函数的集合,因而Forcal的模块即代表了算法。你也许会感到意外,Forcal模块由Forcal核心库来实现,但Forcal的数据结构却主要是由Forcal扩展动态库FcData实现的。


Forcal标准输入输出系统
 

    Forcal标准输入输出系统。包含基于Windows的输入输出系统。


Forcal字符串库
 

    Forcal字符串库。包含ANSI及Unicode字符串的各种操作函数。


Forcal系统函数库
 

    主要是Forcal系统或操作系统相关的函数。


Forcal数值计算扩展动态库XSLSF
 

    XSLSF算法主要选自《C常用算法程序集》第二版,徐士良主编。在XSLSF中的函数是通过二级函数命名空间“XSLSF”输出的,所有函数均具有类似“XSLSF::rmul”的格式,全部是实数函数。主要内容包括矩阵运算,矩阵特征值与特征向量的计算,线性代数方程组的求解,非线性方程与方程组的求解,插值与逼近,数值积分,常微分方程组的求解,极值问题的求解,复数、多项式与特殊函数的计算等。这些算法都是行之有效的,基本可以满足解决工程中各种实际问题的需要。


Forcal编程指南
 

    介绍如何使用Forcal进行软件开发。

循序渐进Forcal例程
 
    从简单到复杂的一些使用Forcal编程的例子。

Forcal扩展动态库
 
    介绍如何对Forcal进行功能扩展。Forcal扩展动态库中仅有一个输出函数 FcDll32W(...),设计和应用都很方便。可用C/C++、delphi、FORTRAN等语言设计Forcal扩展动态库。

    本软件包中的“FcConst.dll”和“Example.dll”两个动态库是Forcal扩展动态库的简单例子,源代码在相应的文件夹中。用VS 2008新建一个“Win32 dll”工程,将相应的源程序文件、模块定义文件和头文件Forcal32W.h添加到该工程,编译时将活动解决方案配置为“Release”。
    FcConst.dll:用于向Forcal添加常量,添加完常量即可卸载该库。源程序文件和模块定义文件在文件夹“dll_FcConst”中。
    Example.dll:向Forcal注册了几个函数。源程序文件和模块定义文件在文件夹“dll_Example”中。


演示程序源代码
 
    演示程序ForcalTest和ForcalDemo实现了不同寻常的功能,但源代码并不长,熟悉这些代码,就可以随心所欲地使用Forcal!
   
源代码在文件夹code的相关子文件夹中,不过要加入头文件forcal32w.h一起进行编译。
    该程序由VS C++ 2008编译通过,注意要将活动解决方案配置为“Release”。
    通过源代码,可以了解如何在程序中加载使用Forcal32W.dll,如何使用Forcal编译字符串表达式,如何向Forcal注册自定义的各种常量或函数,如何加载Forcal扩展动态库等等。

如何在Forcal中添加对象
 

    开发者在软件中添加一些对象,然后通过脚本操作这些对象,这是许多程序员的梦想。像Matlab、VBScript、JScript、Lua、Python等脚本要实现这样的功能,好像是高级程序员才能完成的工作,甚至一些脚本根本就不支持此功能。我对这些脚本知之甚少,胡言乱语的依据是通过网上的资料,不当之处请指正。
    在Forcal中添加对象,然后通过Forcal脚本操作这些对象,是很容易的一件事。看完本文后你可能忍不住要尝试一番,只要你用过像C/C++、Delphi等具有指针的语言。你不需要是一个资深的程序员,一个普通的编程者即可。本文将展示Forcal的强大的可扩充性和易扩充性, 不过这是很容易实现的。


数据存储和检索
 
    数据存储和检索是Forcal的另一特色。可以使用Forcal保存任意类型的数据,且具有很高的查找效率。
    相关函数请参考Forcal编程指南,例子请参考源程序ForcalData.cpp(在文件夹“ForcalData”中)和头文件Forcal32W.h。

Forcal软件构成
 

    由Forcal32W.dll支持的软件简称为Forcal软件。Forcal软件可分为两类:可执行程序和Forcal扩展模块。Forcal软件的构成是高度组合式的。


Forcal的用途
 
    从三个方面讨论Forcal的应用。

Forcal运行要求
 
    Forcal32W.dll V9.0 用VS 2008编译生成,动态库版本需要MSVC运行库的支持,静态库版本不需要。软件包中提供了Forcal的两种版本。Forcal动态库版本文件小于110K,静态库版本约200K~300K。 使用Forcal动态库时若程序不能正常运行,需要用户自行安装所需的MSVC运行库,安装方法从网上可以查到,本软件包中不再提供。强烈建议使用Forcal的动态库版本。
    由于VS 2008的编译机制所限制,Forcal32W.dll V9.0不能在Windows98中运行。

最新升级内容
 

    软件用户(2009.8.1):

    1.支持中文编程,可以使用中文标识符,如中文函数名、中文变量等。
    2.使用Unicode字符串作为Forcal默认字符串。扩展了字符串中的转义字符。可通过转义字符定义静态空间。
    3.支持静态数组,相关的存取函数是一级函数,具有很高的执行效率。
    4.整数表达式中的整数升级为64位,可进行更大的数的运算。
    5.在整数表达式中增加了位运算函数,位运算函数是一级函数,具有很高的执行效率。
    6.增加、修改、删除了部分一级函数及二级函数。
    7.增加了访问命名空间的函数using。
    8.修改了部分FcData函数,特别增加了标准格式化输出函数printff和printfs。
    9.新增
FcIO、FcString、FcSystem等扩展动态库,极大地丰富了Forcal系统的功能。另新增Forcal数值计算扩展动态库XSLSF32W.dll,基本可以满足解决工程中各种实际问题的需要。
    10.优化了演示程序ForcalTest,新增演示程序ForcalDemo可演示大的计算项目。

    编程用户(2009.8.1):

    1.表达式字符串改为wchar_t字符串(Unicode字符串)Forcal32W.dll的大部分输出函数使用wchar_t字符串,少部分函数仍使用char字符串。
    2.整数表达式中的整数
升级为64位
    3.编译表达式返回的错误代码新增37、38、39。
    4.指针数据保存在整数、实数或复数的前4个字节中。
    5.
FcData中real32数据(相当于C中的float数据)保存在整数或实数的前4个字节中
    6.FcData中使用Unicode字符串作为默认字符串
    7.强烈建议Forcal扩展动态库中的函数使用命名空间命名方式。
    8.编程用户应编写移植性高的代码,可方便地移植到64位平台。
    9.并行计算设想:
在多核计算机中进行并行运算时,可复制Forcal32W.dll为多个副本Forcal32W1.dll、Forcal32W2.dll、... ...,同时加载Forcal32W.dll及各个副本,Forcal32W.dll及各个副本都有自己的地址空间,可独立运行互不影响,这样可实现并行计算。


Forcal近期计划
 

   1.为OpenFc增加语法高亮功能。
   2
.进一步完善OpenFcGl的图形绘制功能。
   3.进一步丰富Forcal的各类库函数。


Forcal 后续版本计划
 
    1.Forcal V10.0:与Forcal V9.0功能基本相同, 仍为Unicode版本,但升级为64位版本,Forcal V9.0的源代码可不加修改地在该版本中运行。预计将在晚些时候完成。

    2.Forcal的Linux版本,预计将在更晚些时候完成。


Forcal 其他开发设想
 
    Forcal致力于发展成为一个通用的跨平台的脚本语言,既支持嵌入式开发,又自成体系,成为一个功能不断完善的动态语言。目前,Forcal主体结构(Forcal32W.dll)已基本完成,支持嵌入式开发方面可发挥地淋漓尽致,但要成为一个功能完善的动态语言,还有大量的工作要做,这不是依靠个人能力所能完成的。根据Forcal的声明,Forcal鼓励用户设计商业性的Forcal扩展动态库或其他类型的扩展模块,期待有志者的关注和参与。
    以下是Forcal已经完成或正在进行的一些工作,包括一些需要用户参与的开发设想。
 
项目 描述 类型 支持库
(dll)
难易程度 Forcal动态语言系统 移植性 开发者 完成情况 项目性质 其他
FcData 扩展Forcal数据类型。 Forcal扩展动态库 Forcal32W 作者 正在完善 免费  
FcDataEx Forcal数据扩展动态库。在FcData32W的基础上,直接操作复杂的FcData数据类型 。 Forcal扩展动态库 Forcal32W
FcData32W
较难 作者或爱好者 尚未进行 免费,将开源  
FcIO 标准输入输出系统。 Forcal扩展动态库 Forcal32W
FcData32W
较难 作者或爱好者 正在进行 免费,已开源 源代码在作者网站
FcString 字符串库。 Forcal扩展动态库 Forcal32W
FcData32W
较难 作者或爱好者 正在进行 免费,已开源 源代码在作者网站
FcSystem Forcal系统函数库,主要是Forcal系统或操作系统相关的函数。 Forcal扩展动态库 Forcal32W 一般 作者或爱好者 正在进行 免费,已开源 源代码在作者网站
XSLSF Forcal数值计算扩展动态库。 Forcal扩展动态库 Forcal32W
FcData32W
较易 作者或爱好者 正在完善 免费,已开源 源代码在作者网站
QuitFc 退出Forcal运行时的无限循环。 Forcal扩展动态库 Forcal32W 易移植 作者 完成 免费,已开源 源代码在MForcal中
MForcal 对Forcal进行模块化编译。动态语言系统将基于此库而构建。 Forcal扩展动态库 Forcal32W 一般 易移植 作者 完成 免费  
AutoMfc 自动运行AFC文件。 程序 Forcal32W
MForcal32W
一般 易移植 作者 完成 免费,已开源 源代码在MForcal中
OpenFc Forcal演示程序,将增加语法高亮功能。 程序 Forcal32W
MForcal32W
较难 作者 基本完成 免费,将开源  
OpenFcGl 基于OpenGL的进行图形绘制的动态库,将尽可能全面封装OpenGL函数。 Forcal扩展动态库 Forcal32W
FcData32W
较难   作者或爱好者 正在完善 免费,已开源 源代码在作者网站
FcWin 是一个Windows窗口库,包含一些实用窗口函数。例如:用户可在控件窗口中自定义多个控件。 Forcal扩展动态库 Forcal32W
FcData32W
作者或爱好者 正在进行 免费,将开源  
FcScript 脚本控件,用于网络编程。 COM/ATL Forcal32W
MForcal32W
较难     作者或爱好者 正在进行 已开源 源代码在作者网站
PortMaster 通用端口(RS232、GPIB)数据采集程序。其中FcPort.dll可适应任意端口。 程序 FcPort
Forcal32
QuitFc32
一般     作者 完成 免费  
FcCurve 一元函数绘图程序、实验数据处理程序。 程序 Forcal32 一般     作者 完成 免费,已开源 源代码在作者网站
  数据库系统。 Forcal扩展动态库 Forcal32W
FcData32W
较好或好 爱好者或商业用户   未知  
  正则表达式。可并入FcString
可直接封装C++正则表达式库。
Forcal扩展动态库 Forcal32W
FcData32W
较难 作者或爱好者   免费,将开源  
  封装IMSL等数学库。与封装徐士良算法的XSLSF库类似。 Forcal扩展动态库 Forcal32W
FcData32W
较易 作者或爱好者或商业用户   未知 工作量大
  封装任意可由C/C++、delphi等调用的函数。 Forcal扩展动态库 Forcal32W
FcData32W
一般 作者或爱好者或商业用户   未知 工作量取决于所封装的函数多少
  ... ...                  

    说明1:项目难易程度仅仅是根据作者的感觉给出的,仅作参考。Forcal封装各种数学库函数较容易,因而此类项目难度较小。
    说明2:移植性好表示是纯C/C++代码,移植性差表示包含大量Windows函数,以此类推。未开发项目的移植性表示一种期望。

版权所有© Forcal数学软件 2002-2009,保留所有权利
E-mail: forcal@sina.com  QQ:630715621
最近更新:
2009年09月30日