首页 > Web开发 > 详细

.NET解释器

时间:2016-07-02 01:48:00      阅读:330      评论:0      收藏:0      [点我收藏+]

由于目前项目中使用的语言是C#,而C#在IOS上只能以AOT方式执行,那么热更新就是一个非常棘手的问题。

为此我这里开源一个自己的.NET 解释器。

当前C#热更新的主要貌似有同仁实现过,好像有个C#SCRIPT(非标准C#)ILScript

后面的ILscript的实现和我目前的思路一致,直接解释执行IL CODE。同时依赖于现有的.net运行库,尽可能的不要全部都解释执行,如一些不需要热更新的部分,框架底层,网络层,IO层,通常这些代码会被大量使用,不太容易出现非常严重的问题。而一般引起问题的都是一些业务逻辑。所以我实现的解释器只解释执行一部分代码,而另外一部分还是原生执行。

但是这个解释执行有个非常大的问题,就是NATIVE代码(对于解释执行代码)来说,如何把一个解释层的虚拟对象与NATIVE代码中的对象对应,以及NATIVE代码的VIRTUAL CALL(在NATVIE代码执行时不能插入代码)。

目前这两个问题在代码中都能初步解决,具体原理嘛,大家先看代码,以后可能会开个系列文章,来说说怎么样实现一个.NET解释器。

代码仓库:https://github.com/dotnetscript

代码在DEVELOP分支中,大家有兴趣的话可以看看,对于其他IL解释器方案,目前的实现基本可以完美实现跨NATIVE层继承、交互,完整的泛型支持,ASYNC/AWAIT支持,另外异常支持也基本完成,但还没有完全测试,另外在解释代码中不能使用TYPE或者GETTYPE这种,这个会以后慢慢加进去。

大家有什么问题多多留言吧,互相交流!

.NET解释器

原文:http://www.cnblogs.com/gamedevboy/p/5634659.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!