需要帮助用GLEE和C#绘制控制流图

时间:2009-11-08 08:44:00

标签: c# graph call-graph microsoft-glee

我正在尝试使用GLEE图库和C#语言从源代码中绘制控制流图(CFG)。问题是,我是GLEE的新手。我需要一个教程或示例程序/项目来帮助我快速开始使用GLEE。我需要绘制CFG的源具有以下结构:

begin myProcedure
  statement 1;
  statement 2;
  if(condition) then
    statement 3;
  else
    statement 4;
  end if
end myProcedure

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

除非你将控制流程图硬连接到你的答案(作业?),否则图形不是这个问题的难点。从您的语言的源代码中提取控制流图是。

你的例子显然不是C#( BEGIN ?),所以你需要找一个语言解析器; 你需要做一些事情来做名称和类型解析(把GOTO处理成命名块的标签或出口),并构建一个流图作为图数据结构。如果您正在处理像GCC(具有间接GOTO的类C语言)之类的东西,则需要指针分析来确定间接GOTO的可能目标。如果您打算处理C#或Java,您可能能够从类文件中提取控件(具有相同的问题),然后您必须将其映射回源代码。

如果你有很多可用的机器(解析,名称解析,控制流图形构建库)来构建你的控制流图形提取器,那么最容易做这样的任务。 DMS Software Reengineering Toolkit提供了所有这些基础,以及许多语言的解析器。对于C,Java和COBOL,DMS还提供了处理所有上述问题甚至数据流图的控制流图的直接提取。请参阅sample control and data flow graphs

答案 1 :(得分:1)

为了使用glee绘制图形是一个非常简单的任务,一旦你解析了你的源代码,使用欢乐来制作图形你可以遵循这个简单的教程:

http://chalaki.com/how-to-program-msagl-glee-to-create-hierarchical-graph-layouts/519/

答案 2 :(得分:0)

看起来你也是C#的新手,因为GLEE已经有近两年没有了(已被MSAGL取代,这是一个带有示例的付费产品)我想你可能会发现很难,找到任何例子,第二,获得任何支持。看来你可以获得$99 at the moment的MSAGL(从295美元起),可能值得投入节省的时间。

答案 3 :(得分:0)