1 Star 1 Fork 0

falang / fa

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

fa

license csharp csharp

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

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

目标

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

TODO

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

进度

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

特性

  • 可选类型
    • 任意类型后接问号表示,比如 int?
    • 可以储存此类型的值(void? 除外),也可以储存一条错误信息
    • 可选类型可与原始类型计算,结果为可选类型
    • 通过它代替异常实现机制
    • 当函数返回类型为可选类型时,代表计算出错自动返回调用者
       int? func1 () {
       	int? a = 5 / 0; // 此时a为除0异常
       	int b = a + 3; // 异常结果b无法存放,异常信息在此处return,不执行后面代码
       	return b;
       }
       int func2 () {
       	int? a = 5 / 0; // 此时a为除0异常
       	int b = a + 3; // 异常结果b无法存放,函数返回类型也无法接收,编译报错
       	return b;
       }
  • 全局异步任务(暂未实现)
    • 方法默认纯异步实现,方法体内无异步代码可转同步方式实现
    • 无future、async、await等关键字或概念,用户只需要撸代码
    • 通过独立线程实现所有异步锁的占用及控制

fa语言快排实现:

compile

MIT License Copyright (c) 2021 fawdlstty Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

fa 语言编译器 展开 收起
C# 等 4 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C#
1
https://gitee.com/falang/fa.git
git@gitee.com:falang/fa.git
falang
fa
fa
main

搜索帮助