图形编程编辑器总结

本文介绍了开发一款图形编程编辑器的初衷和过程,该编辑器支持变量、操作符、流程控制、面向对象、数据结构和多线程等功能。扩展功能包括COM对象、DLL调用及调试功能。此外,还具备画图、语音转换、硬件控制等趣味特性,适用于儿童编程教育。为提升稳定性和扩展性,采用进程隔离和自定义类库支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图形编程编辑器

开发图形编程编辑器原因

最开始只是觉得使用了多年的公司图形编程软件太难用,不支持面向对象,不支持复杂数据结构,只能用一个数组解决各种问题,而且只支持二元表达式,复杂点表达式都要拆成多个二元表达式,复杂编程太痛苦,所以当时就想挑战下自己,看看是否可以写出更好的图形编程工具。通过查看各种资料和项目,就采用了将代码逻辑语法树(AST)的每个语法,都封装一个块,通过块的拖放完成编程。后来赶上疫情,孩子上网课呆在家里时间多,老婆希望教他编程,所以就把这个工具逐步完善,一边陪孩子玩编程一边进行修改。断断续续改了快一年半了,目前编辑器差不多实现了当时的各种预期,也改掉了各种各样的bug,这里总结下,编辑器实现的功能。

图形编程编辑器实现的功能

基本语法

  1. 变量:支持变量作用域(局部变量和全局变量),支持整数、小数、布尔值、字符串;支持变量类型转换,支持常量
  2. 操作符:支持四则运算、逻辑运算、位运算等所有操作符
  3. 流程语句:支持if-else,for, foreach、while、do-while,switch语句,支持break和return的流程中断控制
  4. 函数:支持函数、函数参数和返回值,支持函数递归
  5. 数组:支持一维和二维数组,支持[]取值和赋值
  6. 字符串:支持通过+进行字符串连接,支持字符串各种函数
  7. 异常处理,实现try catch和final语句
  8. 数据结构:实现list、Dictionary、堆栈和队列
  9. 线程:支持多线程和线程同步,实现三种线程同步方法(event、mutex和lock语句)
  10. 面向对象,支持面向对象编程,可以自定义和使用对象,支持继承和方法重载
  11. 支持模块化编程,支持脚本被其他脚本作为类库使用,实现代码宠用。所有功能都支持模块化。
  12. 支持选择脚本在32位和64位模式下运行(主要是针对dll和COM对象只能在特定模式下运行,增加这个功能)

扩展功能

支持使用COM、Active-X和.Net对象,支持使用动态链接库(dll)的函数,从而可以扩展图形脚本更多功能,实现更多和更复杂的应用。
使用dll文件

Debug功能

编辑器代码运行时候支持逐步运行,并显示当前步骤或者表达式的值,同时程序爆粗时候,可以定位报错位置

其他功能

实现画图、文字转语音、翻译、EV3和Arduino硬件控制、制作scratch游戏等适合儿童编程的有趣功能,同时也增加了数学、时间日期、文件系统、网通通信、json数据转换等功能。可以用来实现很多有趣功能,编写游戏,在编辑器示例中,就增加了五子棋和围棋游戏,还有通过网络通讯的五子棋堆栈。
围棋

编辑器的稳定性

为了提高编辑器的稳定性,将脚本的编辑器和运行隔离到两个独立进程,从而代码的运行和代码编辑完全隔离,代码运行产生的各种问题,不会对编辑器产生影响。

图形编程编辑器的扩展性

可以将自定义的类库增加到编辑器中,实现更多的功能。也可以将图形编程作为一个控件放到应用中,实现基于图形程序的其他复杂功能。

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值