标准库
@bramas/simulant-stdlib 提供模型家庭、部件、传感器和
用于Simulant实验的任务。 它被安装在编译器和CLI上.
以 npm create @bramas/simulant@latest my-project。 。 。 .
用从 .sim 来源 :
import "std/models.sim"
图书馆包括空间(Graphs.Cycle, (中文(简体) ), Graphs.Line, (中文(简体) ), Graphs.Star, (中文(简体) ),
地点传感器、黑洞和坠机部件、灯光、卵石储存、访问
显示器,调度器schedulers.sim,任务,模范家庭
obliviousRobots 财务报告和审定财务报表 agentsWithMemory (单位:千美元)families.sim),预定义模型
blackHoleSearch (单位:千美元)predefined.sim),和示例算法. 图表、观察、,
语义核心中执行框架和跨事件步骤; 库
定义构成这些能力.
对于有限能见度发光的机器人在一行, 有三色调色板, 偏差( 每一个视点都有一个新的同位素) :
def luminous : Model :=
obliviousRobots Graphs.Line (Observe.radius (param phi)) Frames.isomorphisms [colors]
(components := [Storage.Lights 3, Faults.CrashAt])
Storage.Lights k 提供固定的正数颜色,编号为 0 到
k− 1 作为代理字段 light每道光从0点开始 可选 setLight
动作用途 none 以保留当前颜色和 some c 请求颜色c;
议会外的请求被忽略。 计算后和计算前的更新
移动,包括何时 Faults.CrashAt 防止移动.
按地点询问传感器: occupied l, (中文(简体) ), count l 财务报告和审定财务报表 colors l (单位:千美元)
在一个位置上以调色板顺序区分颜色; 空列表表示未使用)
既不暴露他们所说的多重,也不暴露过错的旗帜和大小
空间。 帮助者,例如: Line.window (一行视图的可见位置,
从一端到另一端)和 Ring.cw编号 :Ring.ccw (名邻居)建立列表
从地点; 项目选择自己的标记, 如站立项目
X/Y/Z 编码 colors。 。 。 .
明确构建模型能力. 黑洞搜索,并使用奇特性
blackHoleSearch (Graphs.Cycle N) .mayEmerge .unknown在一个动态的戒指上,
blackHoleSearch (Graphs.Dynamic (Graphs.Cycle N) 1) .mayEmerge .unknown完整视图
在环上聚集 obliviousRobots (Graphs.Cycle N) Observe.full Frames.isomorphisms [occupied]。实验选择任务和目标,例如 Gathering, (中文(简体) ),
与模型分开.
见 语言参考
为了一个完整的实验。 以下发展说明说明了图书馆如何运作
在源寄存器中维护; 测试助手不是此 npm 的一部分
软件包。 根据CeCILL-B获得许可证;见 LICENCE.txt。 。 。 .
用于项目模拟和精益生成的标准库的作者有: sim/A级 .sim 导入例如 import "std/models.sim" 装入这些源并将其编译为 IR.
| 地点 | 作用 |
|---|---|
sim/*.sim | 权威传感器、组件、任务、模范家庭和实例 |
test/helpers/*.ts | 仅用于测试的手写建构器对等器和辅助器 |
为什么存在类型脚本对等器
类型脚本文件 test/helpers/ 构建 IR 通过 packages/lang/src/builder.ts。它们独立于 .sim 前端未生成 .sim 文档。 只有测试代码导入它们;模拟器、 CLI 和 Lean 生成器编译 .sim 图书馆.
合规固定装置产生于 sim/conformance.sim编辑 符合性测试 比较定点IR生成的状态图、判决、证人和激活,然后比较状态图和边缘与独立 已建实验。这可以检查前端翻译以及翻译行为.
TypeScript 定义还提供了引擎的小模型和算法 圆形测试 财务报告和审定财务报表 语义接受测试,语言的 类型检查测试。 。 。 .
编辑库
网站的 库参考资料和模型构建器 从这些来源读取:给每个模型、组件、传感器和任务a /-- … -/ doc 注释(它的第一句是构建者的摘要),并给出一个新的算法输出,由任务读取一个类型 outputTypes (单位:千美元)apps/public-site/src/builder.ts) (中文(简体) ). apps/public-site/test/site.test.ts 检查两者,并编译每个模型家族,每个任务,组件和取景传感器.
改变 .sim 用于项目使用的库行为源 。 当定义包含一个符合性测试覆盖的构建器对应器时,更新两个版本并验证其协议. 跟着 IR合同 财务报告和审定财务报表 再生指令 用于语义变化.
注册新的可重复使用的组件 packages/lean-gen/src/library.ts 财务报告和审定财务报表
重新生成"利安"图书馆. 通用光线固定包括调色板变化、固定节点相撞和
色彩集观测; 独立
构建者版本必须产生相同的状态,边缘和见证. 这个
reusable-robots 测试包括一 二 三和五种颜色 外立面
更新、独立存储和限定旋转/折射等效.
测试直接导入帮助, 例如 ../../stdlib/test/helpers/index组合输出 .sim 来源通过 ./sim/*。项目算法导入库 std/*.sim; 精益库生成器也读取 sim/ 直接说.
图形,观测,帧,回合和表达内建由TypeScript和Lean语义核心执行. 这个 .sim 库构成这些能力;见 结构。 。 。 .