Mog:新型开源编程语言
Mog 是新的开源编程语言项目。语言爱好者可关注,但广泛应用前景待验证。
Mog 是新的开源编程语言项目。语言爱好者可关注,但广泛应用前景待验证。
为 AI Agent 设计的编程语言
异步 HTTP 与重试
能力系统
Mog 语言指南
Mog 程序如何编译和运行
更完整的示例
使用 := 创建绑定
使用 = 重新赋值
显式宽度整数
无隐式类型转换
扁平运算符(无优先级)
类型感知的累积
通过类型转换构建结果
For-To(包含范围)
For-In 范围(不包括结束)
Break 和 Continue 的组合
嵌套循环中的 Break 和 Continue
Fibonacci(迭代版本)
GCD(欧几里得算法)
使用 Match 的命令分发器
基础函数声明
参数和返回类型
命名参数和默认值
值捕获语义
函数类型的类型别名
将闭包传递给函数
从函数返回闭包
带数组方法的闭包
.starts_with(prefix) 和 .ends_with(suffix)
.upper() 和 .lower()
特定类型的变体
循环中的字符串连接
带验证的解析
构造实例
将结构体传递给函数
没有方法——使用独立函数
构造函数
带有数组和 Map 的结构体
RGB 颜色操作
.push() 和 .pop()
链接数组方法
.has()——检查键是否存在
.len()、.keys()、.values()
.delete()——移除条目
实际示例:单词计数
实际示例:数据分组
SoA(数组结构)
实际示例:粒子模拟
实际示例:列操作
综合应用
数据处理流水线
Filter-Map-Sort 流水线
? 传播运算符
Result 和 Optional 的 Match 模式
在 Result 和 Optional 之间转换
为 Optional 提供默认值
错误消息格式化
race()——等待第一个完成
异步错误处理
Public 和 Private——pub 关键字
循环导入检测
实际示例:将程序拆分为包
声明能力:requires 和 optional
内置能力
process——进程和环境
读取配置
使用 fs 的简单日志记录器
常见能力约定
自定义主机能力
使用自定义能力
各部分如何配合
能力验证示例
嵌入生命周期
注册能力
验证脚本需求
实现自定义能力
步骤 1:编写 .mogdecl 文件
步骤 2:实现宿主函数
步骤 3:构建注册表并注册
步骤 4:从 Mog 使用
MogValue:宿主和脚本之间的数据交换
资源限制和超时
手动超时设置
宿主启动的中断
栈溢出保护
完整超时示例
实际示例:在游戏服务器中嵌入
宿主实现(C)
玩家脚本(Mog)
插件——动态加载 Mog 代码
加载和调用插件
插件 C API 参考
能力沙箱
插件协议(高级)
Mog 与其他可嵌入语言的比较
计算平坦索引
张量和宿主能力
将张量传递给宿主函数
创建数据批
读取模型输出元素
准备输入张量
端到端推理脚本
数组结构(SoA)性能
编译后端:rqbe
Mog 不具备的功能
Fibonacci 序列
单词频率计数器
带错误处理的简单计算器
数据验证链
排序和过滤流水线
Agent 工具使用脚本
递归树遍历