/fa

fa 语言编译器

Primary LanguageC#MIT LicenseMIT

fa

license csharp csharp

fa语言是一款不容易误解、简单易学的编程语言。目前处于测试阶段,可以编译简单的功能代码。

qq交流群:1018390466 欢迎一起讨论语法/实现/轮子

TODO

  • 自举
  • 判断浮点数时误差处理
  • 可空类型变量switch
  • 类型switch
  • 线程锁
  • 标准库

目标

  • 极简(编译器控制变量位于栈上、堆上、是否引用计数、是否原子化等)
  • 安全(船新错误处理方案,确保能编译的代码无异常。ps:系统异常除外)
  • 元编程(变量加上 "@" 前缀即代表编译期计算)
  • 高性能(llvm ir后端输出,原生指令运行,simd优化)
  • 所有权及释放(通通编译器处理)
  • 强制开发范式(比如强制实现DDD模型)

进度

  • 基于C++语言,Antlr前端,llvm binding API后端,实现初版fa语言编译器(废弃)
  • 基于C#语言,Antlr前端,C#后端,实现初版fa语言编译器
    • Hello World (√)
    • 可空类型(√)
    • 类,对象,表达式,循环(√)
    • 枚举类型(√)
    • switch(√)
  • 基于fa语言,fa前端,llvm ir后端,实现自举fa语言编译器
    • 元编程
    • 函数降级
    • 状态机
    • 继承

fa语言快排实现:

compile

stars