Lu核心库系统结构及输出函数

Lu来源于Forcal,可以说,没有Forcal就没有Lu,但学习Lu并不需要了解Forcal。

Lu是对Forcal的完善和发展,但与Forcal相比,Lu更简洁实用。Lu的运行效率,从单纯的数值计算和循环来说,是下降的,其他方面,特别在涉及动态对象的地方,Lu的效率会提高。Lu与Forcal本质的区别在于:Forcal以整数、实数、复数三种简单数据类型为基础,在描述复杂对象时,本身不带有数据类型信息,故是弱类型的;Lu以一种称为LuData的结构体作为基本数据类型,携带数据类型信息,故是强类型的。

Lu是一个可对字符串表达式进行动态编译和运行的动态链接库(dll),是一种易于扩展的轻量级嵌入式脚本,提供自动内存管理,也可以手动管理内存。Lu可用于连接各种语言编写的模块。Lu的优势在于简单易用和可扩展性强。

Lu用Win32标准函数调用方式(stdcall调用协议)输出了动态库函数,可供C/C++、VB、delphi、FORTRAN等程序使用。

Lu核心库中主要包含一个编译器LuCom、一个执行器LuCal和一个键树用以保存各种数据。Lu核心库系统结构及输出函数如图1及表1所示。

图1 Lu核心库系统结构及输出函数关系图

表1: Lu 输 出 函 数

3.1  版本信息函数:LuVer
3.2  初始化Lu:InitLu
3.3  释放Lu:FreeLu
3.4  获得Lu运行错误:GetRunErr
3.5  测试Lu运行错误:TestRunErr
3.6  设置Lu运行错误:SetRunErr
3.7  编译表达式:LuCom
3.8  计算表达式的值:LuCal
3.9  锁定一个模块:LockModule
3.10 设置外部二级函数:SetFunction
3.11 设置常量:SetConst
3.12 二级函数返回一个动态对象:FunReObj
3.13 二级函数保存动态对象:FunSaveObj
3.14 判断一个表达式是否有效:IsFor
3.15 获得表达式信息:GetFor
3.16 判断表达式的自变量是否重新赋值:ParaModify
3.17 删除一个表达式:DeleteFor
3.18 获得字符串:GetStr
3.19 获得数组:GetArray
3.20 申请系统内置动态对象:NewSysObj
3.21 重置系统内置动态对象:SetSysObj
3.22 插入一个键:InsertKey
3.23 查找一个键:SearchKey
3.24 删除一个键:DeleteKey
3.25 枚举指定键值类型所对应的所有字符串及键值:EnumKey
3.26 锁定键的类型:LockKey
3.27 按指定类型执行运算符重载函数:ExeOperator
3.28 垃圾收集时标记一个指针键(对象):SignGoodObj
3.29 垃圾收集:GC
3.30 从缓冲池中获取一个对象:GetBufObj
3.31 与Lu交换信息:ExMsgWithLu

Lu核心库系统结构及输出函数的更多相关文章

  1. Swift 正式开源, 包括 Swift 核心库和包管理器

    Swift 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章.自从苹果发布 Swfit 编程语言,就成为了历史上发展最快的编程语言之一.Swift 通过设计使得软件编写更加快速更加安全 ...

  2. APICloud支持Atom编辑器,并建立开发工具核心库

    APICloud支持Atom编辑器开发工具 APICloud始终坚持多开发工具支持策略,开发者无论使用Sublime Text3.Eclipse还是Webstorm,都可以在APICloud平台中找到 ...

  3. 【Java疑难杂症】利用Java核心库实现简单的AOP

    Spring是一个十分火热开源框架,而AOP(面向切面编程)则是Spring最重要的概念之一,为了更好的理解和学习AOP的思想,使用核心库来实现一次不失为一个好方法. 首先介绍一下AOP的概念,AOP ...

  4. .NET 解决方案 核心库整理

    一系列令人敬畏的.NET核心库,工具,框架和软件: https://www.cnblogs.com/weifeng123/p/11039345.html 企业级解决方案收录:  https://www ...

  5. 一系列令人敬畏的.NET核心库,工具,框架和软件

    内容 一般 框架,库和工具 API 应用框架 应用模板 身份验证和授权 Blockchain 博特 构建自动化 捆绑和缩小 高速缓存 CMS 代码分析和指标 压缩 编译器,管道工和语言 加密 数据库 ...

  6. maven项目中更新了核心库后导致一些包提示未定义,如:The import org.json cannot be resolved

    经查看发现了原因,因为核心库的版本没有变更,本地仓库只更新了核心库的jar部分的库,没有更新核心库pom项目.从而导致了一些库的引用提示未定义. 以后有新库更新,最好在本地库删除全部的相关库,再mav ...

  7. APICloud重磅支持Atom编辑器,并建立开发工具核心库

    APICloud技术再次升级,不仅支持Atom编辑器开发工具,并推出核心开发工具库,使开发者进行App开发更便捷高效. APICloud支持Atom编辑器开发工具 APICloud始终坚持多开发工具支 ...

  8. AIR32F103(五) FreeRTOSv202112核心库的集成和示例代码

    目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...

  9. 更新引用google的cdn外部jQuery核心库JS文件

    jquery-2.0.3   注!不再支持IE 6/7/8 直接引用地址: <script src="http://ajax.googleapis.com/ajax/libs/jque ...

随机推荐

  1. Tomcat 7最大并发连接数的正确修改方法(转)

    几乎所有的中文网页都介绍,要修改Tomcat的默认最大并发连接数,应该进行如下设置(实际上这些步骤是错误的): -------------------------------------------- ...

  2. TIA Portal V12不能添加新的CPU

    4核AMD 740,10G内存,Win7 X64,打开TIA Portal V12,依旧慢如牛,鼠标指针转啊转,TIA窗口写着 无响应... 真没志气,STM32要是玩转了,坚决不用这老牛. 上图为正 ...

  3. HDU - 5036 Explosion

    Problem Description Everyone knows Matt enjoys playing games very much. Now, he is playing such a ga ...

  4. ioctl、文件操作接口函数以及nand的升级模式的操作过程详解

    概述 内核中驱动文件的操作通常是通过write和read函数进行的,但是很多时候再用户空间进行的操作或许不是内核中公共代码部分提供的功能,此时就需要使用一种个性化的方法进行操作--ioctl系统调用. ...

  5. 经典排序算法 - 基数排序Radix sort

    经典排序算法 - 基数排序Radix sort 原理类似桶排序,这里总是须要10个桶,多次使用 首先以个位数的值进行装桶,即个位数为1则放入1号桶,为9则放入9号桶,临时忽视十位数 比如 待排序数组[ ...

  6. Redis 与 Memcache

    最近,我们看到许多使用Redis的案例,尤其是大型及先进的系统中应用的更多.事实上,我们正管理着一个新的规模庞大的Redis集群,设计该架构是为了每秒能处理上百万个事务.然而,Redis与Memcac ...

  7. FZOJ2111:Min Number

    Problem Description Now you are given one non-negative integer n in 10-base notation, it will only c ...

  8. 管理支撑办公系统技术架构选型对照讨论(J2EE与SOA对照)

    续:管理支撑办公系统技术架构选型及相关技术应用范围.方法分析 M域办公系统改造.整合涉及到OA.业务流程.部室信息站点.部室专业管理等系统和信息共享等新需求,从信息化视角来看,内容多并且杂,这里核心业 ...

  9. linux(readhat) yum源安装

    在安装測试环境的时候遇到了一个问题,/etc/yum/repos.d中不存在文件或目录,无法更新yum源. 解决方法: (一.配置网络yum源) 1.首先在/etc/yum/repos.d/文件夹下创 ...

  10. ASP.NET - 在类中如何使用 Server.MapPath

    直接在类中使用 Server.MapPath 会出现错误,这是由于类中不能直接使用 System.Web.UI.Page 的非静态函数造成的.解决方法有两种: 方法一.为类增加继承 class CFo ...