Lisp 可视化编程工具

Lisp 可视化编程工具,lisp,visual-programming,graphical-programming,Lisp,Visual Programming,Graphical Programming,我需要一个工具,用图形表示程序中的工作流程(就像用图形表示描述电子电路一样)。表示必须如下所示:函数是框,框之间的箭头是“消息”。像这样: 此图显示以下内容:(c(a)(b)) 其中,c()的参数命名为d和e。在C上应该是 void c( someType1 d, someType2 e ); someType1 a( void ); someType2 b( void ); .... c( a(), b() ); 因此,我认为我需要一个工具来操纵和可视化表示s表达式,如下所示: (a (b

我需要一个工具,用图形表示程序中的工作流程(就像用图形表示描述电子电路一样)。表示必须如下所示:函数是框,框之间的箭头是“消息”。像这样:

此图显示以下内容:(c(a)(b))
其中,c()的参数命名为d和e。在C上应该是

void c( someType1 d, someType2 e );
someType1 a( void );
someType2 b( void );
....
c( a(), b() );
因此,我认为我需要一个工具来操纵和可视化表示s表达式,如下所示:

(a (b c d) e)  

它不是关于链表,而是关于函数之间的逻辑连接。
该工具只需从图形表示生成文本表示。
嗯,我在维基页面上找到了很多关于“可视化编程”和“图形编程”等的东西。大部分描述的工具都很酷,但有些复杂。而且这个列表很长,所以测试所有这些都需要很多时间。所以我需要一个真实的,活着的人的意见

要求如下:

  • 免费的
  • 简单的
  • 可以导出到至少一个真实的 语言,如XML、C++或LISP或任何语言 其他的
如果这个工具是可配置的,那就太好了

我喜欢FlowDesigner工具:它似乎几乎是我需要的东西,但它无法导出到任何语言。。。唉

UPD:我提到的wiki页面:

UPD2:嗯,我决定编写自己的工具…

查看Microsoft DSL工具-


它是一个“设计器生成器”-允许您定义自己的图表格式,指定形状、箭头、颜色等,并为您生成一个设计器,该设计器能够编辑此类图表并导出有关图表的任何文本构件(例如XML或代码)。

使用类似的工具怎么样?

HTH

警告:无耻插头

看到了吗

它围绕一个可配置的引擎构建,可以以几乎任何语言输出

#include <stdio.h>

/* there are 8 blocks */
int running;
/* there are 1 out blocks */
int state_curr_1;
int state_next_1;

int main(int argc, char *argv[]) {
  running = 1;
  state_curr_1 = 0;
  while (running) {
    state_next_1 = (state_curr_1 + 19);
    running = (state_curr_1 != (19 * 12));
    state_curr_1 = state_next_1;
    printf("out = %d\n", state_curr_1);
  }
  return 0;
}
但是,我很抱歉。它不是真正免费的


(来源:)

上面的示例导出了以下c代码,但可以通过重新配置生成其他语言

#include <stdio.h>

/* there are 8 blocks */
int running;
/* there are 1 out blocks */
int state_curr_1;
int state_next_1;

int main(int argc, char *argv[]) {
  running = 1;
  state_curr_1 = 0;
  while (running) {
    state_next_1 = (state_curr_1 + 19);
    running = (state_curr_1 != (19 * 12));
    state_curr_1 = state_next_1;
    printf("out = %d\n", state_curr_1);
  }
  return 0;
}
#包括
/*有8个街区*/
int运行;
/*有1个街区*/
int state_curr_1;
int state_next_1;
int main(int argc,char*argv[]){
运行=1;
状态电流1=0;
(跑步时){
州1下一个州1=(州1+19);
运行=(状态电流1!=(19*12));
state\u curr\u 1=state\u next\u 1;
printf(“输出=%d\n”,状态为当前1);
}
返回0;
}

使用基于.net和WPF的库怎么样


提供一个指向“Wiki页面”的链接,我很感兴趣我正在学习Lisp。您提供的第二个S-expr包含“x,y”,我觉得很奇怪,因为逗号。Lisp通常使用空白,就像在第一个S-expr中一样。我不明白。答案似乎是“一个键盘”和“一个屏幕”。2马克股票:这只是(f(+(g(zxy))5)的不同语法。它不太特别,也不太有趣。哈勒金:那么,为什么电子电路是用符号绘制的,而不是用文本形式表示呢?我指的不是物理上的而是逻辑上的东西。我真的不明白你的问题。您是否想要一个可以绘制方框图和指针图()的工具?是否有任何工作示例?对于我的任务来说,这个解决方案似乎有点通用。对不起,我只是无法看完这些文档:这是一个庞大的数据量,似乎是某个任务(DSL)的解决方案的中间部分……这可能是一个更好的起点:必须对此加以支持。DSL工具简直棒极了。很难开始,但一旦你开始滚动。。。好。。。乐趣永无止境。