处理源程序的软件工具

目前我们都是基于IDE进行开发的,在IDE当中集成了编译程序,编译程序本身就是一种软件开发工具,有了编译程序我们才可以使用编程效率高的高级语言来编写程序

很多软件工作人员研发了很多针对源程序进行处理的软件工具,这些软件工具要像编译程序那样对源程序进行分析,下面就拿Xcode举例子

  • 1、语言的结构化编辑器

结构化编辑器不仅具有通常的正文编辑器的正文编辑和修改功能,而且还能像编译程序那样对源程序正文进行分析,就比如说它能够检查用户的输入是否正确,能够自动的提高关键字,当用户输入if之后,编辑器就会立即显示then并且将这两个关键之之间进行匹配等等,有了这些功能,很明显大大提高了我们的开发效率

敲了一个for,就会显示出提示出来了
这里写图片描述

检查错误
这里写图片描述

  • 2、语言程序的调试工具

有一种调试器是允许用户使用源程序的正文和它的符号来进行调试的,即一行一行的跟踪程序,查看变量和数据结构的变化以进行调试工作,这些符号的信息必须由编译程序提供

调试器的实现可以有多种途径,其中一种就是写一个解释器,以交互的方式翻译和执行每一行,它必须维护其所有的运行时的资源以保证在程序执行期间可以很容易地查询不同变量的当前值,就比如说Xcode中的断点调试可以一行一行的跟踪,然后可以输出当前的变量的值

如果我们不通过解释手段进行调试,而是在编译之后的代码上进行调试,那么编译程序就必须要在目标代码(汇编)生成的时候同时去生成特定的调试信息,比如说关联标识符和它表示的地址的信息,用于无歧义的引用一个声明了多次标识符的信息(就是我们需要去知道那么标识符的信息,那肯定要进行多次引用),调试功能越强,实现就会越复杂,它涉及到了源程序的语法分析和语义处理技术

Xcode中的断点调试

这里写图片描述

  • 3、程序格式化工具
    程序格式化工具分析源程序,并可以使程序结构以清晰可读的形式打印出来,比如说注释可以以一种专门的字形出现,然后语句的嵌套层次结构可以用缩排方式表示出来

  • 4、语言程序测试工具
    语言测试工具分为两种:静态分析器和动态测试器
    静态分析器就是在不运行程序的情况下对源程序进行静态分析,以发现程序潜在的错误或者是异常。它对源程序进行语法分析并制定相应表格,检查变量定值与引用的关系,如果发现某变量未被赋值就被引用,或者是定值之后没有被引用等都会被发现
    这里写图片描述
    动态测试工具,就是对源程序进行分析,然后在分级的基础上将记录和显示程序的执行轨迹的语句或者是函数插入到源程序的适当位置,然后记录测试用例记录和显示程序运行时的实际路径,将运行结果与期望的结果进行比较,然后帮助我们定位错误

比如说Xcode里面的leak分析
这里写图片描述

  • 5、程序理解工具

程序理解工具对程序进行分析,确定模块之间的调用关系,然后记录程序数据的静态属性和结构属性,并且去画出控制流程图,帮助用户理解程序


  • 6、高级语言的转换工具

从一个高级语言转换为另一种高级语言,或者从汇编语言转换为高级语言的功能目前也在研究

猜你喜欢

转载自blog.csdn.net/zcmuczx/article/details/80482416