SmallLanguage发布记录


项目托管到这里了:

http://code.google.com/p/smalllanguage/

version 0.1

2011.6.17
SmallLanguage?的version 0.1总算完了。算起来,从第一次开始写脚本到现在也有一年多的时间了,前两次都是写了几天就由于种种原因放下了,好在一次比一次思路更开阔。这一次算是彻底地实现了一直以来追求的模样。很多很多的地方看起来依然不甚满意,我会一条条地记录下来,挨个修改。 这两天CSDN首页挂出了一条新闻,说Lua已经进入前十了。以前工作中用过Lua,也为它写过扩展库,所以多了解一些。它的小巧和灵活是名不虚传的。我写SmallLanguage?之前构思的时候,也一直在想,同是比较小的脚本,那么和Lua比,它需要有什么特色?技术没有好坏之分,但没有特色的东西是活不下去的。初期的想法,是要比Lua更简洁,甚至没有预置的API和复杂的数据结构。但这种寄生于主流编程语言的脚本天然是需要扩展的,只是方式问题。目前有了一些思路,但还需要再完善。要在写的过程中慢慢地体会和修改了。

version 0.2
2011.6.18
可以写一些C/C++函数注册进去,然后在脚本里面调用,目前只写了一个System包,包里面只有print,scan,add三个函数。主要用于调试。这种扩展机制很简单,学习的Lua。这一块儿不想搞得再复杂了。

version 0.3
2011.6.19
重新编排了一下目录,可以用Makefile进行编译和测试了。

version 0.4
2011.6.22
变量分成三种:text,number,boolean。变量具有初始值(text:空,number:0,boolean:false)。函数参数也有这三种类型。函数返回值有void,text,number,boolean四种类型。 另外增加了test的功能。只要把测试脚本(假设文件名是script.txt)放在test目录下,然后回到SmallLanguage?目录运行 ./test.sh script.txt 即可测试

version 0.5
2011.7.1
增加脚本错误提示功能,当脚本解释失败时,会提示出两种错误: user error:告诉脚本开发者,错误的行号和原因。 developer error:告诉脚本引擎开发者,发生错误的.cpp文件、代码行号和原因。 另外,重新组织了一下目录。 
编译: make 
安装: make install 
运行: ./test.sh code.txt(需要测试的脚本文件名,放在script目录下) 
卸载: make uninstall 

clean: make clean


version 0.6
2011.7.11
写了几个工具类:String,Vector,Log,Stack
替换C++的vector,string,iostream等库,方便向Android等对C++库支持不完全的平台上面移植。
更新了文件夹结构安排,方便Makefile编译和扩展自定义库


version 0.7
2011.7.18
markError与LOGE合并。建立了统一的LOG框架。LOGV是打印信息之用,LOGE是出错时使用,它们都支持可变参数列表。LOGE使用了longjmp来跳到executeScript的起点,不会导致程序强制退出,可以让宿主语言很从容地结束脚本引擎。
Vector和Stack的内部机制进行了优化。


version 0.8
2011.7.29
实现了函数调用堆栈记录功能,LOG中除了脚本错误行数、脚本引擎错误行数以外,也可以打印脚本函数调用轨迹了。
建立了字节码OPCode的内存池。避免脚本长时间运行过程中不断new/delete引起的内存碎片问题。
模仿Java做了一个字符串常量池,反复进行相同的字符串操作时不会再引起内存的分配/释放了。但在字符串常量池中进行查找和比较仍然需要线性时间,所以写脚本时还是要尽量避免重复进行字符串运算。


version 0.9
2011.8.16

OPCode从内存池分配后记录位置,后面交给内存池回收时只需要常量时间。
把以前写的一个智能指针工具SmallPointor移植过来了。与Android的sp不同的是,指针放入SmallPointor封装起来后只能通过SmallPointor->和*SmallPointor访问。因为计数器在SmallPointor内部。
添加了计时器精确到微秒

写时共享(copy-on-write)技术实现起来会让String变得复杂,而实际的工作并没有少做,只是延时去做。对于小字符串来说,好处不大,而String用的地方很多,稳定性很重要。所以暂时没有加上。加的时候可以参考这篇文章:
标准C++类std::string的内存共享和Copy-On-Write技术
http://blog.csdn.net/haoel/article/details/24058

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
**数字乡村解决方案摘要** **国家战略与乡村振兴** 中国正实施国家大数据战略,以加快数字中国的建设,整合数据资源,保障数据安全,并推动产业升级。2023年中央一号文件强调了乡村振兴战略,旨在通过产业兴旺、生态宜居、乡风文明、治理有效和生活富裕五大方面,实现农业农村现代化。 **数字乡村建设的重要性** 数字乡村建设是乡村振兴战略的重要组成部分,通过整合资源数据,推动物联网和遥感技术在农业中的应用,促进农业现代化。它被视为促进乡村转型发展的新方向,是数字化在农业农村经济社会发展中的应用。 **关键要素与效益** 数字乡村建设的关键要素包括数据资源整合、产业促进、农业发展规模化和标准化,以及改善乡村生活服务体系。预期效益包括提升国家治理能力,实现政府决策科学化和社会治理精准化,同时推动公共服务高效化。 **体系架构与数据融合** 数字乡村的体系架构包括乡村生态、基层治理、慧治、慧享、慧融、慧美、慧智和慧图等多个方面,实现城乡、政企、农户各级平台及服务的融合。数据融合是核心,整合乡村人口、产值、环境监测等多方面数据,为乡村治理和产业发展提供支撑。 **多业务协同与智慧治理** 数字乡村通过多业务协同应用平台,实现乡村物联网的布局和触达,涵盖农业生产、农资厂商、消费者等环节。区块链技术在农产品质量溯源中的应用,确保了产品全过程可追溯。乡村智慧治理通过村务管理、财务管理等方面提升治理效能,实现绿色发展理念。综合服务体系通过“互联网+服务”模式,提供便民服务和乡村经济发展支持,推动乡村全面振兴。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值