【问题标题】:Need help to draw control-flow graph with GLEE and C# [closed]需要帮助使用 GLEE 和 C# 绘制控制流图 [关闭]
【发布时间】:2009-11-08 08:43:59
【问题描述】:

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

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

有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      一旦你解析了你的源代码,为了使用glee绘制一个图表是一项非常简单的任务,你可以按照这个简单的教程来使用glee制作图表:

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

      【讨论】:

        【解决方案3】:

        看起来你也是 C# 的新手,因为 GLEE 已经有将近 2 年没有推出了(已经被 MSAGL 取代,这是一种带有示例的付费产品)我想你可能会觉得很难先,找到任何例子,其次,获得任何支持。看来您可以花 $99 at the moment 获得 MSAGL(低于 295 美元),可能值得为节省时间而投资。

        【讨论】:

          【解决方案4】:
          猜你喜欢
          • 2020-01-02
          • 2020-02-27
          • 1970-01-01
          • 2011-09-15
          • 2014-08-31
          • 1970-01-01
          • 2022-10-15
          • 2023-04-09
          • 1970-01-01
          相关资源
          最近更新 更多