# U语言 **Repository Path**: qiulaidongfeng/u-language ## Basic Information - **Project Name**: U语言 - **Description**: U语言是开发者对编译技术的实践,更多的是开发者对编译技术的实验。 - **Primary Language**: Go - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-03-30 - **Last Updated**: 2023-03-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: 编程语言 ## README # U语言 项目已经迁移到 https://gitee.com/u-language/u-language #### 介绍 U语言是开发者对编译技术的实践,更多的是开发者对编译技术的实验。 - - - #### 重大事件记录 2023/1/23 无限期暂停开发mode=fasm模式:自2022年8月实现一个实验性的将ast转换为fasm汇编代码功能以来,fasm/amd64及其配套的包,消耗了最多的时间,写出的代码可维护性最差,可读性最差,实现的功能最差,严重拖慢了开发进度,现在决定无限期暂停开发mode=fasm模式。 - - - #### 源码编译依赖 > go 版本 1.18+ - - - #### 安装教程 1. 下载源代码 2. cd pkg 3. go build main.go - - - #### 编译器工作流程 ```mermaid graph TD err(报错退出 errcode) lex(词法分析器 lex) ast(抽象语法树 ast) types(类型检查器 types) cast(C代码转换器 cast) amd64(汇编转换器 fasm/amd64) ir(中间表示 ir) fd(结果输出) main(入口) -->parser(解析器 parser) parser --调用--> lex --发现代码错误-->err lex --结果转换ast--> ast --发现代码错误-->err ast --类型检查--> types --发现代码错误-->err types -.mode==c.-> cast types -.mode==fasm.-> amd64 cast --> fd amd64 --调用了--> ir amd64 --> fd ``` - - - #### 参与贡献 1. Fork 本仓库 2. 新建 Fork_xxx 分支 3. 提交代码 4. 新建 Pull Request