📄 -
字号:
BASIC语言解释程序v1.2
语法说明,支持整型X,字符串型X$和浮点型X!等三种运算,
实现了数组,支持供函数和过程,行号并没有得到支持,
BASIC语法版本很多大概语法和DOS下的QBASIC那个版本差
不多,实现的语句有IF/GOTO/GOSUB/RETURN/SUB/FUNCTION
PRINT/THEN/ELSE/DIM/WHILE/WEND。注意,现在还没有提
供INPUT功能如果要输入请用VASM内铅虚拟机汇编实现。
扩展:字符串可以无限长,是虚拟机做特殊支持的。支持
灵活的类型转化:
B$="100"+"5"
A=B$
B$=A+5
结果是A=1005,B$="1010"这样比原来的BASIC更具有灵活的
字符串处理能力
为什么虚拟机?
在我编程的经验中,很多地方用到了脚本,而且我也写了
几个脚本引擎,我迫切的感觉需要一个虚拟机来提供强大
的铅入式编程,于是上半年写了一个虚拟机。而且既然要
它实现与平台无关的铅入式,我的代码都经过几个C++编译
器的测试:G++/VC++/BCB等,希望它能不偏不倚。虚拟机
指令集是我对某个汇编指令集做了精简设计出来的,模拟
一个栈式CPU的常用功能,指令里面有IN/OUT两条指令控制
输出输入,所谓向端口输入,输出解释程序并不做什么而
是调用外面的程序来处理发生的输出输入操作,这样通过
处理函数的继承,重载实现了虚拟机功能的扩充,因此有
点象PC系列里面的中断调用功能而已。
程序说明:
vmbasic.exe BASIC脚本解释程序,把.bas编译成.vms
vmbeta.exe 虚拟机运行程序,运行.vms
demo1.vms 虚拟机程序:算阶乘的
alex1.bas 非波拉数列生成程序
alex2.bas 矩阵(二维数组)测试程序
alex3.bas 递归回溯解八皇后问题的程序
alex4.bas 函数解八皇后的版本
关于脚本引擎
记得3DS/MAX里面实现了一个类似BASIC的脚本,Animator
里面实现了一个类C的脚本语言,Autodesk公司的软件对于
脚本支持的很出色,因此我也只是希望能对程序起一个很好
的扩充功能。我觉得虚拟机的效率不算太低,就是编译程序
没有做代码优化,生成许多烦琐的中间代码。通过八皇后程
序的速度测试,编译好的alex3.bas运行速度大概是QBASIC
的三四倍左右,先这样吧,等有了时间与闲情再做优化吧~
不过如果有了时间,我会首先考虑实现让它可以动态连接。
欢迎大家测试。
欢迎来信讨论:
skywind: skywindt@yeah.net
QQ:13163597
4/23/2002
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -