Fun 语言能力光谱

作者: 一了 <[email protected]>
日期: 2026-07-24

Fun 语言能力光谱:

汇编指令 (mov, call, push)
  ↓
C 函数 (int sum(int n, int (*test)()))
  ↓
FFI 回调 (cb.@toCallback)
  ↓
对象系统 (class Number, 操作符重载)
  ↓
函数式 (lambda, 管道)
  ↓
正则匹配 (split(/&/))
  ↓
数据转换 (map, fromPairs, toJson)

┌──────────────────┐
│ FUN 语言能力光谱(从极底层到极高)
└──────────────────┘

极底层
  ▼
  ╔═══════════════════════╗
  ║  CPU / 内存 / 机器码
  ║  - 字符串即内存(s.toNum(-1)、move/movs)
  ║  - 直接操作内存字节(s[0.5]、0.toChar().x(N))
  ╚═══════════════════════╝
  ▼
  ╔═══════════════════════╗
  ║  x86 汇编(lib-jit)
  ║  - 内联汇编(mov, call, push, ret)
  ║  - 宏汇编(@sum1ton)、占位符(<test>)
  ║  - FUN 函数转 C 回调(@toCallback)
  ║  - 执行汇编代码(jit.Run())
  ╚═══════════════════════╝
  ▼
  ╔═══════════════════════╗
  ║  C 语言 JIT(lib-jit)
  ║  - 内联 C 代码(#!C ii:i)
  ║  - 运行时编译并执行 C 函数
  ║  - FUN 函数 → C 函数指针 → C 回调
  ╚═══════════════════════╝
  ▼
  ╔═══════════════════════╗
  ║  Windows API / COM(lib-cwinapi + lib-winole)
  ║  - FFI 调用(CWin32API)
  ║  - C 结构体映射(lib-cstruct)
  ║  - COM 对象创建(.newobj)
  ║  - COM 方法调用、属性读写(命名参数)
  ║  - COM 事件订阅(@toEvent)
  ╚═══════════════════════╝
  ▼
  ╔═══════════════════════╗
  ║  动态编译(lib-dyns)
  ║  - 文件编译('file.fun'.compile())
  ║  - 字符串编译('?. 1+2;'.compile())
  ║  - 内联编译(compile(inline: true))
  ║  - 运行时加载和执行 FUN 代码
  ╚═══════════════════════╝
  ▼
  ╔═══════════════════════╗
  ║  对象系统 / 元编程
  ║  - class / fun(class 即 fun)
  ║  - 操作符重载(this['#'] = ...)
  ║  - 对象即 set($[1](3) 访问方法)
  ║  - 闭包、lambda(->)
  ╚═══════════════════════╝
  ▼
  ╔═══════════════════════╗
  ║  函数式 / 管道
  ║  - lambda(f = a -> a * 2)
  ║  - 管道操作符(1+2|f+3|g)
  ║  - 函数组合(g(f(1+2)+3))
  ║  - 高阶函数(map、filter、reduce)
  ╚═══════════════════════╝
  ▼
  ╔═══════════════════════╗
  ║  文本解析 / 正则 / BNF(lib-bnf + lib-regex)
  ║  - 正则匹配、替换、命名捕获组((?<name>...))
  ║  - BNF → PCRE 巨正则生成
  ║  - 区间树构建、栈式归约(actions)
  ║  - 上下文相关文法(长度前缀、缩进深度)
  ║  - FD 格式解析(20 行 BNF + 100 行 actions)
  ╚═══════════════════════╝
  ▼
  ╔═══════════════════════╗
  ║  应用层 / DSL(lib-set、lib-utils、lib-fd 等)
  ║  - 数据格式解析(FD、JSON、YAML)
  ║  - 查询解析(parseQuery: split | map | fromPairs)
  ║  - 模板引擎(lib-eval)
  ║  - 业务逻辑(直接写在 FUN 代码中)
  ╚═══════════════════════╝
  ▼
极高层的 DSL
  ▼

┌──────────────────────────────┐
│  核心理念:每一层都通过库(lib-*)实现,内核保持极简(327K)
│  统一数据模型:字符串即内存,set 即万物,统一数据结构
│  统一调用约定:FUN 函数 - C 回调 - COM 事件 - 汇编指令
└──────────────────────────────┘
  
公众号二维码