logo燕几图
开发平台
编程语言
数据服务
云端协作
开源社区

燕几图编程语言

燕几图是一门新型编程语言,拥有内生查询技术和强大的效应系统,在语法和类型系统层面,为开发者提供了一种衔接自然安全明确直观易懂的数据后端开发新方式。

面向数据

  • 遵循面向数据的设计范式,仅用语言原生语法如推导式、迭代器等就能读写数据,无需 SQL 或 ORM
  • 完全兼容 PostgreSQL 原生数据类型,无需额外转换或内存拷贝,变量从接口到数据库畅通无阻
  • 提供完善的变更迁移工具链,你只需负责创建和修改概念"结构体",燕几图帮你维护数据库更新

安全高效

  • 静态强类型系统,编译时就能捕获绝大多数错误,确保代码的正确性,降低开发心智负担
  • 函数式风格的不可变数据结构为主,避免副作用和状态变化等不安全行为,提升并发执行效率
  • 生成高效的 WebAssembly 字节码,结合 AoT 编译,媲美 C/C++ 的执行速度,沙箱环境确保安全

体验优先

  • 声明式为主的语法风格,贴近自然语言,代码可读性强,易于书写和维护
  • 正交性强,少量核心概念和语法规则可以组合出丰富的表达能力,符合人类认知习惯,免遭意外惊吓
  • 支持结构化/图形化编程,具有极其平缓的学习曲线,满足不同开发习惯的同时,提升开发效率

类型系统

  • 前缀多态——在保证安全性的同时,允许对函数、效应和数据结构进行高度抽象与复用
  • 在类型中精确标注副作用,既能帮助编译器优化,也能让调用者一眼看清"风险"
  • 基数和多重集类型(见图-关系模型)注解并保护内生查询语法,更直观、安全

效应系统

  • 副作用(I/O、状态、异常等)不再散落在代码中,而是被抽象为可组合的效应,让核心逻辑保持纯净
  • 异常、协程、异步、事务控制等都能用统一机制表达,无需引入多种抽象,减小心智负担
  • 调用者可以自由决定或替换效应的处理方式(比如切换 log 或 telemetry),无需修改业务逻辑

图-关系模型

  • 「表和外键」升级为「概念和链接」,更贴近编程习惯,由编译器负责编译成对应的 DDL SQL
  • 数据库的各种值统一封装成「多重集」,提升行为一致性,不再有 NULL 的诡异烦恼
  • 「基数」为多重集类型系统添加可预测、可计算的数量限制(可空/非空 x 单个/多个)

代码示例

建设中

形式化定义

起草人:CAIMEO | 2025-08-29

术语表

建设中

参考文献