#language-interpreter #scripting-language #dynamic #interpreter #scripting

app XLang-Rust

An experimental cross-platform dynamic strong-typed programming language written in Rust

4 releases

new 0.1.3 Apr 28, 2025
0.1.2 Apr 24, 2025
0.1.1 Apr 22, 2025
0.1.0 Apr 22, 2025

#52 in Programming languages

Download history 246/week @ 2025-04-20

138 downloads per month

MIT license

1MB
21K SLoC

XLang-Rust

XLang-Rust 是 XLang 编程语言的 Rust 实现版本,旨在提供一个跨平台的、实验性的动态强类型编程环境。它通过虚拟机执行脚本,并提供了一套独特的语言特性。

特性

  • 动态强类型: 变量类型在运行时确定,但类型错误会引发异常。
  • 基于表达式: 语句是表达式序列,最后一个表达式的值是语句的结果,语法风格类似 Rust。
  • Lambda 核心: 完全使用 Lambda 函数进行函数定义和调用,Lambda 会缓存其最后一次调用的参数和返回值。
  • 元组 (Tuple): 主要的有序集合类型,可变、支持索引、键值对和命名参数。
  • 单线程异步任务: 通过 async/await 实现协作式并发,用于管理在单个线程上交错执行的任务(注意:其行为不同于传统的可暂停/恢复的协程)。
  • 非局部控制流: 使用 boundary/raise 实现比 return 更强大的非局部跳转。
  • 对象绑定: 通过 bind 关键字模拟面向对象的行为。
  • 别名系统: 使用 :: 为对象附加静态别名。
  • 丰富的内建类型: 包括整数、浮点数、布尔、字符串、字节序列、区间、键值对、命名参数等。
  • 工具链: 提供 REPL (repl)、编译器 (compile.xir.xbc)、运行器 (run)、IR 查看器 (display-ir)、字节码翻译器 (translate) 和 LSP 服务器 (lsp)。

状态

XLang-Rust 目前处于 实验阶段。其设计包含一些独特的、可能与其他主流语言不同的概念和行为。欢迎尝试和反馈。

快速开始

假设编译器可执行文件名为 xlang-rust

  1. 运行脚本文件:

    xlang-rust run your_script.x
    

    也可以运行中间代码 (.xir) 或字节码 (.xbc) 文件。

  2. 编译为字节码:

    xlang-rust compile your_script.x -b -o your_script.xbc
    

    ( -b 表示编译为字节码, -o 指定输出文件)

  3. 启动 REPL:

    xlang-rust repl
    

文档

详细的语言规范和特性介绍请参考:语言文档

Dependencies

~15–27MB
~395K SLoC