The tool for visual programming

2019-02-03 20:32发布

问题:

I need the tool for graphical representing of work flow in a program (like electronic circuits are described with graphical representation). The representation has to be like the following: functions are boxes and arrows between boxes are "messages". Like this:

alt text http://img372.imageshack.us/img372/8471/functionsqv0.png

This picture shows the following: (c (a) (b))
Where parameters of c() are named as d and e. On C it would be

void c( someType1 d, someType2 e );
someType1 a( void );
someType2 b( void );
....
c( a(), b() );

So I think that I need the tool for manipulation and visual representation of s-expressions like these:

(a (b c d) e)  

or

f(g(z(x,y))+5)  

It is not about linked lists, it is about logical connections between functions.
The tool has only to generate the textual representation from graphical one.
Well, I've found a lot of stuff on the Wiki page about the "Visual programming" and "Graphical programming" and so on. Mostly all described tools are cool, but somewhat complicated. And the list is pretty long, so it would take a lot of time to test all of them. So I need an opinion of real, alive people.

Requirements are:

  • Free
  • Simple
  • Can export to at least one real language like XML or C++ or LISP or any other.

And it would be really good if this tool were configurable.

I like the FlowDesigner tool: it seems to be almost the thing I need, but it cannot export to any language... Alas.

UPD: The wiki page I mentioned: Graphical Programming
UPD2: well, I decided to write my own tool...

回答1:

What about using something like Graphviz?



回答2:

Check out Microsoft DSL Tools - http://msdn.microsoft.com/en-us/library/bb126259.aspx

It is a "designer generator" - allows you to define your own diagram format, specify shapes, arrows, colors, etc. and generates a designer for you that is able to edit such diagrams and export any textual artifacts about your diagram (e.g. XML or code).



回答3:

Warning: Shameless plug

Seen Memention Designer?

It's built around a configurable engine and can output in almost any language.

But, I'm sorry. It's not really free.

alt text http://www.memention.com/designer/desscreen.jpg

Above example exports following c-code, but could with some re-configuration generate some else language.

#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;
}


回答4:

http://www.graphviz.org/

HTH



回答5:

What abou using the .net and WPF based library TUM.CMS.VPLControl?