本项目将不会继续进行维护。本项目中的代码将会逐步迁移至@LLTC Team中的子项目中进行下一步的开发。
LHL项目由两个子项目构成。它们分别是LML和LVM。
LML是一个编译器开发工具。它提供了类似**“通用编译器”**的工具,以便使用者可以快速地构建自己的编程语言的编译器。
LML提供主要的词法分析和中间代码生成工具,同时也预留了语法分析的接口以便于快速扩展。
LVM是一个字节码虚拟机,为LHL提供语言运行时环境,并且提供灵活的标准库扩展。
LHL使用CMake为构建系统以实现跨平台编译。您可以在使用任何CMake支持的平台上使用您喜爱的IDE\Editor进行开发。
- CMake(版本3.1以上)
- 支持C++14标准的C++编译器
- Windows 推荐使用Visual Studio 2017自带的MSVC编译器
- GCC 5 以上
- CLang 3.4 以上
- 以上编译器都推荐使用最新版本
- 使用Visual Studio 2017的“文件->打开->文件夹”打开项目根目录即可,CMake支持将会自动加载
包括使用MinGW\Cygwin的Windows,Linux,MacOS等其他环境
- 在项目根目录新建
build
文件夹 - 在
build
目录下执行命令cmake ..
。您可以根据个人要求为CMake指定构建目标 - 如果您的环境已经配置好,那么
build
目录将会存放CMake生成的构建文件 - 在
build
目录下执行您系统上对应的make
命令,或是使用您的IDE自动完成配置
以下目标随时可能变动,请以最新文档为准。
- 跨平台
- 使用CMake为构建系统
- 跨平台标准库支持
- 代码库函数定义接口
- 本地代码库动态加载
- 跨平台编译
- 基础目标
- 词法分析器
- LVM字节码生成器
- 语法分析器接口
- 基础语言设施
- 函数定义工具
- 分支跳转与循环函数
- 字面量解析等
- 最小通用标准库
- 基本算术类型与函数
- 字符串相关
- 基础数据结构
- 控制台IO等
- 底层语言(C\C++)互通
- 通用标准库
- 日期时间库
- 数学库
- 文件IO
- 网络
- 宏展开
- 基础垃圾收集器
- 引用计数算法
- 高级标准库
- 并发
- 线程操控
- 原子操作
- 并发实用工具
- 协程支持
- 跨平台GUI库
- Qt封装
- 3D图形库
- OpenGL封装
- Vulkan封装
- 并发
- 高级垃圾回收
- 并发垃圾回收
- CAS垃圾回收
- JVM G1垃圾回收实验