Class Optimizer
java.lang.Object
cloud.opencode.base.expression.compiler.Optimizer
AST Optimizer
AST 优化器
Optimizes Abstract Syntax Trees to improve evaluation performance. Applies various optimization techniques including constant folding and short-circuit optimization.
优化抽象语法树以提高求值性能。应用各种优化技术,包括常量折叠和短路优化。
Features | 主要功能:
- Constant folding: evaluate constant expressions at compile time - 常量折叠: 编译时计算常量表达式
- Short-circuit optimization for logical operators - 逻辑运算符的短路优化
- Dead code elimination - 死代码消除
- Configurable optimization passes - 可配置的优化传递
Usage Examples | 使用示例:
Optimizer optimizer = Optimizer.builder()
.constantFolding(true)
.shortCircuit(true)
.build();
Node optimized = optimizer.optimize(ast);
Security | 安全性:
- Thread-safe: No, mutable configuration state - 线程安全: 否,可变配置状态
- Null-safe: Yes, null node returns null - 空值安全: 是,null节点返回null
Performance | 性能特性:
- Time complexity: O(n) for optimize where n is the number of AST nodes - 时间复杂度: optimize 为 O(n),n为 AST 节点数量
- Space complexity: O(n) for the optimized AST - 空间复杂度: O(n),存储优化后的 AST
- Since:
- JDK 25, opencode-base-expression V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Optimizer.Builderbuilder()Create builder for Optimizer 创建优化器构建器foldConstants(Node node) Constant Folding 常量折叠booleanCheck if constant folding is enabled 检查是否启用常量折叠booleanCheck if dead code elimination is enabled 检查是否启用死代码消除booleanCheck if short-circuit optimization is enabled 检查是否启用短路优化Optimize an AST node 优化 AST 节点optimizeShortCircuit(Node node) Short-Circuit Optimization 短路优化setConstantFoldingEnabled(boolean enabled) Set constant folding enabled 设置是否启用常量折叠setDeadCodeEliminationEnabled(boolean enabled) Set dead code elimination enabled 设置是否启用死代码消除setShortCircuitEnabled(boolean enabled) Set short-circuit optimization enabled 设置是否启用短路优化
-
Constructor Details
-
Optimizer
public Optimizer()Create optimizer with default settings 使用默认设置创建优化器
-
-
Method Details
-
optimize
-
foldConstants
-
optimizeShortCircuit
-
isConstantFoldingEnabled
public boolean isConstantFoldingEnabled()Check if constant folding is enabled 检查是否启用常量折叠- Returns:
- true if enabled | 如果启用返回 true
-
setConstantFoldingEnabled
Set constant folding enabled 设置是否启用常量折叠- Parameters:
enabled- true to enable | true 表示启用- Returns:
- this optimizer for chaining | 用于链式调用的优化器
-
isShortCircuitEnabled
public boolean isShortCircuitEnabled()Check if short-circuit optimization is enabled 检查是否启用短路优化- Returns:
- true if enabled | 如果启用返回 true
-
setShortCircuitEnabled
Set short-circuit optimization enabled 设置是否启用短路优化- Parameters:
enabled- true to enable | true 表示启用- Returns:
- this optimizer for chaining | 用于链式调用的优化器
-
isDeadCodeEliminationEnabled
public boolean isDeadCodeEliminationEnabled()Check if dead code elimination is enabled 检查是否启用死代码消除- Returns:
- true if enabled | 如果启用返回 true
-
setDeadCodeEliminationEnabled
Set dead code elimination enabled 设置是否启用死代码消除- Parameters:
enabled- true to enable | true 表示启用- Returns:
- this optimizer for chaining | 用于链式调用的优化器
-
builder
Create builder for Optimizer 创建优化器构建器- Returns:
- the builder | 构建器
-