手工打造c#编译器

上传人:xzh****18 文档编号:41972657 上传时间:2018-05-31 格式:DOC 页数:3 大小:146.50KB
返回 下载 相关 举报
手工打造c#编译器_第1页
第1页 / 共3页
手工打造c#编译器_第2页
第2页 / 共3页
手工打造c#编译器_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《手工打造c#编译器》由会员分享,可在线阅读,更多相关《手工打造c#编译器(3页珍藏版)》请在金锄头文库上搜索。

1、第 1 页手工打造手工打造 C#编译器编译器听说过用 C#写.Net 的 IDE,也听说过用 C#写图象处理软件,但是却还不知道用纯 C#可以写 C#编译器(非 调用类库)? 因为近段时间研究 OLDOD 项目的需要,对国外几乎所有关于 C#的 CodeParser 项目进行了研究,以前一直 以为 MONO 的 C#编译器是用 C/C+写的,没有想到的是它竟然是使用 C#开发的,对于我的 ULDOD 项目来说是一 个很大振奋的消息,因为在语法分析器这一块是一个艰巨的任务,ULDOD 的代码文档对象模型(CodeDOM)功 能已经完成了,现在就是将 MONO 的 CodeParser 移植过来即

2、可,好了,题归正传,我来想大家介绍一下这几 天的研究心得。 总的来讲,C#编译器分为已下几个部分:在我们的用户项目中会引用其它的第三方组件,比如引用命名空间 System、System.Window.Form 之类的, 语法分析器首先会检查当前的源代码是否有语言错误,然后就是强制类型检查,它会要求引用类型与传递的 类型一致,否则编译无法通过。它们的引用关系如下:第 2 页CLRL 为 CommonLanguageRuntimeLibrary(CommonLanguageRuntimeLibrary(公共语言运行库公共语言运行库) ),在我们的程序中所用到的 string 等都属于这 里面的,所以源代码在编译的时候必须引用这些组件才能够正确的编译。再就是重要的一部分为语法分析与 代码模型,如下图:第 3 页在对 C#的语法进行分析以后建立一套代码模型,然后通过这个统一的代码模型得到相应的符号输出位置, 然后再通过编译输出为二进制文件。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号