一种多范式脚本程序设计语言编程语言,采用类C的语法和基于栈的虚拟机。
本项目的编译需要g++
,make
等工具。在Linux下可以直接使用包管理器安装,在windows下可以参考这篇文章:windows 下使用make命令,编译代码
- 编译项目:
# 编译输出结果在项目目录下的`build/`文件夹下,其中的`vs`即为可执行文件;
make
- 编译并测试:
# 编译运行,执行test/hello.vs并输出字节码
make test
- 单独运行
执行make
后在项目目录下的build/
文件夹中即可找到可执行文件vs
,其使用方法如下:
vs [-s] <源文件>
其中-s
参数表示输出文件的字节码表示。
-
所有的变量定义,函数声明,流程控制语句;
-
变量作用域控制,内层代码块可以引用外层代码块的变量;
-
函数式编程特性,包括函数动态生成,函数用于赋值,函数作为参数,函数作为返回值等;
-
部分面向对象编程特性,包括继承和多态(使用内置的
object
类型实现); -
引用计数内存管理,可以避免大部分的内存泄露问题,但是没有循环引用检查;
-
基本的内置函数/对象库,包括:
-
文本IO相关函数及标准输入输出文件对象:
input
,print
,open
,stdin
,stdout
; -
内置类型构造/转换函数:
bool
,char
,int
,float
,str
,tuple
,list
,set
,dict
,object
; -
对象属性操作函数:
hasattr
,getattr
,setattr
,removeattr
;
-
-
更加健壮的错误处理,目前的错误处理还很残废,遇到错误基本只会退出;
-
对其他源文件的符号引用(import);
-
字节码的序列化和反序列化;
-
交互式语句执行;