Skip to content

nickyc975/VScript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VScript

一种多范式脚本程序设计语言编程语言,采用类C的语法和基于栈的虚拟机。

  • 查看代码示例:code

  • 查看使用说明:docs

编译试用

本项目的编译需要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);

  • 字节码的序列化和反序列化;

  • 交互式语句执行;

About

一种多范式脚本程序设计语言

Resources

License

Stars

Watchers

Forks

Packages

No packages published