mathe 发表于 2010-8-9 18:38:02

我觉得CINT可能不错,解释执行C/C++语言:
http://root.cern.ch/drupal/content/cint
我觉得对于熟悉C/C++的用户,用CINT脚本会比较容易上手

无心人 发表于 2010-8-10 08:35:14

ch也不错,也是个脚本版的C

wayne 发表于 2010-8-10 09:21:44

11# forcal

Forcal是用C/C++写的,核心库FORCAL32W.DLL文件大小:约130K;不使用MSVC运行库的静态库版本,约260K~300K
很好很强大

wayne 发表于 2010-8-10 09:24:35

刚才更新了代码,放在主题里,加入了输入的正则验证,修改了工程文件的参数。
现在从此终结,关于代码问题,欢迎交流。

wayne 发表于 2010-8-10 09:47:10

11# forcal
我把你的代码复制到forcalDemo里面,好像不能执行

===================================
另外,一点小建议,感觉软件打包发布最好还是先统一放在一个文件夹里,再压缩。呵呵,我有一个习惯,一见到压缩文件就“解压到当前目录”,:lol

wayne 发表于 2010-8-10 10:00:08

本帖最后由 wayne 于 2010-8-10 10:02 编辑

12# mathe
想到以前的一个主题,关于c++解释器的。
http://bbs.emath.ac.cn/thread-2115-1-2.html

这些C/C++应该都是通用型的,性能自然会有一些折扣,就跟gcc编译器速度慢差不多。
我想,如果自个儿定制一些解释器的语法,只专注于几个特定类型的东西,效率应该会很高的

forcal 发表于 2010-8-10 10:08:44

11# forcal
我把你的代码复制到forcalDemo里面,好像不能执行

===================================
另外,一点小建议,感觉软件打包发布最好还是先统一放在一个文件夹里,再压缩。呵呵,我有一个习惯,一见到 ...
wayne 发表于 2010-8-10 09:47 http://bbs.emath.ac.cn/images/common/back.gif
forcalDemo比较简单,不支持编译符mvar:(加载MForcal的程序支持该编译符,如OpenFC),将mvar:改成下面显示声明变量的方式:(::t0,sum,x,y)=//与编译符mvar:等效,声明为模块变量,速度稍快或者:(:t0,sum,x,y)=//声明为自动变量,速度稍慢===================================
感谢您的建议!我以前也有这个习惯,一解压缩包,弄得满地都是,给您填麻烦了,呵呵。若点解压到...,就可以了。
如果先放在文件夹中,点解压到...,就多了一层文件夹,也比较麻烦。
看来多了一层文件夹比满地都是要好,以后会注意这一点。

wayne 发表于 2010-8-10 10:09:21

lua是一种胶合语言,我们应该把它定位于胶合剂的角色。
forcal的定位是什么呢,通用型的,专注于科学计算的,还是一切通吃的那种多模范型(multi-paradigm)的

wayne 发表于 2010-8-10 10:16:15

呵呵,说的有点杂乱,看wikipedia的解释最清楚,最专业的了:
http://zh.wikipedia.org/zh-cn/Lua

forcal 发表于 2010-8-10 10:33:36

lua是一种胶合语言,我们应该把它定位于胶合剂的角色。
forcal的定位是什么呢,通用型的,专注于科学计算的,还是一切通吃的那种多模范型(multi-paradigm)的
wayne 发表于 2010-8-10 10:09 http://bbs.emath.ac.cn/images/common/back.gif
Forcal也算是一种胶合的脚本吧。

    Forcal的优势:
    1)Forcal很小。就一个动态库文件Forcal32W.dll,Forcal动态库版本文件小于150K,静态库版本约260K~300K。仅20多个输出函数。
    2)Forcal很快。就目前的脚本而言,只有Lua的速度与Forcal相当。Forcal一级函数的计算速度约为(C/C++)或FORTRAN速度的50%左右,二级函数的速度稍有降低。
    3)Forcal语法很简单。Forcal中只有常量、变量和函数,没有关键字,但有些符号常量、变量名或函数名使用很频繁,可当作“关键字”来使用。如if、while、until、static、common等等。
    4)Forcal功能很强。FORCAL有五种变量,即:自变量、动态变量、静态变量、模块变量和全局变量。有模块私有函数、公有函数的概念;有模块命名空间、二级函数命名空间。既支持小的项目,也支持大的项目。
    5)Forcal功能很容易扩展。Forcal用Win32标准函数调用方式(stdcall调用协议)输出了动态库函数,与各种高级语言是无缝链接的,特别是C/C++。加载Forcal32W.dll,往FORCAL中添加函数、常量、往Forcal键树中添加任意的数据等,是很平常的事。程序员对Forcal进行扩展,像用户使用Forcal表达式一样平常。Forcal中通过扩展库FcData提供了非常丰富的数据类型:简单数据、任意维数组、类。所有FcData都通过new、delete申请和销毁,与C++非常相似。FcData提供了自动的内存管理,也可以自己管理内存。

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

    我觉得功能易用扩展且可无缝协作是Forcal的一个优势。但也有个网友一直仅使用核心库Forcal32W.dll,而不愿意使用我提供的各种Forcal扩展库。

    目前,我想先发展Forcal的数值计算功能,因为人们常用的matlab体积庞大,在大量函数调用时效率较低。呵呵,一点想法。
页: 1 [2] 3 4
查看完整版本: GMP大数运算库的一个Qt界面小程序