@cella-lang/programlogic

中文文档
0.1.202611090959发布于 2026/11/09Apache-2.0零依赖近 30 天下载 9161

Cella Lang 语言基因程序逻辑:语言给出一个步骤(下一个配置,一个最终值,或者一个与它的原因有关的错误)和资源的分离代数;软件包给出最弱的前提条件Wp(显式的步入索引), soun

中文使用文档

@cella-lang/ 程序日志

语言流派程序逻辑 单元格a 校验器,作为汇编 模块包。 语言给出一个步骤, 并分离资源代数; 软件包给出最弱者 先决条件、其健全性和结构规则.

除此以外没有依存关系 cella-lang标准模块.

插入语言

  • programlogic.Step C V S W:一个步骤的结果: advance c s (新的配置和状态), finish v s 联合国 最后价值)或 fault w (有其原因的过错;对C来说,有其节点和条款的未定义行为).
  • programlogic.Language C V S W数字 : { step : C -> S -> Step C V S W }。 。 。 .
  • programlogic.SeparationAlgebra S R资源 R 与 join a b c (单位:千美元)a 财务报告和审定财务报表 b 彼此脱节,共同缔造 c页:1 unit 与 joinUnit,联合的双重方向(associateRight:从(ab)c到(b)c; associateLeft),以及 interpret s r (国家) s 持有资源 r) (中文(简体) ).

小型步道机 @cella-lang/machine (C家族和Python的运行) 像这样插上,有一个 语句及其框架作为配置 :

import machine.statement
import programlogic
open machine

def Cfg (S : Type) (R : Type) : Type := Statement S R String * List (Frame S R String)

def exitStep {S : Type} {R : Type} (e : Exit S R String) : programlogic.Step (Cfg S R) (Exit S R String) S String := match e with
  | stopped w => programlogic.fault w
  | normal s => programlogic.finish (normal s) s
  | breakOut s => programlogic.finish (breakOut s) s
  | continueLoop s => programlogic.finish (continueLoop s) s
  | returned v s => programlogic.finish (returned v s) s

def confStep {S : Type} {R : Type} (x : Configuration S R String) : programlogic.Step (Cfg S R) (Exit S R String) S String := match x with
  | running c k s => programlogic.advance (c, k) s
  | halted e => exitStep e

def lang (S : Type) (R : Type) : programlogic.Language (Cfg S R) (Exit S R String) S String :=
  { step := fun c s => confStep (Configuration.stepRun (fst c) (snd c) s) }

整个国家都拥有资源 这证明 while (x != 0) x = x - 1; (单位:千美元)whileLoop 带有 update 停下来 x = 0每个人的安全 x运行 do { x = x - 1; } while (x != 0); 从 x = 0 对它的错.

你得到的东西

  • programlogic.Wp L A c Q r: 从资源 r运行 c 永远没有到一个错误,如果它完成 v, (中文(简体) ), Q v r' 持有剩余资源。 没错 WpWithin n 每笔 n,明确编号(Appel 和 McAllester 2001; Ahmed 2006):不需要加防的固定点,通过对数字的入门来证明循环规则 步骤。 框架是定义的一部分(如Chircuéraud's Separation Logic Foundations).
  • 经过一步,资源是 Owned A frame s X: 记录 resource,则 whole 资源 与相框,他们的证据 joined,该州 held 以及资源 satisfies .
  • programlogic.safeOfWp数字 : Wp L A c Q r -> A.interpret s r -> L.Safe c s时 L.Safe c s 用于: n, (中文(简体) ), L.run n c s 没有失败(部分正确性:不需要终止).
  • programlogic.wpConsequence (顺序), programlogic.wpFrame (框架:不相连的资源随附) 不变, WithFrame, (中文(简体) ), programlogic.wpWithinOfSucc (再走一步意味着减少一步).
  • 判决:证据确凿 Wp 被接受; 输入和若干步骤 run 达到 failed w 拒绝( 由 计算、携带 w页:1.

版本与发布记录

@cella-lang/programlogic 共发布 53 个版本,首次发布于 2026/10/30;过去 12 个月发布了 53 个版本。

版本发布日期距今
0.1.202611090959latest2026/11/09今天
0.1.2026110909552026/11/09今天
0.1.2026110822142026/11/09今天
0.1.2026110809592026/11/081 天前
0.1.2026110805242026/11/081 天前
0.1.2026110804162026/11/081 天前

关于 @cella-lang/programlogic 的常见问题

@cella-lang/programlogic 是什么?

Cella Lang 语言基因程序逻辑:语言给出一个步骤(下一个配置,一个最终值,或者一个与它的原因有关的错误)和资源的分离代数;软件包给出最弱的前提条件Wp(显式的步入索引), soun

如何安装 @cella-lang/programlogic?

在项目目录运行 npm install @cella-lang/programlogic,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:cella-lang(0.1.202611090954)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@cella-lang/programlogic 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/cella-lang__programlogic 是否存在。

@cella-lang/programlogic 可以商用吗?

@cella-lang/programlogic 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cella-lang/programlogic 的下载量有多少?

根据 npm 官方下载统计,@cella-lang/programlogic 在 2026/10/10 – 2026/11/08 这 30 天内被下载 9,161 次,日均约 305 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cella-lang/programlogic 还在维护吗?

最新版本 0.1.202611090959 发布于 2026/11/09(今天);至今共发布 53 个版本,其中过去 12 个月发布了 53 个;首次发布于 2026/10/30。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。