QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3487|回复: 2
打印 上一主题 下一主题

【研讨会专题报道】第五期

[复制链接]
字体大小: 正常 放大

1341

主题

738

听众

2万

积分

数学中国总编辑

  • TA的每日心情

    2016-11-18 10:46
  • 签到天数: 206 天

    [LV.7]常住居民III

    超级版主

    社区QQ达人 邮箱绑定达人 元老勋章 发帖功臣 新人进步奖 原创写作奖 最具活力勋章 风雨历程奖

    群组2011年第一期数学建模

    群组第一期sas基础实训课堂

    群组第二届数模基础实训

    群组2012第二期MCM/ICM优秀

    群组MCM优秀论文解析专题

    跳转到指定楼层
    1#
    发表于 2010-6-22 09:36 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定
    本帖最后由 厚积薄发 于 2010-6-22 18:19 编辑

    设计由Forcal支持的软件,设计Forcal扩展动态库
    发言人  forcal( 禄)
    尊敬的数学软件研讨会主办方管理人员、各位与会代表,大家好:
    非常荣幸能参加这次研讨会,使我能将Forcal脚本的基本特点和发展模式介绍给大家,感谢主办方提供的这次交流机会!
    1 什么是Forcal
    Forcal是一个轻量级嵌入式高速脚本,核心库只有一个小巧的动态库文件。
    通常,使用各种高级语言如C/C++VBdelphiFORTRAN等设计的程序,不能对源代码进行动态编译,Forcal可为所有这些应用程序增加对字符串源代码的动态编译功能。Forcal可用于各类数学软件的设计,也可用作报表处理、web、组态软件、游戏等的脚本,具有很高的执行效率。
    2 Forcal的优势
    1Forcal很小
    核心库就一个动态库文件Forcal32W.dllForcal动态库版本文件110K左右,静态库版本约200K300K。目前有28个输出函数。
    其他的Forcal扩展库如FcDataMForcalFcStringFcSystem等等,以及实用程序OpenFCFcCurveFcScript等都是根据Forcal核心库的28个输出函数设计的,进行这种设计主要是为了展示Forcal核心库的强大功能,但它们本身也具有很强的实用性。任何人只要熟悉Forcal核心库的28个函数,都可以进行这种设计,甚至会设计地更好。
    2Forcal很快
    Forcal一级函数的计算速度约为C/C++FORTRAN速度的50%左右,二级函数的速度稍有降低。使用ForcalC/C++/FORTRAN混合编程的执行平均效率约(C/C++)FORTRAN程序的1/3左右。
    通常情况下,Forcal是没有速度瓶颈的,因而一般无需为此而优化代码。
    3Forcal语法很简单
    Forcal中只有常量、变量和函数,Forcal脚本试图选用最简单的语法实现完整的语言功能。与C相比,C是编译型的,尽管ForcalC在语法上有一定区别,但在功能上,Forcal试图做脚本式的C
    4Forcal功能很强
    FORCAL有五种变量,即:自变量、动态变量、静态变量、模块变量和全局变量。有模块私有函数、公有函数的概念;有模块命名空间、二级函数命名空间。既支持小的项目,也支持大的项目。
    5Forcal功能很容易扩展
    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的软件组成,其中底层的库对上面的库或程序提供支持,实线表示必须的库支持,虚线表示可选的库支持。
    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的软件发展模式:
    2
    Forcal
    软件发展模式
    可以看出,Forcal支持小的团队、公司或个人独立开发,但这些开发成果会无缝链接在一起,所有团队、公司或个人的成果是共享的。
    与很多软件公司的发展模式不同(他们所追求的是一枝独秀),Forcal软件是百花齐放的。
    欢迎大家访问我主页:www.forcal.net
    谢谢大家!
    2010-6-11
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    3

    主题

    6

    听众

    233

    积分

    升级  66.5%

  • TA的每日心情

    2013-9-16 03:20
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    自我介绍
    ou是新手 希望这个平台能够帮助ou提升

    群组学术交流A

    群组西南大学建模组

    群组数学建模

    回复

    使用道具 举报

    14

    主题

    6

    听众

    239

    积分

    升级  69.5%

  • TA的每日心情
    擦汗
    2012-2-1 13:24
  • 签到天数: 1 天

    [LV.1]初来乍到

    群组华中科技大学

    群组Matlab讨论组

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-8-8 10:19 , Processed in 0.561084 second(s), 63 queries .

    回顶部