python中的pluscal ast和builder

pluscal的Python项目详细描述


pluscal

PlusCalast和python中的builder

这是什么?

PlusCal是编译成TLA+规范的算法语言。此库定义 python类型构成PlusCalp语法的抽象语法树(ast),以及 用于流畅构建算法的builderapi。实现严重依赖于python dataclasses和类型提示;可以使用类型检查器(例如mypy)来验证语法。

预计这个库将被人类和程序用于语法构造。 更正规格并通过TLC模型检查器进行检查。

用法

从PIP安装:

pip install pluscal

创建算法:

>>>frompluscal.apiimportAlgorithm,Print,Variable>>>algorithm=Algorithm("hello_world",).declare(Variable("s").in_set("Hello","World!"),).do(Print("s",label="A"),)>>>print(algorithm)--algorithmhello_worldvariables \in{"Hello","World!"};beginA:prints;endalgorithm

限制

此库不完整。一些已知的限制包括:

  1. ExprFieldLabelNameVariable类型使用的低级TLA+语法。 既不建模也不完全验证。此时,这些类型基本上是字符串。

  2. 验证逻辑并不表示PlusCal的全部细微差别,特别是当它与 标签放置。

    请参阅pluscal手册的3.7部分。

  3. 一些假货行动尚未实施。

    请参阅pluscal手册的4.6部分。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Maven无法识别安装在Ubuntu外壳上的$java_HOME jdk   java如何防止可运行程序在其中一个抛出异常时执行   java Listview在按下项时不触发   如何在WindowsPhone8中使用JavaRESTWebService?   java在spring引导下使用多个dispatcher servlet/web上下文   java为什么在删除容器的绝对大小时不绘制GEF子项?   java在hibernate实体中保留DB约束是好的   JavaSpring选择最高优先级bean   ArrayList<Class>java字符串[]   有向加权边图的Java邻接表实现   字母数字字符串的java Tesseract配置:混合2、Z、6和G   如果输入为空,则带有EditText的java警报对话框将关闭   jsp上的java Struts 2动作响应   java获取IndexOutOfBundException Android   scala AWSJAVASDK:解压缩大小必须小于262144000字节