文档

文档/技术

耦合数据表示

提高还原关键计算背后逻辑的难度。

Coupled stateGF(2)Bit-sliceConsumer fusion

多个值,共同表示#

独立编码留下独立的恢复问题。耦合状态将相互作用的标量共同表示,使一个转换后的坐标可依赖多个原始值。Complexer 的区域机制支持对适用 int/long 计算使用仿射及非线性三角表示,并明确入口与出口约束。

关键在于有效计算发生的位置。转换后的区域可直接在耦合坐标中求值,减少每次操作前还原各原始变量的需要。结构分析因此必须同时恢复表示方式及其中表达的计算。

选择表示族#

实现不限于仿射算术,还包括 GF(2) 多项式耦合、位切片布尔电路、与 IEEE-754 相关的表示及编码循环递推。不同族适用于不同区域,具有各自的转换成本与证明义务,不能在任意字节码上互换启用。

表示改变什么分析影响
耦合坐标多个 int/long 值共享一种表示。除了独立编码,还需还原值之间的关系。
GF(2) / bit-slice适用的标量计算采用多项式或布尔表示。可识别的算术表达式不再是实际计算表示。
循环携带状态表示可在支持的循环递推过程中持续存在。局部表达式必须结合持续变化的状态理解。
使用方融合选定运算直接在编码坐标中执行。区域内不一定保留独立的先解码、后计算边界。

让常量融入使用方#

传统恢复边界先暴露数值,再交给另一操作。面向使用方的转换可将常量与消费它的计算融合。比较与决策逻辑可表示为变换器,选定算术则可通过 ConstantDynamic 链接的基本类型 MethodHandle 组合子 DAG 表达。

分析者需要还原的对象因此发生变化:可识别字面量或简单算术方法体,可能变为运行时组件间的关系。预期结果不变,改变的是表示与恢复路径。

保留语言语义契约#

表示转换必须保留 Java 的精确位宽、有符号解释、溢出及异常行为。针对性测试覆盖 32/64 位往返、耦合坐标内直接求值、上下文前提、分支循环及异常处理器可见状态。每个案例验证具体边界,并不构成对所有应用兼容性的保证。

联系团队