程序框图到代码的自动转换研究.

上传人:我** 文档编号:116226027 上传时间:2019-11-16 格式:DOC 页数:55 大小:593KB
返回 下载 相关 举报
程序框图到代码的自动转换研究._第1页
第1页 / 共55页
程序框图到代码的自动转换研究._第2页
第2页 / 共55页
程序框图到代码的自动转换研究._第3页
第3页 / 共55页
程序框图到代码的自动转换研究._第4页
第4页 / 共55页
程序框图到代码的自动转换研究._第5页
第5页 / 共55页
点击查看更多>>
资源描述

《程序框图到代码的自动转换研究.》由会员分享,可在线阅读,更多相关《程序框图到代码的自动转换研究.(55页珍藏版)》请在金锄头文库上搜索。

1、0 目目 录录 摘要摘要.1 AbstractAbstract.1 第第 1 章章引言引言.2 第第 2 章章程序流程图自动转换为代码的基本思想程序流程图自动转换为代码的基本思想.4 21 基本思想.4 22 实现自动转换的基本步骤.4 第第 3 章章系统架构系统架构.6 31 硬件系统和开发平台.6 32 系统样式.6 33 功能模块.6 3 4 需求分析.7 第第 4 章章系统实现系统实现.8 41 系统开发环境.8 42 系统样式.8 43 程序流程图的识取.10 4.3.1 识取预处理.10 4.3.2 图形的操作和存储.10 44 图形数据的解析与生成11 4.4.1 数据与关系的定

2、义.11 4.4.2 关系的解析.15 4.4.3 代码生成算法.44 45 代码的执行.48 4.5.1 代码的编绎.48 4.5.2 代码的运行.48 第第 5 章章实验与结果实验与结果.48 51 结果分析.49 52 程序的局限性.51 第第 6 章章总结总结与启示与启示52 致谢致谢53 参考文献参考文献.53 1 程序框图到代码的自动转换研究程序框图到代码的自动转换研究 摘要:摘要:程序框图与源代码的自动转换是软件工程领域研究的一个重要课题,有诸多不同的技术和方法。 本文采用的方法是首先对程序框图之间的各种关系及其含义进行解析,将之分解为顺序执行关系、判断嵌套 关系、循环嵌套关系和

3、跳转嵌套关系,在此基础上生成一个自动转换系统。该系统包括用户接口控制模块、 图形符号解析模块、代码生成模块、编译执行模块等。自动生成的仿 C 语言在本系统开发环境中能正确运行。 关键词关键词: 程序框图;代码;自动转换程序框图;代码;自动转换 The procedure frame diagram arrives automatic conversion research of the code The automatic conversion of the procedure frame diagram and the source code is an important topic of

4、 the software engineering realm research, also having many different techniques and method.The method of this text adoption carries on the resolution to various relation and its meanings between the procedure frame diagram first, relating to its decomposition for the in proper order performance, jud

5、gment the set relation, circulation the set relation and jump to turn a relation, born on this foundation an imitates the language system of C.This text still constructed a simple edit and translate the system, make imitate bornly the right movement of the C language ability. KeyWord:Procedure Frame

6、 Diagram; Code; Automatic Conversion; 2 第第 1 章章 引言引言 软件自动化是提高软件质量与生产效率的根本途径。而程序框图与源代码的 自动转换则是软件开发过程中极富创造性的知识密集型活动,是软件自动化的难 点和关键所在。这里包括两个方面的问题:一是程序框图转换为源代码的研究;另 一个则是相反的方向,即源代码转换为程序框图的研究。 目前公开报道的文献基本上是针对源代码转换为程序框图的研究。这是因为, 在源代码级上分析程序是软件逆向工程的基本任务,其目的是从程序文本中了解 程序的高层概念,它主要用于对软件维护的支持,软件可重用知识和部件的获取, 以及探测已存

7、在的软件产品等。软件维护在软件生存周期中是最昂贵的阶段,习惯 的软件维护活动占整个生存周期的 5090。软件是逻辑产品,维修人员理解软件, 要占用 4760的维护工作量。没有自动支持,维护时间大部分被花在试图去理解 被维护的对象上。理解的工作极大地依赖于对程序源代码的理解,这不仅对文档很 差的软件如此,对于文档较好的软件也是如此,这是因为正向工程产生的文档不足 以支持软件的维护活动。另一方面,软件重用受到越来越广泛的重视,甚至被看作 软件工业发达程度的标志。软件重用虽然在发达国家的很多公司中采用,但无论在 理论上还是在技术上,都有许多难题需要研究解决,其中可重用知识相可重用部件 的获取被认为是

8、技术难点之一。软件的最准确的文档就是源代码文本,它是提供可 重用知识相部件的丰富资源。对源程序的分析与理解能帮助人们从程序中获得一 些可重用知识与部件。因此,有的专家认为,下一代的软件工程环境应当是正反向 都可用的。 3 本文研究的程序框图转换为源代码的课题即属于软件开发的正向工程。它对 于提高软件生产效率和软件开发过程的标准化、程序化有着十分重要的意义。 在软件详细设计中,人们常用的程序框图主要有程序流程图、盒图和问题分析 图,而程序流程图是使用最为频繁的一种框图,其简便、直观的特点为人们所喜好, 在软件设计中有着十分重要的作用。本文具体讨论了程序流程图自动转换为一种 仿 C 语言代码的处理

9、方法及实现过程。 4 第第 2 章章 程序流程图自动转换为代码的基本思想程序流程图自动转换为代码的基本思想 2 21 1 基本思想基本思想 实现程序流程图到源代码的自动转换,首先要解决的一个问题就是对程序流 程图的理解,要理解它的逻辑结构,包括顺序、重复、分支及其控制结构。其中程序 控制结构又包括程序总体结构和程序的控制流程结构。程序的总体结构描述了程 序单位(过程、函数或子程序)之间的调用关系及联系信息,并以程序结构树的形式 (即程序调用结构图或程序模块图)简明地刻划其慨貌,程序的控制流程结构描述 的是程序单位中控制结构的传递和流向而上述结构关系在流程图中基本上表现 在框与框之间的连接。系统

10、对这些错综复杂的相互关系进行分类解析,从而把流程 图蕴藏的程序结构和数据流向能以源代码的方式表现出来,就好像是一种类似编 译器的“流程图编译器”。通过隐藏中间过程,用户在本系统的作图环境中,画出流 程图,就能通过“编译”命令来进行查错,如果无错后,能够通过“运行”命令执行,然 后就能够生成源代码。这就实现了本系统的研究目标。 22 实现自动转换的基本步骤实现自动转换的基本步骤 1对用户所画的程序流程图,进行存储。用框结点链表将流程图中所有的框图 存入,再用一个线链表将图中所有的线存入。 2根据上述的框结点链表和线链表,初始化“嵌套表”, “同级表”和“关系再生表” (为实现自动转换而定义的三种

11、数结构,定义情况参看第 4 章),用来存储解析过程 中所进行操作的记录。 3按“解析”算法,逐步修改“嵌套表”、 “同级表”和“关系再生表”。 5 4建立“代码生成”算法,把“嵌套表”和“同级表”中的结果,生成仿 C 语言代码。 5创建与系统配套的编译模块,对仿 C 语言代码进行编译,确保代码的正确 运行。 6 第第 3 章章 系统的总体结构系统的总体结构 31 系统结构系统结构 自动转换系统由这样几个功能模块组成:用户接口控制模块;图形符号解析 模块;代码生成模块;编译执行模块。 其结构如图 3-1 所示。 32 模块模块功能简析功能简析 1用户接口控制模块 主要功能:提供操作界面;提供画程

12、序流程图的环境。 2图形符号解析模块 主要功能:根据前一个模块提供的图形对框图数据进行关系解析,生成关系 数据。 3代码生成模块 主要功能:根据图形符号解析模块提供的关系数据,生成源代码。 4编译执行模块 主要功能:对代码生成模块产生的源代码进行编译,执行代码程序,生成并 7 显示结果数据。 3.3 系统的数据流图分析系统的数据流图分析 按照软件工程学的思想,可以在任何抽象层次上使用数据流图表示系统或软 件。事实上,可以分层次分模块画出本系统的数据流图,由于受篇幅限制,本文 仅简要地画出系统的 0 层数据流图,如图 3-2 所示。通过该图,读者并不难理解 系统内部的数据流动状况。 8 第第 4

13、 4 章章 自自动转换动转换系系统统的的实现实现 4.1 系系统统开开发发和运行和运行环环境境 系统在运行的过程当中,主要进行的是图像处理,同时也要进行大量的数据处 理,所以系统对处理器的要求比较的高。要求 CPU 的主频大于 400Hz,内存大于等 于 128MB。 系统的开发环境为 Windows XP + VC6.0。 4. 2 系系统样统样式式 本系统采用 VC6.0 开发,采用单文档三视图结构,具体为:用 CmyDoument 做 为文档专门用于数据的管理,分别用 CmyView 做为流程图画图视图,专门用于, 流程图的做图,修改,和保存的功能显示于用户面前,用 CcodeView

14、做为代码视 图,专门用于,流程图生成的代码的生成,编辑,保存的功能的显示,用 CrunView 做为代码的运行视图,专门用于,代码运行后的结果显示于用户。 4.3 程序流程程序流程图图的的识识取取 4.3.1 识识取取预处预处理理 (1)流程图的图元的的定义 首先为本系统定义了一个 Graphics(图像) 类,它是本系统给于用户所画流程图 的最基本图像定义,它包含以下属性: 属性 类型 作用 Ltx.int (整型).本图元最左上点的 x 坐标值。 Ltyint (整型).本图元最左上点的 y 坐标值。 Rbxint (整型)本图元最右下点的 x 坐标值。 9 Rbyint (整型)本图元最

15、右下点的 y 坐标值。 Text.char *(字符串型)本图元所要显示的类容。 Stateint (整型)本图元当前状态。 State 为 0 时,表示此图元处于一般情况下; State 为 1 时,表示此图元处于用户选择情况下; State 为 2 时,表示此图元处于用户剪切情况下. State 为 3 时,表示此图元处于用户复制情况下. State 为 4 时,表示此图元处于用户粘贴情况下 Id int (整型)本图元唯一标志号。用于区别其它图元。 另外还定义了一些专门为这些属服务的 get 和 set 方法,因此,Graphics 的 C+的定义如参看源程序中的 Graphics.h 文件。然后,本系统为用户提供的框图定 义了 Frame(框)类如下,它是继承于上面的 Graphics 类的,它具有以下的新增属性: 属性 类型 作用 Depth int (整型)图元的深度值。就是离开始框的最近距离值。 Type int (整型)框图的类型。 当 Type 为 1 时,表示此框为 begin(开始)框。 当 Type 为 2 时,表示此框为 end (结束)框。 当 Type 为 3 时,表示此框为 一般框。 当 Type 为 4 时,表示此框为 子函数框。 当

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号