/简体中文/
/简体中文/
//
//
//
//
/简体中文/
//
/简体中文/
//
Lu支持编译计算多个表达式的值,可进行模块化编译,是一种易于扩展的轻量级嵌入式脚本,提供自动内存管理,也可以手动管理内存。它有丰富的运算符和数据类型,大多数运算符可进行重载。Lu的优势在于简单易用和可扩展性强。Lu可用于各类数学软件的设计,也可用作报表处理、web、组态软件、游戏等的脚本,具有很高的执行效率。
1 :各个表达式之间用分号“;”分隔;
2 :在#MODULE#和#END#之间的表达式被编译成一个子模块,其余表达式在主模块;
3 :编译符#MODULE#和#END#必须位于表达式的开头;
4 :编译符“:::”表示该表达式是一个全局表达式,否则是私有表达式;
6 :只计算无参表达式,对于有参数的表达式,只编译,不计算;
7 :无参表达式名称前若有“!!!”,编译后立即执行,以后不再执行;
8 :无参表达式名称前若有“~~~”,只编译,不计算;
9 :在每行中两个‘//’后的字符将被忽略;
10:最多可用的表达式的个数均为100个;
11:最多加载20个Lu扩展动态库。
工具1:重新初始化Lu。如果模块中有表达式重名错误,或者你没有及时释放内存,导致内存消耗过大等,可使用该工具。
工具2:加载Lu扩展动态库。在代码窗口输入多个动态库名称(可包含路径),每个名称要放在双引号之间,如果有验证字符串,动态库名称(在前面)和验证字符串之间用冒号“:”隔开,这些库可以是你自己开发的。每次使用该工具,以前加载的库都将被卸载。
工具3:加载缺省的Lu扩展动态库。就是加载本软件包中附带的Lu扩展动态库。
工具4:卸载Lu扩展动态库。
工具5:打开/关闭:每次编译前,删除上次编译的表达式。这是一个开关,缺省是开关打开。
工具6:关闭/打开:每次计算清除输出。这是一个开关,缺省是开关关闭。
工具7:打开/关闭:输出计算结果。这是一个开关,缺省是开关打开。该开关仅影响无参表达式计算结果的输出,对函数的信息输出没有任何影响,如o函数。
提示:在输出信息较多时,速度很慢,可将信息输出到文件。
警告:本程序不能退出Lu运行时的无限循环!请使用DemoMLu32.exe演示退出Lu无限循环的程序。
Lu来源于Forcal,可以说,没有Forcal就没有Lu,但学习Lu并不需要了解Forcal。
Lu是对Forcal的完善和发展,但与Forcal相比,Lu更简洁实用。Lu的运行效率,从单纯的数值计算和循环来说,是下降的,其他方面,特别在涉及动态对象的地方,Lu的效率会提高。Lu与Forcal本质的区别在于:Forcal以整数、实数、复数三种简单数据类型为基础,在描述复杂对象时,本身不带有数据类型信息,故是弱类型的;Lu以一种结构体作为基本数据类型,携带数据类型信息,故是强类型的。
Lu是一个可对字符串表达式进行动态编译和运行的动态链接库(dll),是一种易于扩展的轻量级嵌入式脚本,支持协程,提供自动内存管理,也可以手动管理内存。Lu用于连接各种语言编写的模块。Lu的优势在于简单易用和可扩展性强。
Lu语法由核心库(Lu32.dll)、扩展库及主程序提供。本文主要介绍核心库提供的语法,非核心库语法部分将会特别说明(标记为红色部分)。
可以用任何一个加载Lu核心库的程序演示本文的代码,因不同程序对Lu语法的扩展不同,故非核心库语法部分不能保证一定运行成功,请参考程序的说明。
推荐的演示程序:(1)简单演示程序 DemoMLu32.exe;(2)简单演示程序 DemoLu32.exe;(3)开放式演示程序 OpenLu32.exe。
Lu核心库中主要包含一个编译器、一个执行器和一个键树用以保存各种数据。Lu核心库系统结构如图1所示。
打开压缩包内的lu.htm可查看Lu编译运行库的详细使用方法。
Lu编译运行库包括32位和64位两种版本,分别适用于x86和x64系统。