第11天 优化变量读写性能 以变量值的读写为例,向读者介绍基于这种理念的语言处理器性能优化方式。 11.1 通过简单数组来实现环境 假如函数包含局部变量x与y,程序可以事先将x设为数组的第0个元素,将y设为第1个元素,以此类推。这样一来,语言处理器引用变量时就无需计算哈希值。也就是说,这是一个通过编 ...
分类:
编程语言 时间:
2020-01-23 21:21:08
阅读次数:
90
第10天 无法割舍的数组 目标:为Stone语言添加简单的数组功能,下标(index)只能使用整数值。 10.1扩展语法分析器 代码清单10.1 与数组相关的语法规则 代码清单10.2 ArrayParser.java 代码清单10.3 ArrayLiteral.java 接下来我们根据新的语法规则 ...
分类:
编程语言 时间:
2020-01-22 21:32:07
阅读次数:
101
第9天 设计面向对象语言 目标:为Stone语言添加类和对象的支持。仅支持单一继承 9.1 设计用于操作类与对象的语法 添加的类与对象的处理功能后,下面的Stone语言就能被正确执行了 首先定义一个Position类,方法由def语句定义。类中字段通过变量表示,并赋了初始值。上面的例子定义了move ...
分类:
编程语言 时间:
2020-01-21 23:25:07
阅读次数:
105
第8天 关联Java语言 本章要达到的目的:扩展Stone语言,使它能在程序中调用Java语言中的static方法 8.1 原生函数 Java语言提供了名为原生方法的功能,用于调用C语言等其他一些语言写成的函数。我们将为Stone语言添加类似的功能,让它能够调用由Java语言写成的函数。 原生函数将 ...
分类:
编程语言 时间:
2020-01-20 21:11:27
阅读次数:
105
第7天 添加函数功能 基本的函数定义与调用执行、引入闭包使Stone语言可以将变量赋值为函数,或将函数作为参数传递给其他函数 有些函数将有返回值的归为函数,没有返回值的归为子程序 7.1 扩充语法规则 函数定义语句的语法规则 此书将函数定义语句称为def语句。def语句仅能用于最外层代码,用户无法在 ...
分类:
编程语言 时间:
2020-01-20 00:09:21
阅读次数:
87
javascript是脚本语言?javascript万物皆对象? 呵呵哒!带你见识下js面对对象的魅力 是的是的,退后,朕要开始装逼了~ 这是什么鸟东西?是的是的,装逼开始,2016年度最佳JS编译器,ES6标准出来后,小伙伴们对新特性摩拳擦掌,奈何浏览器支持把我们拉回现实,不得不面对瑟瑟发抖的ES ...
分类:
Web程序 时间:
2020-01-19 22:18:13
阅读次数:
103
1、标记语言 标记语言,是一种将文本(Text)以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。与文本相关的其他信息(包括例如文本的结构和表示信息等)与原来的文本结合在一起,但是使用标记(markup)进行标识。如:HTML、XML 2、脚本语言 脚本语言是为了缩短传 ...
分类:
编程语言 时间:
2020-01-18 19:30:13
阅读次数:
78
第6天 通过解释器执行程序 解释器从抽象语法树的根节点开始遍历该树直至叶节点,并计算各节点的内容 6.1 eval方法与环境对象 eval方法:eval是evaluate(求值)的缩写。eval方法将计算与该节点为根的子树对应的语句、表达式及子表达式,并返回执行结果。 eval方法递归调用子节点的e ...
分类:
编程语言 时间:
2020-01-18 19:27:10
阅读次数:
83
第5天 设计语法分析器 5.1 Stone语言的语法 代码清单 5.1 Stone 语言的语法定义 5.2 使用解析器和组合子 Parser库: 一种解析器组合子类型的库 工作是将BNF写成的语法规则改写成Java语言程序 在书中第十七章有详细解说 代码清单 5.2 Stone 语言的语法分析器Ba ...
分类:
编程语言 时间:
2020-01-17 22:40:37
阅读次数:
106
PHP(全名:PHP: Hypertext Preprocessor)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。 ...
分类:
Web程序 时间:
2020-01-16 22:24:04
阅读次数:
134