Petri网绘图和代码生成

2023-11-24

是否有任何软件可以绘制 Petri 网并从那里生成任何源代码?源代码可以采用任何已知的编程语言......

稍微不太理想的选择是以某种开放格式(例如 XML 或任何其他数据语言)在基于文本的文件中输出仅包含 Petri 网图描述的文件。然后我可以自己编写代码生成器,但至少我想避免 gui/图形开发部分;))

Thanks


我正在开发y_petri在红宝石中。目前,YPetri 可以处理可视化(YPetri::Net班级有#visualize方法使用Graphviz画网),但不是您想要的 GUI 编辑。仅供参考,首先,Petri 网中的 GUI 编辑并不像看起来那么重要。

使用的数据语言是 Ruby 本身(更准确地说,是用 Ruby 编写的内部 DSL)。

Petri 网的一个主要问题是,它们的种类实在太多了。YPetri试图成为一个通用的 Petri 网框架,具有 1 种位置(任意标记类型)和 4 种基本转换类型(定时/永恒 x 化学计量/非化学计量)。此外,还有第五种转换,即赋值转换,它用其函数的返回值替换目标位置的标记。我相信这可以用来描述任何动态系统,同时尽可能地简洁。

Petri网弧被理解为转移和位置之间的关系(它们属于y_petri。我发现有一种方法可以表达 Petri 网节点(位置/转换)之间的关系,而不仅仅是表达弧线。以此目的,我基本上使用 Ted Nelson 的 ZZ 结构(ZigZag)作为关系数据库的替代品.

至于模拟(Petri网执行),一般的混合Petri网没有比隐式欧拉方法(我称之为伪欧拉)更快的模拟方法。这是因为 Petri 网可用于实现图灵机,而图灵机不可能实现一般加速。

如果你愿意用 Ruby 进行操作,你可以用以下语言描述 Petri 网:y_petri or y_nelsonDSL 代码。我不提供到 XML 的转换,因为我不认为它优于源 DSL。可以编写这样的导出例程,但我鼓励您改用 DSL。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Petri网绘图和代码生成 的相关文章

  • 使用 PowerShell 创建 Outlook 电子邮件草稿

    我正在创建一个 PowerShell 脚本来自动化工作流程 此过程需要填写电子邮件并发送给其他人 电子邮件将始终大致遵循相同类型的模板 但每次可能都不会相同 因此我想在 Outlook 中创建电子邮件草稿并打开电子邮件窗口 以便可以在发送之
  • Excel进程的最大数量?

    如果我这样做 例如 for int i 0 i lt 22 i var app new Excel Application 然后创建22个excel进程 但是 如果我这样做 for int i 0 i lt 25 i var app new
  • F# 中的非类型化/类型化代码引用与宏卫生之间是否存在关系?

    我想知道 F 中的非类型 类型代码引用与宏系统的卫生之间是否存在关系 他们是否用各自的语言解决相同的问题 或者它们是不同的关注点 元编程方面是唯一的相似之处 即使在这方面 也存在很大的差异 您可以将宏的转换器视为从语法到语法的函数 就像您可
  • 自动在所有方法上设置断点

    有没有一种方法可以自动在 eclipse idea 中对给定类中的所有方法设置断点 在大纲视图 Eclipse 中 您可以选择所有方法 右键单击并选择 切换方法断点
  • 如何在java中使用正则表达式非捕获组进行字符串替换

    我有一个改变的要求AssemblyVersion在新的构建上 我用java代码来做string replaceAll regexPattern updatedString 此代码适用于正常的正则表达式模式 但我无法在此模式中使用非捕获组 我
  • 从 CodeAttribute 内的参数获取 CodeClass?

    我正在研究一些 T4 代码生成 为此我需要在 BarAttribute 构造函数内传递的类型的 CodeClass class Baz class Bar Attribute public Bar Type type Bar typeof
  • COM 互操作、隔离和排除重复引用

    我们在我们编写的 C dll 程序集 A 中使用 Microsoft 提供的 COM DLL dsofile dll 为了避免必须注册 COM dll 我已将对 dsofile dll 的引用的isolated 属性切换为 true 这意味
  • Ruby 是否有与未定义实例变量等效的 method_missing ?

    当我调用一个不存在的方法时 method missing会告诉我方法的名称 当我尝试访问尚未设置的变量时 该值只是nil 我试图动态拦截对 nil 实例变量的访问 并根据正在访问的变量的名称返回一个值 最接近的等价物是 PHP 的 get
  • 在 AWS 资源的往返工程中使用 CloudFormer

    我想以自动方式使用 CloudFormer 来生成 VPC 中现有资源的模板 我可以使用 Ruby SDK CloudFormation Client create stack 创建 cloudformer 实例 并使用 CloudForm
  • 元编程:以文本形式输出方法体

    我在模块中动态定义一个方法 并且我想检查一旦该方法绑定到一个类实例 该方法的主体就是我所期望的 有没有办法输出 作为文本 方法体 Module controller mixins rb module ControllerMixin inst
  • 在运行时执行 C# 或 VB.NET 代码

    最近在 Codility com 上花了一些时间 我突然想到了这个问题 它们如何执行您创建的代码 特别是与 C 和 VB NET 有关的代码 我基本上想知道的是 如何在表单上的文本框中输入一些代码 然后运行该代码 如果没有第三方工具 这可能
  • 每个环境使用不同的 URL 运行相同的 Testcafe 测试

    我正在研究 TestCafe 概念验证 我在一个测试环境中进行了一些测试 我需要一种方法来在最多 3 个具有不同 URL 的不同测试环境中运行相同的测试 对于这种情况有最佳实践吗 解决方案是在 testcafe 命令行上添加自定义选项 例如
  • 触发其他配置并使用 Jenkins 发送当前构建状态

    在某个 Jenkins 配置中 我希望触发另一个配置 post建立行动 我想将当前构建状态作为参数之一传递 IE 表示状态 SUCCESS FAIL UNSTABLE 的字符串 int 我有两个选项来创建构建后触发器 Using the j
  • 是否有可能构建一个可以通过浏览器运行的网络自动化?

    我创建了一个 Java 程序 它使用镀铬驱动程序 https chromedriver chromium org Selenium https www seleniumhq org and Java Excel API http jexce
  • 是否可以在纯 Rust 宏中编写像“print!”这样复杂的东西?

    我开始学习 Rust 宏 但文档有些有限 这很好 我想它们是一个专家功能 虽然我可以进行基本的代码生成 特征的实现等 但一些内置宏似乎远远超出了这些 例如各种打印宏 它们检查字符串文字并将其用于代码扩展 我在看的来源print https
  • powershell有method_missing()吗?

    我一直在研究 powershell 的动态功能 我想知道一些事情 powershell 中是否有类似于 Ruby 的 method missing 的东西 您可以在其中设置 捕获所有方法 来动态处理对对象上不存在的方法的调用 不 不是真的
  • 为什么 Visual Studio 使用 xchg ax,ax

    我正在查看程序的反汇编 因为它崩溃了 并注意到很多 xchg ax ax 我用谷歌搜索了一下 发现它本质上是一个 nop 但是为什么 Visual Studio 会执行 xchg 而不是 noop 该应用程序是一个C NET3 5 64位应
  • 如何编辑 Mailchimp 自动化电子邮件的纯文本版本?

    我已经使用 Mailchimp 运行自动化工作流程一段时间了 其中有一个简单的欢迎新闻通讯 自动化电子邮件编辑器仅允许我编辑电子邮件的 HTML 版本 并自动生成基于文本的版本 但是 它仅在首次创建电子邮件时生成纯文本版本 从那时起 我已经
  • InvalidArgumentException:消息:无效参数:“using”必须是字符串

    我对 python 很陌生 试图创建可重用的代码 当我尝试通过传递 Login 类下使用的所有参数来调用 test main py 中的 Login 类和函数 login user 时 我收到错误 InvalidArgumentExcept
  • 生成 C / C++ 代码时表达式的结合性和优先级?

    我编写了一个生成 AST 的基本编译器 正确考虑了表达式中运算符的优先级 但是 在执行代码生成以生成 C 代码时 我不确定如何处理括号的使用 对于这个表达式 A B c AST如下 A B C 应该正确生成包含括号的前一个表达式 但是如果第

随机推荐

  • android 两个应用程序之间的通信

    我需要一些帮助来开始开发两个相互通信的 Android 应用程序 在一部手机上 应用程序 A 向应用程序 B 发送字符串 应用程序 B 接收字符串 例如 startClassOne 应用程序 B 使用方法启动 classOne 并获取结果
  • 如何制作不区分大小写的ConcurrentMap?

    我该如何实施 class CaseInsensitiveConcurrentMap
  • 获取 2 个字符串之间的字符串

    如何获取位于两个其他声明的字符串之间的字符串 例如 String 1 STRING1 String 2 STRING2 Source 832h0ufhu0sdf4 STRING1 I need this text here STRING2
  • 你能以 O(n) 摊余复杂度对 n 个整数进行排序吗?

    理论上是否可以以 O n 的摊余复杂度对 n 个整数的数组进行排序 尝试创建 O n 复杂度的最坏情况怎么样 现在的大多数算法都是建立在平均 O nlogn 最坏情况 O n 2 之上 有些虽然使用更多内存 但最糟糕的是 O nlogn 你
  • 无法加载捆绑包中的 NIB

    我正在尝试将 Janrain Engage 作为自定义模块与 Appcelerator Titanium 集成 我创建了一个示例模块 并将 JREngage 文件夹拖到示例模块 xcodeproj 如 Jainrain 文档中所示 现在我给
  • Python 和 R 之间的线性回归系数之间的差异

    我正在尝试在 Python 中运行我已经在 R 中完成的线性回归 以便找到系数为 0 的变量 我遇到的问题是 R 中的线性回归返回低方差列的 NA 而 scikit learn 回归返回系数 在 R 代码中 我通过将带有 NA 的变量保存为
  • 从 python selenium 测试中制作 exe 文件

    我尝试在 exe 文件中构建 python selenium 测试 并在许多机器上运行它 以保持测试独立于环境 但结果 exe 文件找不到 selenium webdriver 如何在 exe 文件中包含所有硒依赖项 或者也许还有其他方法吗
  • 尝试将 R.exe 添加到 PATH

    所以我尝试将 R 添加到 Windows 10 上的路径 这应该很简单 System Properties gt Environment variables gt Edit gt new copy and paste C Program F
  • 为什么单击文本框会导致自动滚动面板滚动回顶部?

    在 C 应用程序中完成注册表单时 我注意到 如果我启用自动滚动 然后在滚动条下方有一个文本框 然后单击它 它会一直跳回到顶部 有没有办法用一些代码来解决这个问题 或者这是一个专有名词 对我来说用语言解释有点困难 所以这里是一个短视频这表明了
  • “shutdown -y”到底是做什么的? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我在之后尝试了一些随机参数shutdown当我偶然发现 PowerShell 2 0 中的命令时shutdown y 所有这一切seems要做的就是注销用户 如果使用任何其他随机字母
  • python 中的泛型/模板?

    python 如何处理泛型 模板类型场景 假设我想创建一个外部文件 BinaryTree py 并让它处理二叉树 但适用于任何数据类型 所以我可以将自定义对象的类型传递给它 并拥有该对象的二叉树 这是如何在 python 中完成的 其他答案
  • 更改图钉颜色 MKMapView

    我以这种方式向地图添加注释 MyAnnotation annotationPoint2 MyAnnotation alloc init annotationPoint2 coordinate anyLocation annotationPo
  • 在运行时创建继承抽象类并实现接口的类型

    我们的架构广泛使用存储库模式 我们为大多数存储库提供了一个抽象基类 它实现了一些常见的功能 例如获取 加载 列表等 这个基类有一个对应的接口IRepository 它定义了抽象类的公共方法 大多数实体都有对应的存储库接口 例如Foo 实体有
  • .htaccess 将根目录重定向到index.php

    我需要重定向自http example com to http example com index php 用这个 DirectoryIndex index php
  • 使用 GCC 查找无法访问的函数(“死代码”)

    我正在寻找一种在 非常 大型 C 项目中查找静态无法访问的函数的方法 我曾尝试使用 doxygen 和此处建议的其他静态分析工具 但似乎该项目太复杂 他们无法处理 最后我决定使用 GCC 工具 g gprof gcov 等 是最安全的选择
  • Flutter 中的元素是什么?

    我很难理解 Flutter 中的元素是什么 来自文档 树中特定位置的小部件的实例化 我想现在我必须问 那棵树是什么 起初 我以为树指的是小部件的状态 但 StatelessWidget 也有 createElement 所以情况似乎并非如此
  • 使用较小的默认对齐方式重载 new 运算符

    C 17 引入过度对齐数据的动态内存分配 除了现有的std max align t 基本对齐 它补充说 STDCPP DEFAULT NEW ALIGNMENT 运算符 new 保证的最小对齐 通过 MSVC2017 64 位编译 这些常量
  • 如何使用 Apache POI 读取具有日期的 Excel 单元格?

    我正在使用 Apache POI 3 6 我想读取一个具有如下日期的 Excel 文件8 23 1991 switch cell getCellType case HSSFCell CELL TYPE NUMERIC value NUMER
  • 将 Quartz.Net 与 UI 相结合

    我一直在从事 MVC3 项目 我刚刚在我的应用程序中使用 Quartz Net 创建了示例电子邮件发送作业 这次 我需要在我的MVC3项目中构建一个作业调度系统 该场景完全基于 UI 这意味着 系统用户必须通过 UI 输入调度频率 例如定义
  • Petri网绘图和代码生成

    是否有任何软件可以绘制 Petri 网并从那里生成任何源代码 源代码可以采用任何已知的编程语言 稍微不太理想的选择是以某种开放格式 例如 XML 或任何其他数据语言 在基于文本的文件中输出仅包含 Petri 网图描述的文件 然后我可以自己编