从程序流程图自动生成C代码

时间:2022-05-19 23:06:27 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
龙源期刊网 http://www.qikan.com.cn

从程序流程图自动生成C代码

作者:牛锐

来源:《数字技术与应用》2013年第04

摘要:本文设计并实现了标准程序流程图的C代码自动生成算法。 关键词:代码自动生成

中图分类号:TP3 文献标识码:A 文章编号:1007-9416201304-0200-01 1 研究背景

本文阐述的算法可以识别、分析正确的结构化以及半结构化的流程图,并生成相应C码。

2 识别与分析流程图的结构 2.1 循环结构的识别

直观上看,循环结构在流程图中对应着环路结构,而程序流程图是一幅有向图,在图论中,有向图的环路结构形成了强连通分量。因此本文将循环结构的识别问题转化为寻找程序流程图的强连通分量问题。 2.2 菱形结点类型的判定

在程序流程图中,菱形结点既可以表示循环的条件判断结点(引领一个强连通分量),又可以表示普通的分支结点。为了方便判断菱形结点的类型,首先定义强连通分量的Head结点Tail结点:

Head结点:强连通分量的起始寻找结点。

Tail结点:有出边走向强连通分量外部;且Tail==HeadTail->Next == Head

结合强连通分量以及HeadTail结点的信息,我们用如下方法判断菱形结点的类型:该结点为矩形结点,不需要判断类型;该结点为菱形结点,且构成自循环,则为while循环结点;否则为if结点。 2.3 环路的消除

要计算嵌套在循环结构内部的强连通分量,必须将外层强连通分量的环路破坏掉。


本文来源:https://www.wddqw.com/doc/489f15d94b7302768e9951e79b89680202d86b6d.html