虚拟机及VmBasic编译引擎说明
  1.关于虚拟机及其编译器的说明
2.VmBasic开发/调试环境的介绍及说明
3.关于其他
下载地址一 源程序下载
下载地址二 设计说明书
关于虚拟机及其编译器的说明
 

  记得3DS/MAX里面实现了一个类似BASIC的脚本,Animator里面实现了一个类C的脚本语言,Autodesk公司的软件对于脚本支持的很出色,好的脚本引擎在乎平台无关性、高效性和扩充性,一个脚本引擎的需要对一个好程序来说非常迫切,于是半年前我写了一款虚拟机,最近又实现了一个类Basic的脚本编译器,特性说明:

1 高效性和独立于平台:由于虚拟机运行是解释二进制的字节码因此速度明显快于每次运行及时解释的脚本语言,比如Perl和PHP,而虚拟机的核心程序代码也经过数个C++编译器和平台的测试,可以毫无修改的编译运行于多个操作系统。
 
2 充分的开放:通过虚拟机的端口I/O技术,要对它进行扩充变得十分容易,VmBeta指令通过输出/输入的方法向用户自己的程序进行通讯,用户通过处理输出输入消息来达到功能的扩充,使它符合你产品的需要,具体的虚拟机实现和设计说明参考文档 vmbeta.txt
 
3 可设安全级别:通过可设置安全级别,对程序运行状态进行检控

  通过半年的修改我自己觉得虚拟机够高效开放,就是vmbasic编译器写的没有多高的水准:完全没有对生成代码做优化,弄出许多繁琐的中间代码,不过还是明显快于及时解释语言,通过测试速度大概是DOS自带的QBASIC程序的三倍左右(可以通过目录下的几个算法程序来实验)。

  为了检验其效率和扩充性,我将虚拟机程序扩充了一些作图功能写成了Windows版本的,然后用vmbasic编写了一个空战小游戏,虽然由于一开始我太相信GDI而没有选择DDraw,且编译器要生成1/2左右的重复性代码,但是仍可以从游戏中看出效率来(可以用vmbide.exe打开fire.bas运行),关于编译程序VmBasic的更详细说明见basic.htm

  程序说明:压缩档包括虚拟机运行程序(vmbeta.exe)VmBasic调试开发平台(vmbide.exe)四个算法例子(alex1-4.bas) 一个射击游戏例子(fire.bas)及其图片,说明帮助文档若干....

VmBasic开发/调试环境的介绍及说明
 
右边的图是完整的开发环境左边是语句帮助,中间是代码编写区,下面是编译的错误和过程记录,系统热键说明:
 1.F8编译成VMS文件
 2.F9编译并运行程序
 3.F1对VmBasic的帮助
 4.Shift+F1帮助IDE
 
另外点击运行图表左边的图表可以查看编译出来的虚拟机汇编代码。点击工具目录,可以做一系列设置:虚拟机程序设置,预连接库设置,开发环境设置等,都是简单的东西
 
   
用VmBasic编写的射击小游戏:必须Windows版的虚拟机程序运行(扩充了GDI图形功能)
显示查看虚拟机汇编
关于其他
 

  半年前在论坛上面看见过一些师兄们关于编译的争论,忽然有所感悟,那时刚好写了虚拟机,于是就决定为它写款语言,本来考虑写类C或者类Pascal的,但是想着Basic用起来简单,而且分析起来似乎也简单,后来我才发现虽然没有C的编译难写但由于Basic经历了长时间的发展,语法变化很大,总的来说没有同意的规范,模块表示也不明确,就连IF语句都有好多种版本,所以一个支持函数/过程的Basic编译器我觉得比Pascal难写的多。目录DOS下有DOS环境的编译器和虚拟机,可以用来编译运行非扩展的vmbasic程序:alex1-4.bas,可以在IDE的工具->设置里面设定虚拟机的运行程序。

  这是个引擎的演示版本,毕竟好的东西都不是一个人整出来的,我也会在学校不断的学习,非常欢迎来信讨论相关技术,和游戏/图形程式设计,如果你觉得这套引擎对你有价值,可以写信给我,如果你对相关的东西很感兴趣,也可以写信给我,联系方法:

成都建设路电子科技大学20013080 林伟
邮编:610000
电话:028-83200790
信箱:skywindt@yeah.net 
   lwwind@yeah.net

无名鸟游戏工作组制作 http://softnb.51.net  http://www.joynb.net

虚拟机及VmBasic编译引擎实现相关推荐

  1. mysql种编译码写在哪_深入理解Java虚拟机(程序编译与代码优化)

    对于性能和效率的追求一直是程序开发中永恒不变的宗旨,除了我们自己在编码过程中要充分考虑代码的性能和效率,虚拟机在编译阶段也会对代码进行优化.本文就从虚拟机层面来看看虚拟机对我们所编写的代码采用了哪些优 ...

  2. java虚拟机调用linux_Java虚拟机字节码执行引擎

    定义 Java虚拟机字节码执行引擎是jvm最核心的组成部分之一,它做的事情很简单:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果.在不同的虚拟机实现里,执行引擎在执行java代码 ...

  3. jvm(8)-虚拟机字节码执行引擎

    [0]README 0.1)本文转自 "深入理解jvm",旨在学习 虚拟机字节码执行引擎 的基础知识: [1]概述 1)物理机和虚拟机的执行引擎: 物理机的执行引擎是直接建立在处理 ...

  4. java 虚拟机 字节码,JAVA虚拟机:虚拟机字节码执行引擎

    "虚拟机"是一个相对"物理机"的概念,这两种机器都有代码执行能力. 物理机的执行引擎是直接建立在处理器.硬件.指令集和操作系统层面上的. 虚拟机的执行引擎由自己 ...

  5. 深入理解Java虚拟机(周志明第三版)- 第八章:虚拟机字节码执行引擎

    系列文章目录 第一章: 走近Java 第二章: Java内存区域与内存溢出异常 第三章: Java垃圾收集器与内存分配策略 代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言 ...

  6. 深入理解java虚拟机-第五章:虚拟机字节码执行引擎

    本章将介绍虚拟机如何调用方法 一.java虚拟机字节码执行引擎 执行引擎在执行代码的时候可能有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种. 执行流程:输入的是字节码文件 ...

  7. 第六章JVM虚拟机字节码执行引擎——类文件和类加载之前必看

    文章目录 虚拟机字节码执行引擎 运行时栈帧结构 局部变量表(Local Variables) 操作数栈 动态链接(Dynamic Linking) 方法返回地址 附加信息 方法调用 解析 分派 虚方法 ...

  8. 虚拟机字节码执行引擎

    1 概述 执行引擎是Java虚拟机核心的组成部分之一."虚拟机"是一个相对于"物理机"的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处 ...

  9. SWF反编译软件Action Script Viewer ASV2011/08发布(AS3反编译引擎最重大升级)

    ASV2011/08今天正式发布. 此版本是对AS3支持最好的版本,AS3反编译引擎作出了最重大的升级.ASV2011是AS3开发人员的必备工具,Flash开发优化利器. 有何更新? 修复若干AS2/ ...

最新文章

  1. 什么是三层架构?简单的介绍三层架构!
  2. if match header test - 428 Precondition required
  3. Committee和Virtual Project Team的关系
  4. Java开发人员的Erlang
  5. BootStrap笔记-文本颜色链接颜色背景颜色
  6. 【Spring】Spring 自定义scope
  7. 删除字符,用外部函数
  8. 华为手机怎样才算激活了_外观专利到底怎样才算侵权呢?
  9. 基于Snap软件将2A哨兵数据转换为ENVI格式
  10. jpeglib画质的代码分析
  11. 浪潮“151计划”:信息安全 没有“偏远地区”
  12. vue学习笔记-14-过滤器
  13. 大量监控视频如何存储?
  14. html中引入的图标库,动态引入阿里图标库
  15. OpenWRT软路由系统安装与优化
  16. 技术团队管理经验总结(持续更新)
  17. 在桌面上显示当前的IP地址和电脑名称
  18. 黄东旭当选 CCF 数据库专业委员会、开源发展委员会、大数据专家委员会执行委员
  19. 一款让人耳目一新的事件驱动型RTOS
  20. 网站如何报价 做一个普通企业网站多少钱?

热门文章

  1. 【MATLAB】基本绘图 ( 绘制多图 | 设置图形对话框在 Windows 界面的位置和大小 | 在一个图形上绘制多个小图形 )
  2. 【集合论】二元关系 ( 定义域 | 值域 | 域 | 逆运算 | 逆序合成运算 | 限制 | 像 | 单根 | 单值 | 合成运算的性质 )
  3. [Spring cloud 一步步实现广告系统] 13. 索引服务编码实现
  4. hihocoder 1320 压缩字符串(字符串+dp)
  5. 软件工程个人作业03
  6. ubuntu 14.04安装mysql server mysql client
  7. php的session实现
  8. Asp.net 后台添加CSS、JS、Meta标签
  9. 友元实例:友元类及友元函数
  10. [C++]Call virtual member function in constructor or destructor