当前位置:问答库>论文摘要

题目:软件再(逆向)工程程序分析技术研究

关键词:GLR算法;语法分析器生成器;错误恢复;文法调试

  摘要

随着计算机软件业的迅速发展,软件再(逆向)工程越来越受到产业界和学术界的重视,软件再(逆向)工程的基础——程序分析遇到了许多新的问题。本文从总结和分析这些问题出发,提出应结合软件再(逆向)工程的特点研究程序分析理论及其关键技术,研究适合软件再(逆向)工程需求的分析器自动生成机制,以解决该领域普遍面临的复杂语言分析、混合语言分析、方言分析和分析器调试等重要问题。在深入研究上述内容的基础上,论文提出和实现了一个自底向上语法分析器生成系统的技术框架。在分析算法选择上,论文以GLR分析算法为基础,这使得它有别于传统的LALR(1)或LL(1)等确定性分析器生成系统。GLR分析方法能识别任意上下文无关文法,可以有效减少文法改写,简化混合语言和多方言分析器的构造,便于软件再(逆向)工程分析工具的开发和维护。与LALR(1)等确定性分析方法相比,GLR方法的主要缺陷是分析速度较慢,且缺乏有效的错误处理和恢复机制。针对这两方面的问题,结合计算机语言语法分析特点,论文提出了一个三层次的优化策略,加快了GLR算法的分析速度;论文分析了常见的LR错误处理和恢复机制,提出了一种基于子串分析的GLR错误处理和恢复方法,可以实现良好的错误恢复和报告功能。在调试算法选择上,论文分析了现有的各种调试方法,对文法断点调试方法进行了深入研究,提出了一种任意文法位置的断点调试方法。与传统的文法断点调试方法相比,该方法可以显著增加可利用的断点数量,可以跟踪到更细粒度的文法成分,从而可以帮助用户更好地执行文法调试,降低分析器的开发难度。论文提出的技术框架、算法已在原型系统VPGE中实现。该系统是一个可视化的文法开发、调试和分析器生成环境,支持文法断点调试、自动错误恢复及灵活的冲突消歧。