Skip to content

MaìLang 介绍 ​

项目链接:GitHub 仓库 · 在线 Playground · Issue 反馈

什么是 MaìLang? ​

MaìLang(麦语)是一门为 IoT 和跨平台开发 设计的现代编程语言,使用 Rust 编写。它结合了多种编程语言的优点,提供了简洁、高效、安全的编程体验。

名称含义:「麦」取自小麦(Wheat),象征着语言的朴实与普适;「语」代表语言。Maì 中的 ì 带有声调,致敬中文的声调系统。

核心特性 ​

特性说明状态
面向对象编程类、继承、构造函数、super() / super.method()✅ 已实现
Traitimplements、默认方法、trait extends✅ 已实现
闭包upvalue 捕获,一等公民函数✅ 已实现
模式匹配字面量、范围、or、守卫、数组/元组解构、后缀 expr match { }✅ 已实现
错误处理Result/Option + ? 传播✅ 已实现
默认参数 / 解构fn f(a, b = 10);let (x, y) = …✅ 已实现
泛型函数 monomorphization(turbofish);泛型类字段擦除✅ 已实现
UTF-8 原生标识符支持任何 Unicode 文字✅ 已实现
字节码 VM栈式字节码 + slot 局部变量,或降级为三地址寄存器 IR✅ 已实现
默认后端(M5 起)寄存器 VM;--vm=stack / MAILANG_VM=stack 可切回栈式✅ 已实现
GCRc + collect_cycles() + mark-sweep 堆✅ 已实现
包注册表文件系统 / 静态 HTTP:publish/install/search/yank✅ 已实现
C FFI12 种语言绑定支持✅ 已实现
WebAssembly浏览器/边缘运行✅ 已实现
CLI + REPL命令行工具✅ 已实现

项目资源 ​

设计理念 ​

简洁易学 ​

MaìLang 采用混合式语法风格,借鉴了 Rust、Python、JavaScript 等语言的优点:

  • 类 Rust 的变量声明和类型系统
  • 类 Python 的简洁函数语法
  • 类 JavaScript 的对象操作

高性能 ​

默认使用 寄存器虚拟机(栈字节码在运行时降级为三地址 IR),栈式 VM 仍可用 --vm=stack 选择;比树遍历解释器(如 Rhai)更快:

  • 字节码可序列化缓存,加速启动
  • 局部变量走 slot 索引,减少哈希查找,适合 IoT 场景
  • 热路径特化与 CallDirect 调用

全平台支持 ​

通过三级特性门控(Feature Gating),MaìLang 可运行在从 64KB IoT 芯片到桌面服务器的所有平台:

级别内存需求典型设备特性
no_std64KBARM Cortex-M0仅栈上值类型
no_std + alloc128KBRISC-V, ESP32引用计数,无 GC
std256KB+树莓派, 服务器完整功能

UTF-8 原生支持 ​

MaìLang 强制使用 UTF-8 编码,标识符支持任何 Unicode 文字:

let 中文变量 = "支持中文"
let مرحبا = "支持阿拉伯文"
let 🔥 = "支持emoji"

安全可靠 ​

  • 强类型系统,类型推导可选
  • Result/Option 错误处理,无异常
  • 所有权系统(可选)

与其他语言对比 ​

特性MaìLangRhaiRuneRustPython
执行模型寄存器 VM(默认)+ 栈式 VM树遍历栈式 VM栈式 VM
OOP 支持✅ 完整❌ 有限❌ 有限✅ 完整
嵌入式支持✅ 64KB+✅❌❌
FFI✅ 12 语言✅ Rust❌✅ Python
类型系统混合动态动态动态
模式匹配✅❌✅❌
异步支持不支持(无 async 运行时)❌✅❌

适用场景 ​

IoT 与嵌入式 ​

  • 传感器数据处理
  • 设备配置脚本
  • 边缘计算逻辑

游戏开发 ​

  • 游戏逻辑脚本
  • AI 行为树
  • 配置文件解析

自动化 ​

  • 数据处理管道
  • 系统管理脚本
  • 测试自动化

教学 ​

  • 编程入门教学
  • 语言设计学习
  • 编译原理实践

快速开始 ​

bash
# 安装
cargo install mailang-cli

# REPL
mailang

# 运行文件
mailang run hello.mai

# 内联执行
mailang eval 'println("你好,MaìLang!")'

下一步 ​