问题标签 [opal-framework]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opal-framework - OPAL-关于使用 CHA 算法查找抽象类中定义的方法的调用
这是一个与使用 CHA 构造 Java 字节码调用图的算法有关的问题。
由于抽象类中的方法没有具体的方法实现,因此向此类方法添加调用边缘可能会有点误导。举junit-4.12.jar
个例子。runFailed
其中已经定义了junit.runner.BaseTestRunner
一个抽象类。此外,还有对runFailed
in 方法的调用,该方法getTest
也定义在junit.runner.BaseTestRunner
在“CHA 调用图构造算法的假设层次结构”(Jason&Atanas)中,据说
“给定一个调用站点 xm(),其中 x 的声明类型是 C,x 的可能运行时类型必须是 C 的非抽象子类型。”
据我考虑,如果不添加调用边缘(Calledge1) from junit.runner.BaseTestRunner getTest
to ,添加调用边缘(Calledge2) from tojunit.runner.BaseTestRunner runFailed
更合理,因为 TestRunner 扩展了 BaseTestRunner。junit.runner.BaseTestRunner getTest
junit/textui/TestRunner runFailed
而在运行测试代码得到 CallGraph.callByStatistics() 的结果后,只找到了 Calledge1。Calledge2 丢失。
有人可以帮我确认一下吗?先感谢您。
问候,
江
call-graph - “findMethods”不返回预期结果
我正在尝试实现分析(扩展 DefaultOneStepAnalysis)以在 CHA 算法中构造调用图。我的代码分为三部分:
在 3) 中,我使用方法“callBySignature”来找出与“CHACallGraphExtractor”相同的方法的 cbsMethods,但它不返回预期结果。虽然我使用原始 OPAL 的方式在 Extractor 中获取 cbsMethods,但结果是一组方法。
你能帮我确认问题出在哪里以及如何解决吗?非常感谢。
问候,江
----我的代码的主要部分---------------------------------------- --------