函数式编程范式是否有可视化建模语言或风格? [英] Is there a visual modeling language or style for the functional programming paradigm?

查看:23
本文介绍了函数式编程范式是否有可视化建模语言或风格?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

UML 是一种针对软件建模的标准,该软件将以面向对象的语言编写,并与 Java 齐头并进.尽管如此,它是否可能用于对打算以函数式编程范式编写的软件进行建模?考虑到嵌入的视觉元素,哪些图表会变得有用?

UML is a standard aimed at the modeling of software which will be written in OO languages, and goes hand in hand with Java. Still, could it possibly be used to model software meant to be written in the functional programming paradigm? Which diagrams would be rendered useful given the embedded visual elements?

是否有一种针对函数式编程的建模语言,更具体地说是 Haskell?您会推荐哪些用于组合图表的工具?

Is there a modeling language aimed at functional programming, more specifically Haskell? What tools for putting together diagrams would you recommend?

我正在寻找的是代码中发生的事情的最直观、最简洁的表示.易于遵循的图表,可视化模型不一定针对其他程序员.我很快就会在 Haskell 中开发一个游戏,但是因为这个项目是我的毕业总结工作,所以我需要对提议的解决方案进行某种形式化.我想知道是否有与 UML+Java 标准等效的标准,但适用于 Haskell.我是否应该只使用故事板、书面描述、非形式化图表(一些类似于流程图的浅层图像)、非形式化用例描述?

What I'm looking for is the most visual, lightest representation of what goes on in the code. Easy to follow diagrams, visual models not necessarily aimed at other programmers. I'll be developing a game in Haskell very soon but because this project is for my graduation conclusion work I need to introduce some sort of formalization of the proposed solution. I was wondering if there is an equivalent to the UML+Java standard, but for Haskell. Should I just stick to storyboards, written descriptions, non-formalized diagrams (some shallow flow-chart-like images), non-formalized use case descriptions?

请注意,提问者最初想要一个视觉比喻,现在我们已经三年了,我们正在寻找更多/更好的工具.原始答案中没有一个真正涉及视觉隐喻设计工具"的概念.所以......这就是新的赏金所要提供的.

Note that the asker originally wanted a visual metphor, and now that we've had three years, we're looking for more/better tools. None of the original answers really addressed the concept of "visual metaphor design tool" so ... that's what the new bounty is looking to provide for.

推荐答案

我们使用定理证明器进行形式化建模(带验证),例如 Isabelle 或 Coq.有时,我们会使用领域特定语言(例如 Cryptol)来进行高级设计,然后再派生出低级" Haskell 实现.

We use theorem provers to do formal modelling (with verification), such as Isabelle or Coq. Sometimes we use domain specific languages (e.g. Cryptol) to do the high level design, before deriving the "low level" Haskell implementation.

通常我们只是使用 Haskell 作为建模语言,并通过重写导出实际实现.

Often we just use Haskell as the modelling language, and derive the actual implementation via rewriting.

QuickCheck 属性以及类型和模块分解也在设计文档中发挥作用.

QuickCheck properties also play a part in the design document, along with type and module decompositions.

这篇关于函数式编程范式是否有可视化建模语言或风格?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆