9、深入解析Lolisa:智能合约形式化验证的新途径

深入解析Lolisa:智能合约形式化验证的新途径

1. 形式语义概述

在编程领域,表达式求值的语义是将Lolisa表达式转换为GERM框架内存地址值的规则,这个过程包含左值位置求值和右值位置求值两部分。不过,修饰符表达式是个特殊情况,它需依据规则8进行求值:

(8)

这里,⇓e 代表修饰符表达式在左值和右值位置的求值过程。其示例语义总结如图10所示,涵盖了数组、映射、常量、结构体以及二元和一元运算符等左右表达式的形式操作语义。

2. 表达式求值
2.1 左值位置表达式求值

我们用特定符号表示左值位置表达式求值以得到相应内存地址。多数由 Econst 构建的表达式显然不能作为左值,因为它们大多直接代表了表达式层面的 Lolisa 常量值。为简洁起见,用特定符号表示数组和映射用于搜索索引地址的递归过程。需要注意的是,为确保 Lolisa 格式良好且行为规范,结构体和字段禁止用于指定左值位置的表达式。在 Lolisa 中,改变结构体字段的唯一方式是使用 Estruct 来更改所有字段或声明新字段,虽然这对程序员或验证者不太友好,但可避免潜在风险。
基于之前定义的数组值语义,我们可以将地址搜索过程定义为规则9,它以名称、特定参数和地址偏移量作为参数。类似地,对于映射值可定义规则10。

(9)

(10)
2.2 右值位置表达式求值

用特定符号表示右值位置表达式求值以得到相应内存地

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值