新增功能
最近折腾了一个月,给图形化编程增加了很多功能,让图形化编程可以使用更多的代码特色功能,让图形化编程使用起来更简单,功能更强。图形化编程不是给程序员用的,是给小孩子和没有编程能力写脚本控制硬件,所以采用拖放方式完成编程,所以看起来比敲代码要复杂。
支持模块化编程
在类库中增加选择的脚本文件,脚本里边extern的变量、函数和对象都可以在其他脚本中使用,从而实现模块化编程,减少代码大小,也实现代码的重用。
支持面向对象编程
实现对象的编程,只需要增加三种statement块,class定义,对象constructor定义、方法定义和this块,通过变量定义实现对象属性,通过extern块控制对象可见范围。
为了测试,写了一个复杂的包含对象、二叉树、递归的脚本,正常运行没有问题。
支持多线程编程
线程操作相对比较简单,不过有了多线程的支持,图形化编辑器功能更加全面
代码实现原理
上边博客讲了图形化编程的简单原理,模块化和面向对象,通过执行环境(ExecutionEnvironment)层级来实现,模块和class在加载时候都有自己的执行环境,模块和代码就是保存自己的执行环境,模块下方法和变量的执行只需要在这个执行环境下运行就可以,而对象实现就是在执行环境下新建一个执行环境(this就是这个执行环境),对象所有的变量都保存这个子执行环境中,每个对象(this)在定义位置的保存数据就是这个执行环境。具体实现,有兴趣的人,可以后期访问githup查看具体代码
其他特色实现
- 改善软件性能 ,块列表加载后进行缓存,第二次点击开始,都使用缓存的列表,提高了打开列表的速度。
- 支持代码折叠
- 增加了List和Dictionary初始化块,可以方便的初始化列表和字典,也可以在函数参数中使用,从而让脚本更像代码
- 支持代码块复制,按住ctrl拖动块,就可以复制块
- 支持函数快捷调用,按住ctrl或者alt拖动函数块,可以得到函数调用块
- 增加extern和const块,控制变量和函数的可见性,通过const块定义常量
总结
通过这么优化和工作,图形化编程更像代码,功能也更强,希望以后用这个软件学习代码的人能学到更多的代码知识。