您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> asp.net >> 正文

详解如何编写一个简明编译器

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-1-30 我要参与讨论

 

  多次看到有人提起文本表达式的计算问题,就动手整理以前的代码并加上注释。

  写一个简单的编译器并不是很复杂的,当中要用到些反射的知识。自已觉得,反射的使用在NET中真是无处不在,使用反射没什么效率不效率的问题,毕竟现在的电脑配置并不是很低。适当使用反射,或者通过使用反射本身,会使自己加深对NET的理解。以后会写些运用反射增加代码灵活性的小”文章”供初学者参考。

  如果只是计算表达式的值的,当然用不了那么多的代码.这样写法,只是使它通用性强些.

  以下的我直接贴代码了,不再说些什么


  Imports System.Reflection

  Imports System.CodeDom

  Imports System.CodeDom.Compiler

  Public Class SourceComp

  '//编译器接口

  Private m_Compiler As ICodeCompiler

  '//编译器参数

  Private m_CompilerParameters As CompilerParameters

  '//引用的程序集

  Private m_RefAssemblies As String() = {"System.dll", "System.Data.dll"}

  '//源代码

  Private m_Source As String = ""

  '//记录是否是默认的源代码

  Private m_Is_Default As Boolean = True

  '//记录编译状态

  Private m_Compiled As Boolean = False

  '//编译生成的程序集

  Private m_Assembly As System.Reflection.Assembly

  '//默认源代码生成的实例

  Private m_tmpClass As Object

  '//默认源代码生成的实例函数

  Private m_MethodInfo As System.Reflection.MethodInfo

  '//默认源代码函数的表达式参数

  Private m_Expression As String

  '//返回程序集


  Public ReadOnly Property cpAssembly() As System.Reflection.Assembly

  Get

  Return Me.m_Assembly

  End Get

  End Property

  Sub New()

  '//获取VB编译器实例

  Me.m_Compiler = New VBCodeProvider().CreateCompiler

  '//初始编译器参数

  Me.m_CompilerParameters = New CompilerPar

[1] [2] [3] [4] [5] [6] 下一页

在google里搜索更多详解如何编写一个简明编译器

Google
Web www.51ec.org
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
我来说两句 对此文章发表了评论
  昵 称: *必填    ·注册用户·
  评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
评 论
内 容

 
评论列表 (最新 评论仅限网友观点!)

供求信息




| 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明