最近想学习一下编译原理,做一个编程规范的检测工具
2008-07-03 00:19
477 查看
因为公司对编程规范要求的很严格,然而很多人却都没有规范的习惯,所以很多问题还是存在于代码中。有一次机会想做一个编程规范检测的工具,可惜自己能力有限,很多东西都不会。偶然想到了编译原理,可惜我没学过。拿着同事的一本关于GCC开发工具的书,半天也没搞明白是在干什么,有点郁闷。
我对.Net比较熟悉一些,想用.Net开发一个C语言的编程规范检测工具。大概的构思了一下,感觉还是可以实现的。
首先.Net的正则表达式功能很强大,可以很好的实现基本的规范检测。这里,我并不想做编译器已经实现的功能,也不是简单的代码进行排版或者是美化,而是根据实际公司的要求,对一些常见的编程规范错误进行一条一条的检测。对于每一条规则,完全可以构造正确合理的正则表达式来完成这样的工作。其次,C#的开发效率高,可配置性强,可以分步完成这样的工作,先从简单的规范开始实现,问题应该不大。另外,最让人郁闷的问题可能就是运行效率问题。我最担心的就是多个规范进行同时检测的时候可能会出现资源占用过大,CPU占用过高的情况。这一点可以用实验来证明一下,对于一个1MB以内的C源代码文件,进行一些常规的操作,看会有什么样的结果,我想应该还是可以接受的。
具体的实现,可以会为2部份。一个是命令行的,可以集成到一些开发工具中,这样可以灵活的应用。另一个就是Windows工程式的,可以批量的完成规范检测。而2个部份是可以共用一个核心模块的,因此,核心模块的开发可能比工具本身更重要。
先想这么多吧,下个星期的工作应该比较轻松一点,有时间就自己做做这样的一个小工具。
我对.Net比较熟悉一些,想用.Net开发一个C语言的编程规范检测工具。大概的构思了一下,感觉还是可以实现的。
首先.Net的正则表达式功能很强大,可以很好的实现基本的规范检测。这里,我并不想做编译器已经实现的功能,也不是简单的代码进行排版或者是美化,而是根据实际公司的要求,对一些常见的编程规范错误进行一条一条的检测。对于每一条规则,完全可以构造正确合理的正则表达式来完成这样的工作。其次,C#的开发效率高,可配置性强,可以分步完成这样的工作,先从简单的规范开始实现,问题应该不大。另外,最让人郁闷的问题可能就是运行效率问题。我最担心的就是多个规范进行同时检测的时候可能会出现资源占用过大,CPU占用过高的情况。这一点可以用实验来证明一下,对于一个1MB以内的C源代码文件,进行一些常规的操作,看会有什么样的结果,我想应该还是可以接受的。
具体的实现,可以会为2部份。一个是命令行的,可以集成到一些开发工具中,这样可以灵活的应用。另一个就是Windows工程式的,可以批量的完成规范检测。而2个部份是可以共用一个核心模块的,因此,核心模块的开发可能比工具本身更重要。
先想这么多吧,下个星期的工作应该比较轻松一点,有时间就自己做做这样的一个小工具。
相关文章推荐
- 推荐一个算法编程学习中文社区-51NOD【算法分级,支持多语言,可在线编译】
- 最近开始学习ubuntu,想记录一下学习过程,也为在学习的朋友提供一个参考
- 最近看到一个开发神器,IntelliJ学习一下
- 改变一下编译原理学习策略
- 最近再学习一下正则表达式 写了个小工具自己测试
- 推荐一个算法编程学习中文社区-51NOD【算法分级,支持多语言,可在线编译】
- 最近准备做一个C++模式设计方面的学习总结,希望有路过看见的人推荐一下
- 编译原理学习笔记06——(连连看—准备一下很多课件都演示的公式E → E+T | T )——2014_1_22
- 利用C#Reflector等反编译工具学习精练的编程方法
- python的GUI编程--wxpython学习(四)-->练习:一个自动测试app启动时间的小工具
- 【我的愿景】每个程序员都应该学习编译原理,而每个人都应该学习 编程 和 设计。
- C/C++安全编程规范及一些代码静态安全检测工具
- C语言学习笔记---001C语言的介绍,编译过程原理,工具等
- 华为软件编程规范学习(十)--代码编辑、编译、审查
- 静态库与动态库及交叉编译总结及学习较底层编程:动手写一个C语言编译器
- 最近学习一下DotNet的验证控件的原理
- 整理一下最近学习使用的一些IT工具,老的新的都有之一基本篇
- 编译原理学习一:flex,bsion工具使用
- 华为软件编程规范学习(十)--代码编辑、编译、审查
- 华为软件编程规范学习(十)--代码编辑、编译、审查