设计由Forcal支持的软件,设计Forcal扩展动态库

设计由Forcal支持的软件,设计Forcal扩展动态库

forcal

【研讨会专题报告】总刊(七)http://www.madio.net/forum.php?mod=viewthread&tid=99560

尊敬的数学软件研讨会主办方管理人员、各位与会代表,大家好:

非常荣幸能参加这次研讨会,使我能将Forcal脚本的基本特点和发展模式介绍给大家,感谢主办方提供的这次交流机会!

1 什么是Forcal

Forcal是一个轻量级嵌入式高速脚本,核心库只有一个小巧的动态库文件。

通常,使用各种高级语言如C/C++VBdelphiFORTRAN等设计的程序,不能对源代码进行动态编译,Forcal可为所有这些应用程序增加对字符串源代码的动态编译功能。Forcal可用于各类数学软件的设计,也可用作报表处理、web、组态软件、游戏等的脚本,具有很高的执行效率。

2 Forcal的优势

1)Forcal很小

核心库就一个动态库文件Forcal32W.dllForcal动态库版本文件110K左右,静态库版本约200K300K。目前有28个输出函数。

其他的Forcal扩展库如FcDataMForcalFcStringFcSystem等等,以及实用程序OpenFCFcCurveFcScript等都是根据Forcal核心库的28个输出函数设计的,进行这种设计主要是为了展示Forcal核心库的强大功能,但它们本身也具有很强的实用性。任何人只要熟悉Forcal核心库的28个函数,都可以进行这种设计,甚至会设计地更好。

2)Forcal很快

Forcal一级函数的计算速度约为C/C++FORTRAN速度的50%左右,二级函数的速度稍有降低。使用ForcalC/C++/FORTRAN混合编程的执行平均效率约(C/C++)FORTRAN程序的1/3左右。

通常情况下,Forcal是没有速度瓶颈的,因而一般无需为此而优化代码。

3)Forcal语法很简单

Forcal中只有常量、变量和函数,Forcal脚本试图选用最简单的语法实现完整的语言功能。与C相比,C是编译型的,尽管ForcalC在语法上有一定区别,但在功能上,Forcal试图做脚本式的C

4)Forcal功能很强

FORCAL有五种变量,即:自变量、动态变量、静态变量、模块变量和全局变量。有模块私有函数、公有函数的概念;有模块命名空间、二级函数命名空间。既支持小的项目,也支持大的项目。

5)Forcal功能很容易扩展

ForcalWin32标准函数调用方式(stdcall调用协议)输出了动态库函数,与各种高级语言是无缝链接的,特别是C/C++。加载Forcal32W.dll,往FORCAL中添加函数、常量、往Forcal键树中添加任意的数据等,是很平常的事。

6)支持私有函数和私有数据

无论从脚本的角度,还是从程序开发的角度(指Forcal与其他语言混合编程),Forcal都对私有函数和私有数据提供了很好的支持。支持私有函数和私有数据是Forcal程序的基本特征。

从程序开发的角度讲,Forcal可以保护来自不同线程(或者是不同的Forcal扩展模块)的私有数据不被非法删除,同时实现了这些自定义数据类型的共享和协作。

3 Forcal软件组成

Forcal支持的软件简称为Forcal软件。Forcal软件可分为两类:可执行程序和Forcal扩展模块。动态库是一种极好的扩展Forcal功能的方式,因而本文所说的Forcal扩展模块均是指Forcal扩展动态库,尽管这不是对Forcal进行功能扩展的唯一形式。为了简单,将Forcal可执行程序简称为Forcal程序。

Forcal软件的构成是高度组合式的。Forcal32W.dll是核心库,在此基础上可设计种类繁多的Forcal扩展动态库,Forcal程序由Forcal32W.dll及零个或任意多个Forcal扩展动态库提供支持。根据完成的功能不同,一个Forcal程序的规模(包括所有支持模块)可以很小(例如只有几百K),也可以非常大。

下图描述了Forcal的软件组成,其中底层的库对上面的库或程序提供支持,实线表示必须的库支持,虚线表示可选的库支持。

Forcal程序

1 Forcal软件组成

下面是两个重要的Forcal扩展库的简单说明:

FcData32W.dllForcal数据扩展动态库,支持简单的到任意复杂的数据类型,基本操作对象是FcData数据指针。该库可对其他Forcal扩展模块提供支持,提供必需的数据类型。

MForcal32W.dllMForcalForcal源程序进行模块化编译,能够编译运行具有固定格式的源程序(字符串表达式),源程序中可以使用C++风格的注释。

如果您想简化Forcal程序的设计,这两个库往往是必须的。

4 Forcal软件发展模式

虽然使用Forcal核心库的28个输出函数,用户完全可构建自己的处理系统。但作者也根据Forcal扩展库的28个输出函数,构建了一套系统——以Forcal扩展动态库的形式对Forcal进行了功能扩展,FcDataMForcalFcStringFcSystem等即是这套系统的重要组成部分;这套系统是以FcDataMForcal两个库为基础的,FcData提供了基本数据类型扩展功能,MForcal可对Forcal源程序进行模块化编译。

回到本文的主题:设计由Forcal支持的软件,设计Forcal扩展动态库!

Forcal让动态链接库(dll)真正成为所有程序的共享库,创建软件开发新模式,实现COM.NET不曾实现的东西。

Forcal让专业化软件开发商或爱好者更专注于专业化软件的开发,功能扩展不再由自己单独考虑,轻松获得所有外部Forcal扩展库的支持。

ForcalForcal标准库或实用库的开发商或爱好者更专注于Forcal扩展库的开发,任何有价值的库都将迅速得到普及。

下图描述了Forcal的软件发展模式:

Forcal发展模式

2 Forcal软件发展模式

可以看出,Forcal支持小的团队、公司或个人独立开发,但这些开发成果会无缝链接在一起,所有团队、公司或个人的成果是共享的。

与很多软件公司的发展模式不同(他们所追求的是一枝独秀),Forcal软件是百花齐放的。

欢迎访问Forcal程序设计:http://www.forcal.net/

谢谢大家!

2010-6-11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值