setter / getter函数的高效运行时表示

时间:2015-01-19 15:28:25

标签: compiler-construction interpreter vm-implementation

对于类声明(使用我正在开发的动态类型语言):

class Foo
{
    var bar
    {
       get { return bar; }
       set(value) { bar = value; }
    }
}

用户可以编写如下内容:

var f = New Foo();
f.bar = 20;
var n = f.bar;

编译器然后将f.bar = 20转换为setter调用,并在getter调用中将n = f.bar转换为。什么可以是Foo类中的setter / getter函数的有效运行时表示?

编译器是否应根据在赋值表达式中使用f.bar的事实决定仅使用setter?

0 个答案:

没有答案