促进(简化)广泛自动化的源代码分析和重新设计(转换)工具的开发的编程语言的共同特征/特性是什么?
我主要考虑编程语言特性,这些特性使开发静态分析和重构工具更容易(即比较 Java 与 C++,前者对重构有更好的支持)。
换句话说,一种从一开始就明确设计为支持自动静态分析和重构的编程语言,它最好具有哪些特征?
例如,对于 Ada ,有 ASIS :
另请参阅ASIS FAQ
您能想到其他编程语言提供类似的全面和完整的接口(interface)来处理专门用于分析/转换目的的源代码吗?
我正在考虑提供低级 Hook 的特定实现技术,例如提供在运行时检查 AST 或 ASG 的方法的核心库函数。
最佳答案
最大的必须是静态类型。这允许工具更深入地了解代码在做什么。没有它,重构会变得困难许多倍。
关于refactoring - 促进重构的编程语言属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/977474/