一句话:通过技术分析与复现研究揭示多语言代码语言无关动态分析的实用性挑战与设计陷阱,并提出平衡语言独立性与实用性的新方向。
整体分析多语言代码对实际软件质量保障至关重要。现有工作提出几乎完全语言无关的方法,用于多语言代码动态依赖分析与切片,并展现出潜力。本文通过技术分析与复现研究,将该方法应用于10个不同语言组合的真实多语言项目。结果表明,该方法在效率/可扩展性、精度及跨语言组合的可扩展性等实用性方面面临严重挑战。作者据此反思语言无关设计的深层陷阱,并展望动态分析前景,提出在不过度牺牲可扩展性的前提下提升实用性与精度的新方向;初步结果支持该方向。核心结论是:追求完全语言无关的分析可能既不切实际也无必要,平衡语言独立性与实用性可能更有成效。
Analyzing multilingual code holistically is key to systematic quality assurance of real-world software which is mostly developed in multiple computer languages. Toward such analyses, state-of-the-art approaches propose an almost-fully language-agnostic methodology and apply it to dynamic dependence analysis/slicing of multilingual code, showing great promises. We investigated this methodology through a technical analysis followed by a replication study applying it to 10 real-world multilingual projects of diverse language combinations. Our results revealed critical practicality (i.e., having the levels of efficiency/scalability, precision, and extensibility to various language combinations for practical use) challenges to the methodology. Based on the results, we reflect on the underlying pitfalls of the language-agnostic design that leads to such challenges. Finally, looking forward to the prospects of dynamic analysis for multilingual code, we identify a new research direction towards better practicality and precision while not sacrificing extensibility much, as supported by preliminary results. The key takeaway is that pursuing fully language-agnostic analysis may be both impractical and unnecessary, and striving for a better balance between language independence and practicality may be more fruitful.