优特云
[ { "name": "首页", "url": "http://www.utyun.com/", "target": "0", "child": [] }, { "name": "活动", "url": "http://www.utyun.com/h-col-141.html", "target": "0", "child": [] }, { "name": "产品", "url": "", "target": "1", "child": [ { "name": "U语言", "url": "http://www.utyun.com/h-col-176.html", "target": "0", "child": [] }, { "name": "U平台", "url": "http://www.utyun.com/h-col-150.html", "target": "0", "child": [] } ] }, { "name": "技术与服务", "url": "", "target": "1", "child": [ { "name": "运维服务", "url": "http://www.utyun.com/h-col-161.html", "target": "0", "child": [] }, { "name": "技术方案", "url": "http://www.utyun.com/h-col-178.html", "target": "0", "child": [] } ] }, { "name": "优特云学院", "url": "", "target": "1", "child": [ { "name": "教程", "url": "http://www.utyun.com/h-col-166.html", "target": "0", "child": [] }, { "name": "下载中心", "url": "http://www.utyun.com/h-col-170.html", "target": "0", "child": [] }, { "name": "论坛", "url": "http://www.utyun.com/h-col-169.html", "target": "0", "child": [] } ] }, { "name": "关于优特云", "url": "", "target": "1", "child": [ { "name": "企业概况", "url": "http://www.utyun.com/h-col-171.html", "target": "0", "child": [] }, { "name": "新闻动态", "url": "http://www.utyun.com/h-col-172.html", "target": "0", "child": [] }, { "name": "加入我们", "url": "http://www.utyun.com/h-col-173.html", "target": "0", "child": [] }, { "name": "团队风采", "url": "http://www.utyun.com/h-col-140.html", "target": "0", "child": [] } ] } ]

用户语言内核使用(3.0)
用户语言内核使用

谢一铭 最后一次编辑

接近 2 年前 438

一、使用流程图

外部用户实现某业务过程通常会经过以下几个阶段:

二、使用步骤说明

1.业务分析

该过程目前为可选环节,平台提供了表格化分析工具,进行用户语言数据生成。详细内容请参考使用指南。

2.业务界面编缉

用户语言本身提供了通用IDE,用户可以直接使用,也可以自行在语言内核的基础上开发用户操作界面,如菜谱创作App等。 编缉完成后后保存为"编译源文件",源文件经过本地编译或云编译后生成用户语言的可执行文件,一个二进制格式文件,后缀名为“.ulc”。无论采用何种业务编缉工具,均应包含以下几个环节:

3.编译器编译环境搭建与使用

编译分为本地编译和云编译两种,具体使用方法:
  1. 本地编译分为三个步骤:1). 下载对应版本的sdk ;2). 将编译器动态库添加到项目中;3). 使用动态加载的方式进行接口调用 详情可以参考“本地编译3.0”。
  2. 云编译,是用户语言提供的云端通用编译引擎。开发者可以通过调用云编译的API进行同步编译。 详情可以参考“云编译3.0”。
编译环境具体使用方法:

4.虚拟机运行环境搭建与使用

虚拟机执行分为本地执行和云执行两种:
  1. 本地执行虚拟机以动态库加头文件的形式提供给用户,用户需提供相应平台的C语言编译工具。主要分为三个步骤:1). 下载对应版本的sdk;2). 将虚拟机动态库和头文件添加到项目中;3). 直接接口调用的方式调用接口 详情可以参考“本地执行3.0”。使用流程如下:
  1. 云执行,是用户语言的云端通用执行引擎。开发者可以使用云执行的API进行实例管理,服务发布管理及运行用户语言可执行文件。详情可以参考“云执行3.0”。

5.上线发布

用户语言与调用的服务一起上线发布,如语言内核有更新,则独立维护。

三、API参考

   
本地编译器
序号 接口名称 接口描述 版本
1 Compile 本地编译 V3.01
本地编译器.pdf
430.5 KB
云编译
序号 接口名称 接口描述 版本
1 云编译-编译管理(公共)-编译 POST: /lancp-compiler-cloud/public/v3/compile/ga-synchronous V3.01
云编译.pdf
322.7 KB
本地执行器
  • 虚拟机提供的接口
序号 接口名称 接口描述 版本
1 common_reg_init 注册虚拟机 V3.01
2 create_vm 创建虚拟机 V3.01
3 common_vm_run 虚拟机运行 V3.01
4 common_vm_free 虚拟机释放内存 V3.01
5 getVar 获取变量数据 V3.01
6 setVar 更新变量数据 V3.01
7 common_vm_tick 用于捕获定时器信息 V3.01
8 getAppinfoOffset 根据虚拟机来获取应用扩展区的偏移量 V3.01
9 getAppinfoOffset_ex 根据应用数据源来获取应用扩展区的偏移量 V3.01
10 getVersion 获取虚拟机版本 V3.01
11 u_coreglobal_version 获取虚拟机core层的版本 V3.01
  • 虚拟机提供的通用数据转换接口
序号 接口名称 接口描述 版本
12 getObjectType 获取通用数据类型 V3.01
13 objectToChar 通用数据类型object转换成char数据类型 V3.01
14 charToObject char数据类型转换成通用数据类型object V3.01
15 objectToShort 通用数据类型object转换成short数据类型 V3.01
16 shortToObject short数据类型转换成通用数据类型object V3.01
17 objectToInt 通用数据类型object转换成int数据类型 V3.01
18 intToobject Int数据类型转换成通用数据类型object V3.01
19 objectToString 通用数据类型object转换成string数据类型 V3.01
20 stringToObject string数据类型转换成通用数据类型object V3.01
21 objectToFloat 通用数据类型object转换成float数据类型 V3.01
22 floatToObject float数据类型转换成通用数据类型object V3.01
23 objectFree 数据的内存释放 V3.01
  • 应用系统必须实现的接口
序号 接口名称 接口描述 版本
24 ComAppFunc 应用系统函数入口 V3.01
25 noticeVar 通知应用设置变量 V3.01
26 UGetVMVar 获取时间点变量的数据 V3.01
27 getNoticeVar 在使用数据外部代理的情况下,通知应用是否需要更新变量 V3.01
28 UAppFrustrum 执行并行运行的回调 V3.01
29 readBin 从bin文件指定的地址读取一定数量的字节 V3.01
30 UTaskNew 创建任务 V3.01
31 UMutexNew 创建互斥锁 V3.01
32 UMutexLock 加锁互斥锁 V3.01
33 UMutexUnlock 解锁互斥锁 V3.01
34 UMutexFree 释放互斥锁 V3.01
35 UGetHostTime 获取主机当前时间 V3.01
36 UMalloc 动态内存申请 V3.01
37 UFree 释放动态内存 V3.01
  • 应用系统可选实现的服务接口
序号 接口名称 接口描述 版本
38 tableCBExist 外部数据表是否存在 V3.01
39 tableCBGet 通过外部数据表获取数据 V3.01
40 tableCBSet 通过外部数据表更新数据 V3.01
41 tableCBFree 释放外部数据表的数据缓存 V3.01
42 logCB 日志输出 V3.01
本地执行器.pdf
821.0 KB
云执行
序号 接口名称 接口描述 版本
1 (云执行-实例管理(用户)-创建实例 POST: /lvmp/instance/create V3.01
2 (云执行-实例管理(用户)-查询实例 GET: /lvmp/instance/find V3.01
3 云执行-实例管理(用户)-分页查询bin文件对应的实例 GET: /lvmp/instance/query V3.01
4 云执行-实例管理(用户)-运行实例 POST: /lvmp/instance/run V3.01
5 云执行-实例管理(用户)-销毁实例 POST: /lvmp/instance/delete V3.01
6 云执行-实例管理(用户)-查询实例的指定变量值 GET: /lvmp/instance/getVar V3.01
7 云执行-实例管理(用户)-查询指定实例的运行日志 GET: /lvmp/instance/getLog V3.01
8 云执行-发布管理(管理员)-服务上架 POST: /lvmp/serviceAdmin/publish V3.01
9 云执行-发布管理(管理员)-服务下架 POST: /lvmp/serviceAdmin/revoke V3.01
10 云执行-发布管理(开发者)-服务下架 POST: /lvmp/serviceDeveloper/revoke V3.01
11 云执行-发布管理(用户)-服务上架 POST: /lvmp/serviceUser/publish V3.01
12 云执行-发布管理(用户)-服务下架 POST: /lvmp/serviceUser/revoke V3.01
13 云执行-服务运行管理(用户)-创建服务运行实例 POST: /lvmp/serviceUser/instance/create V3.01
14 云执行-服务运行管理(用户)-运行动态定制流服务实例 POST: /lvmp/serviceUser/dynamicFlow/run V3.01
15 云执行-服务运行管理(用户)-运行静态定制流服务实例 POST: /lvmp/serviceUser/flowService/run V3.01
16 云执行-消息触发管理(用户)-发送消息 POST: /lvmp/util/sendMessage V3.01
17 bin文件管理-bin文件管理(用户)-下载bin文件 GET: /binfile/v3/bin-file V3.01
18 bin文件管理-bin文件管理(用户)-上传bin文件 POST: /binfile/v3/bin-file V3.01
云执行.pdf
369.2 KB

四、云与部署

用户语言内核不仅提供基于不同硬件操作系统的编译器和执行虚拟机,还可以为能够访问公共网络的应用提供云编译和云执行服务,具体使用流程如下:
云与部署.pdf
395.0 KB

五、最佳实践

应用环境
用户语言自2014年发布以来一直在不断地探索,并成功在智能家居、智慧厨房、电力防误领域,分别支持windows,linux,ucos,android等多种OS平台,具体应用信息如下:
海关锁业务
海关锁业务.pdf
833.1 KB
智能家居业务
智能家居业务.pdf
352.7 KB
电子菜谱业务
电子菜谱业务.pdf
417.5 KB
编译执行模拟器
编译执行模拟器.pdf
236.0 KB

六、产品版本

    

用户语言 V3.00 (已发布)

本地编译器包
  • 通用编译器内核 V3.00 数据层、预处理器、词法分析器、语法分析、语义检查、代码生成器 。
  • 餐饮语义分析器 V3.00 菜谱类型、口味、食材、餐饮业务处理。
  • 家居语义分析器 V3.00 智能家居语句分析,特殊元素解析。
  • 更新家居语义分析器V3.00.03.01,家居IDE使用。
  • 更新餐饮语义分析器V3.00.02.04,充菜谱任务信息。
  • 本地编译器-智能家居版 V3.00.03.07,修复设备类型为“虚拟设备”时,适配器没有处理值描述。
  • 本地编译器-V3.00.04.00,优化ULC字节码打包逻辑,有效减小ULC文件体积。
  • 本地编译器-V3.00.05.01,修复同一语句中不同类的对象使用同名函数时函数定义识别错误的问题。
本地执行器包
  • 执行器内核 V3.00 状态机、函数、数据、变量、事件、内存管理,多操作系统适配等。
  • 餐饮适配C++ V3.00 菜谱实例任务管理、业务函数调度、日志管理。
  • 家居适配 V3.00 智能家居术语适配维护,性能优化和bug修复。
  • 家居适配 V3.00 虚拟机代码空间优化。
  • 电脑钥匙适配 V3.00 电脑钥匙业务适配,运行资源优化。
  • 本地执行器-智能家居版 V3.0.1.1,针对家居优化代码空间。
  • 本地执行器-智慧餐饮版 V3.0.35,提供接口,从执行文件应用扩展区获取菜谱任务信息。
  • 本地执行器-智慧餐饮版 V3.0.36
    1.添加预加载相关接口(降低预加载200个菜谱资源消耗)
    2.增加菜谱可执行文件的正确性校验
云执行 V3.00
  • 云执行平台 虚拟机管理、执行实例、消息队列、缓存管理、bin文件管理。

优特云