lelang
leang是一门使用Rust编写,基于LLVM(inkwell llvm safe binding library)实现的编程语言,起初作为课程实验项目,现在为个人长期维护项目。
Target Features
- 支持8至64位的整形类型和32/64位浮点
- 基本的函数定义,调用,声明外部函数语法
- 链接外部函数
- 可解释或编译执行
- 变量定义
- 静态类型,编译期检查类型
- C like语法
TODO
-
✅ 支持块级变量定义 -
✅ 支持函数内的函数声明与函数定义嵌套 -
✅ 整合LLVM后端,可跨平台使用和生成可执行文件 -
✅ 优化性能,减少过程中不必要的重复判断与复制 -
✅ 支持分支嵌套,循环嵌套,减少过程中不必要的重复判断与复制 -
❌ 提供命令行交互式解释执行环境 -
✅ 支持内置的数组类型和结构类型 -
❌ 支持引用类型 -
❌ 支持匿名函数 -
❌ 引入GC
文档
移步👉🏻 lelang book
Tips:
目前没独立的运行时和后端工具链,所以需要依赖clang工具链,先编译目录下的print.c,然后才能调用示例中的print_xxx函数进行打印。
无需依赖clang的运行时正在开发中。