
解释器
文章平均质量分 76
SonicLing
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
我的脚本解释器
下载地址 2009/7/6 更新信息 修复一个很傻瓜的bug:字符串中没有对转义字符“/”进行处理,结果像 "/"" 这样的字符串常量表达式分析出错。已修复。 2008/5/6 更新信息添加文件访问功能。使用File对象可实现对文本文件的读写。File对象有如下成员:File() 构造函数File(file) 构造并打开文件原创 2008-01-28 15:34:00 · 6418 阅读 · 2 评论 -
脚本解释器构架(一)
解释器和编译器的前端是相似的。编译器包括前端(词法分析、语法分析、语义分析)和后端(优化、中间语言、指令生成)。解释器的前端不需要语义分析,仅靠语法分析构建一个语法树即可。后端就是解释运行环境。词法分析太简单了。这里从语法分析讲起。脚本的语法分析绝大多数脚本的语法非常简单,任何一种自顶向下的分析法基本都可以胜任。LL(1)是个不错的选择——简单、高效。LL1的要求很严格:1、不原创 2009-05-26 10:45:00 · 4026 阅读 · 0 评论 -
脚本解释器构架(二)
脚本语言的特点脚本语言最直观的特点是文法简单,部署方便。大多数的脚本语言都有如下更细致的特点:1. 对象化2. 变量按名编排3. 引用传递对象化脚本的值都是对象,只有这样才可以支持弱类型。同样一个变量可以赋字符串值,也可以赋数值,或者其他的某些值,当访问的时候,还能将这些值还原为原本的样子,这种表象正好和面向对象的多态是一致的。当然,可以用非面向对象的方法来原创 2009-05-26 12:04:00 · 2786 阅读 · 0 评论 -
脚本解释器构架(三)
运行时环境脚本的运行时环境(Run-Time Environment, RTE)是解释器的核心。运行时环境与语法分析器可以相互独立,但是又有联系。脚本的解释方式主要有两种:1、基于伪指令的解释;2、基于语法树的解释。我的脚本解释器采用第二种解释方式。 基于伪指令的解释由于我的脚本解释器不是采用这种解释方式,因此先介绍这种方式,然后详细介绍我的脚本解释器的基于语法树的解释方式原创 2009-06-01 22:25:00 · 3324 阅读 · 0 评论 -
我的词法分析器
<br />例子下载<br /> <br />一、可配置的词法分析器<br /> <br />通用编译器是基于配置的,编译器本身不包含特定语言相关的信息。而语言相关的信息放到配置文件中。因此在整个编译器设计中,不仅仅是编译器要编译的文件需要词法分析,配置信息的读取也需要词法分析。<br /> <br />在可定制的词法分析部件完工之前,所有的词法分析都靠硬编码完成,即像这样:<br /> input_iterator ReadToken(input_iterator begin, input_iterato原创 2010-09-16 23:30:00 · 4330 阅读 · 1 评论