我有问题比较两个表达式树并确定它们是否在语义上等效。
背景:
在我的OpenPEARL编程语言的开源编译器中有 位串和字符串的切片,可以采用以下形式:
variable.BIT(expr:expr+42)
在这种情况下" expr"必须评估相同的值。
示例:
设a和b一些数值变量,其值在运行时已知:
Expression1: (a+2)*(b/8)
Expression2: (1+a+1)*(b/(4*2))
为了解决这个问题,我需要评估常量表达式部分(已经完成并正在工作),对两个树进行规范化,然后执行递归树比较。通过规范化我的意思是根据它们的代数属性重新排序节点。
欢迎任何想法,暗示或讨论!