- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
手工打造C编译器
手工打造C#编译器
听说过用C#写.Net的IDE,也听说过用C#写图象处理软件,但是却还不知道用纯C#可以写C#编译器(非调用类库)?因为近段时间研究OLDOD项目的需要,对国外几乎所有关于C#的CodeParser项目进行了研究,以前一直以为MONO的C#编译器是用C/C++写的,没有想到的是它竟然是使用C#开发的,对于我的ULDOD项目来说是一个很大振奋的消息,因为在语法分析器这一块是一个艰巨的任务,ULDOD的代码文档对象模型(CodeDOM)功能已经完成了,现在就是将MONO的CodeParser移植过来即可,好了,题归正传,我来想大家介绍一下这几天的研究心得。
总的来讲,C#编译器分为已下几个部分:
在我们的用户项目中会引用其它的第三方组件,比如引用命名空间System、System.Window.Form之类的,语法分析器首先会检查当前的源代码是否有语言错误,然后就是强制类型检查,它会要求引用类型与传递的类型一致,否则编译无法通过。它们的引用关系如下:
CLRL为CommonLanguageRuntimeLibrary 公共语言运行库 ,在我们的程序中所用到的string等都属于这里面的,所以源代码在编译的时候必须引用这些组件才能够正确的编译。再就是重要的一部分为语法分析与代码模型,如下图:
在对C#的语法进行分析以后建立一套代码模型,然后通过这个统一的代码模型得到相应的符号输出位置,然后再通过编译输出为二进制文件。
第 3 页
您可能关注的文档
- 所有交通信号标志.doc
- 所有传感器管理牌.doc
- 所有元素的相对原子质量.doc
- 24 冲裁压力及压力中心的确定.ppt
- 所有卫星接收器通用密码.doc
- 所有宏程序编程代码.doc
- 所有常用汉字大全.doc
- 242 电感元件的正弦响应.ppt
- 所有形容性格的词语.doc
- 所有投影机的232串口码.doc
- 某区纪委书记年度民主生活会“四个带头”个人对照检查材料.docx
- 某县纪委监委2024年工作总结及2025年工作计划.docx
- 某市场监督管理局2024年第四季度意识形态领域风险分析研判报告.docx
- 县委书记履行全面从严治党“第一责任人”职责情况汇报.docx
- 税务局党委书记2024年抓党建工作述职报告.docx
- 某市税务局副局长202X年第一季度“一岗双责”履行情况报告.docx
- 副县长在全县元旦春节前后安全生产和消防安全工作部署会议上的讲话.docx
- 某市委书记个人述职报告.docx
- 某县长在县委常委班子年度民主生活会个人对照检查材料1.docx
- 某县长在县委常委班子年度民主生活会个人对照检查材料.docx
文档评论(0)