0

我正在尝试使用 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

4 回答 4

1

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

您的示例显然不是 C#(BEGIN?),因此您需要找到一个语言解析器;您将需要进行名称和类型解析(处理 GOTO 到命名块的标签或出口),并将流程图构建为图形数据结构。如果您正在处理诸如 GCC(一种具有间接 GOTO 的类 C 语言)之类的东西,您将需要指针分析来确定间接 GOTO 的可能目标。如果您打算处理 C# 或 Java,您可能能够从类文件中提取控件(有很多相同的问题),然后您必须将其映射回源代码。

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

于 2009-11-08T10:16:12.913 回答
1

解析源代码后,要使用 Glee 绘制图形是一项非常简单的任务,要使用 Glee 绘制图形,您可以按照以下简单教程进行操作:

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

于 2017-07-05T10:08:03.537 回答
0

http://research.microsoft.com/en-us/downloads/f1303e46-965f-401a-87c3-34e1331d32c5/default.aspx

下载附带一个 csharp 示例应用程序

于 2009-12-28T18:18:29.520 回答
0

看起来你也是 C# 的新手,因为 GLEE 已经有将近 2 年没有可用了(已经被 MSAGL 取代,这是一种带有示例的付费产品)我想你可能会发现很难首先找到任何示例,第二,获得任何支持。看来您现在可以以 99 美元(低于 295 美元)的价格获得 MSAGL,这可能值得您节省时间的投资。

于 2009-11-08T09:44:15.223 回答