促进(简化)广泛自动化源代码分析和重新设计(转换)工具的编程语言的共同特征/属性是什么?
我主要考虑编程语言特性,使开发静态分析和重构工具更容易(即比较 Java 与 C++,前者对重构有更好的支持)。
换句话说,一种从一开始就明确设计为支持自动静态分析和重构的编程语言,它最好具有哪些特征?
Ada 语义接口规范 (ASIS) 是一个分层的开放式架构,提供对 Ada 库环境的独立于供应商的访问。它允许对 Ada 程序和库进行静态分析。ASIS,即 Ada 语义接口规范,是一个库,可让应用程序访问 Ada 编译单元的完整句法和语义结构。该库通常由需要对 Ada 程序执行某种静态分析的工具使用。
ASIS 信息: ASIS 为工具提供了一种标准方法来提取数据,这些数据最好由 Ada 编译器或其他源代码分析器收集。使用 ASIS 的工具本身是用 Ada 编写的,可以很容易地在支持 ASIS 的 Ada 编译器之间移植。使用 ASIS,开发人员可以生成具有高度可移植性的强大代码分析工具。它们还可以节省实施从源程序中提取语义信息的算法的可观费用。例如,ASIS 工具已经存在,可以生成源代码指标、检查程序对编码风格或限制的一致性、进行交叉引用以及全局分析程序以进行验证和验证。
另请参阅ASIS 常见问题解答
你能想到其他编程语言提供类似全面和完整的接口来处理源代码,专门用于分析/转换目的吗?
我正在考虑提供低级挂钩的特定实现技术,例如提供一种在运行时检查 AST 或 ASG 的方法的核心库函数。